View a markdown version of this page

授予組織對函數的存取 - AWS Lambda

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

授予組織對函數的存取

若要將許可授予AWS Organizations組織中的所有帳戶,建議使用 put-resource-policy建立具有 aws:PrincipalOrgID條件索引鍵的完整 JSON 政策。

重要

使用 會put-resource-policy取代資源上任何現有的資源型政策。如果資源已具有以 定義的許可add-permission, 會put-resource-policy覆寫它們。get-resource-policy 使用 在進行變更之前擷取現有的政策。

使用完整的 JSON 政策 (建議)

下列範例政策會授予 叫用對組織中所有 AWS 帳戶 的存取權o-a1b2c3d4e5f:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "org-access", "Effect": "Allow", "Principal": "*", "Action": "lambda:InvokeFunction", "Resource": "arn:aws:lambda:us-east-2:123456789012:function:my-function", "Condition": { "StringEquals": { "aws:PrincipalOrgID": "o-a1b2c3d4e5f" } } } ] }

將政策儲存至名為 的檔案policy.json並套用:

aws lambda put-resource-policy \ --resource-arn arn:aws:lambda:us-east-2:123456789012:function:my-function \ --policy file://policy.json

使用完整的 JSON 政策,您也可以拒絕存取組織內的特定帳戶:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "allow-org", "Effect": "Allow", "Principal": "*", "Action": "lambda:InvokeFunction", "Resource": "arn:aws:lambda:us-east-2:123456789012:function:my-function", "Condition": { "StringEquals": { "aws:PrincipalOrgID": "o-a1b2c3d4e5f" } } }, { "Sid": "deny-specific-account", "Effect": "Deny", "Principal": { "AWS": "arn:aws:iam::999888777666:root" }, "Action": "lambda:InvokeFunction", "Resource": [ "arn:aws:lambda:us-east-2:123456789012:function:my-function", "arn:aws:lambda:us-east-2:123456789012:function:my-function:*" ] } ] }

使用 add-permission

對於簡單的使用案例,您可以使用 add-permission搭配 principal-org-id選項。下列命令會將調用存取權授予組織 中的所有使用者o-a1b2c3d4e5f:

aws lambda add-permission \ --function-name my-function \ --statement-id org-access \ --action lambda:InvokeFunction \ --principal * \ --principal-org-id o-a1b2c3d4e5f
注意

在此命令中,Principal 是 *。這意味著組織 o-a1b2c3d4e5f 中的所有使用者都會取得函數叫用許可。如果您將 AWS 帳戶 或 角色指定為 Principal,則只有該委託人才能取得函數叫用許可,但前提是他們也是o-a1b2c3d4e5f組織的一部分。

如需詳細資訊,請參閱《IAM 使用者指南》中的 aws:PrincipalOrgID。