本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
授與使用者存取 Lambda 函數
使用以身分識別為基礎的原則,允許使用者、使用者群組或角色對 Lambda 函數執行作業。
注意
對於定義為容器映像的函數,必須在 Amazon 彈性容器登錄 (AmazonECR) 中設定存取映像的使用者權限。如需範例,請參閱 Amazon ECR 儲存庫政策。
以下顯示具受限範圍之許可政策的範例。這可讓使用者建立和管理以指定字首 (intern-
) 命名並以指定執行角色設定的 Lambda 函數。
範例 函數開發政策
{ "Version": "2012-10-17", "Statement": [ { "Sid": "ReadOnlyPermissions", "Effect": "Allow", "Action": [ "lambda:GetAccountSettings", "lambda:GetEventSourceMapping", "lambda:GetFunction", "lambda:GetFunctionConfiguration", "lambda:GetFunctionCodeSigningConfig", "lambda:GetFunctionConcurrency", "lambda:ListEventSourceMappings", "lambda:ListFunctions", "lambda:ListTags", "iam:ListRoles" ], "Resource": "*" }, { "Sid": "DevelopFunctions", "Effect": "Allow", "NotAction": [ "lambda:AddPermission", "lambda:PutFunctionConcurrency" ], "Resource": "arn:aws:lambda:*:*:function:intern-*" }, { "Sid": "DevelopEventSourceMappings", "Effect": "Allow", "Action": [ "lambda:DeleteEventSourceMapping", "lambda:UpdateEventSourceMapping", "lambda:CreateEventSourceMapping" ], "Resource": "*", "Condition": { "StringLike": { "lambda:FunctionArn": "arn:aws:lambda:*:*:function:intern-*" } } }, { "Sid": "PassExecutionRole", "Effect": "Allow", "Action": [ "iam:ListRolePolicies", "iam:ListAttachedRolePolicies", "iam:GetRole", "iam:GetRolePolicy", "iam:PassRole", "iam:SimulatePrincipalPolicy" ], "Resource": "arn:aws:iam::*:role/intern-lambda-execution-role" }, { "Sid": "ViewLogs", "Effect": "Allow", "Action": [ "logs:*" ], "Resource": "arn:aws:logs:*:*:log-group:/aws/lambda/intern-*" } ] }
會根據許可支援的資源和條件來將此政策中的許可組織為陳述式。
-
ReadOnlyPermissions
- Lambda 主控台會在您瀏覽和檢視函數時使用這些許可。他們不支援資源模式或條件。"Action": [ "lambda:GetAccountSettings", "lambda:GetEventSourceMapping", "lambda:GetFunction", "lambda:GetFunctionConfiguration", "lambda:GetFunctionCodeSigningConfig", "lambda:GetFunctionConcurrency", "lambda:ListEventSourceMappings", "lambda:ListFunctions", "lambda:ListTags", "iam:ListRoles" ], "Resource": "*"
-
DevelopFunctions
— 使用在前綴為intern-
、除了AddPermission
和PutFunctionConcurrency
之外的函數上運作的任何 Lambda 動作。AddPermission
修改函數上以資源為基礎的策略,並且可能會產生安全性影響。PutFunctionConcurrency
為函數保留擴展容量,並且可以將容量從其他功能中取出。"NotAction": [ "lambda:AddPermission", "lambda:PutFunctionConcurrency" ], "Resource": "arn:aws:lambda:*:*:function:intern-*"
-
DevelopEventSourceMappings
– 在字首為intern-
的函數上管理事件來源映射。這些動作會在事件來源映射上操作,但您可以使用條件來依函數進行限制。"Action": [ "lambda:DeleteEventSourceMapping", "lambda:UpdateEventSourceMapping", "lambda:CreateEventSourceMapping" ], "Resource": "*", "Condition": { "StringLike": { "lambda:FunctionArn": "arn:aws:lambda:*:*:function:intern-*" } }
-
PassExecutionRole
— 僅檢視並傳遞名為的角色intern-lambda-execution-role
,該角色必須由具有IAM權限的使用者建立及管理。PassRole
在將執行角色指派給函數時使用。"Action": [ "iam:ListRolePolicies", "iam:ListAttachedRolePolicies", "iam:GetRole", "iam:GetRolePolicy", "iam:PassRole", "iam:SimulatePrincipalPolicy" ], "Resource": "arn:aws:iam::*:role/intern-lambda-execution-role"
-
ViewLogs
— 使用 CloudWatch 防護記錄檢視前綴為之函數的intern-
記錄。"Action": [ "logs:*" ], "Resource": "arn:aws:logs:*:*:log-group:/aws/lambda/intern-*"
此政策可讓使用者開始使用 Lambda,而不需使其他使用者的資源承受風險。它不允許用戶配置要由其他 AWS 服務觸發或調用需要更廣泛IAM權限的功能。它也不包括對不支持有限範圍政策的服務(例如 CloudWatch 和 X-Ray)的許可。對這些服務使用唯讀政策來為使用者提供指標和追蹤資料的存取。
為函數配置觸發器時,您需要訪問才能使用調用函數的 AWS 服務。例如,若要設定 Amazon S3 觸發,您需要使用 Amazon S3 動作的許可來管理儲存貯體通知。許多這些權限都包含在 AWSLambda_ 受FullAccess管理的策略中。