本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
Lambda 受管執行個體的 Lambda 運算子角色
當您使用 Lambda 受管執行個體時,Lambda 需要許可才能管理帳戶中的運算容量。運算子角色透過 IAM 政策提供這些許可,允許 Lambda 管理容量提供者中的 EC2 執行個體。
Lambda 在執行這些管理操作時擔任 運算子角色,類似於 Lambda 在函數執行時擔任 執行角色的方式。
建立運算子角色
您可以在 IAM 主控台或使用 CLI AWS 建立運算子角色。角色必須包含:
-
許可政策 – 授予管理容量提供者和相關資源的許可
-
信任政策 – 允許 Lambda 服務 (
lambda.amazonaws.com) 擔任該角色
許可政策
運算子角色需要管理容量提供者和基礎運算資源的許可。該角色至少需要 AWSLambdaManagedEC2ResourceOperator
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ec2:RunInstances", "ec2:CreateTags", "ec2:AttachNetworkInterface" ], "Resource": [ "arn:aws:ec2:*:*:instance/*", "arn:aws:ec2:*:*:network-interface/*", "arn:aws:ec2:*:*:volume/*" ], "Condition": { "StringEquals": { "ec2:ManagedResourceOperator": "scaler.lambda.amazonaws.com" } } }, { "Effect": "Allow", "Action": [ "ec2:DescribeAvailabilityZones", "ec2:DescribeCapacityReservations", "ec2:DescribeInstances", "ec2:DescribeInstanceStatus", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstanceTypes", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "ec2:RunInstances", "ec2:CreateNetworkInterface" ], "Resource": [ "arn:aws:ec2:*:*:subnet/*", "arn:aws:ec2:*:*:security-group/*" ] }, { "Effect": "Allow", "Action": [ "ec2:RunInstances" ], "Resource": [ "arn:aws:ec2:*:*:image/*" ], "Condition": { "StringEquals": { "ec2:Owner": "amazon" } } } ] }
信任政策
信任政策允許 Lambda 擔任運算子角色:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "lambda.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
Lambda 受管執行個體的服務連結角色
若要以負責的方式管理 Lambda 受管執行個體的生命週期,Lambda 需要持續存取才能終止您帳戶中的受管執行個體。Lambda 使用 AWS Identity and Access Management (IAM) 服務連結角色 (SLR) 來執行這些操作。
自動建立:服務連結角色會在您第一次建立容量提供者時自動建立。建立第一個容量提供者的使用者必須具有lambda.amazonaws.com委託人的iam:CreateServiceLinkedRole許可。
許可:服務連結角色授予 Lambda 受管執行個體的下列許可:
-
ec2:TerminateInstances– 在執行個體生命週期結束時終止執行個體 -
ec2:DescribeInstances– 列舉受管執行個體
刪除:只有在刪除帳戶中的所有 Lambda 受管執行個體容量提供者之後,才能刪除此服務連結角色。
如需服務連結角色的詳細資訊,請參閱使用 Lambda 的服務連結角色。