將 Lambda 層存取權授予其他帳戶 - AWS Lambda

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

將 Lambda 層存取權授予其他帳戶

若要與其他 AWS 帳戶共用層,請將跨帳戶許可陳述式新增至層的資源型政策。執行 add-layer-version-permission 命令,並將帳戶 ID 指定為 principal。在各陳述式中,您可將許可授予單一帳戶、所有帳戶或 AWS Organizations 中的某個組織。

以下列範例會授予帳戶 111122223333 存取 bash-runtime layer 第 2 版的許可。

aws lambda add-layer-version-permission \ --layer-name bash-runtime \ --version-number 2 \ --statement-id xaccount \ --action lambda:GetLayerVersion \ --principal 111122223333 \ --output text

您應該會看到類似下列的輸出:

{"Sid":"xaccount","Effect":"Allow","Principal":{"AWS":"arn:aws:iam::111122223333:root"},"Action":"lambda:GetLayerVersion","Resource":"arn:aws:lambda:us-east-1:123456789012:layer:bash-runtime:2"}

許可僅適用於單一層版本。每次建立新的層版本時均需重複此程序。

若要將許可授予 AWS Organizations 組織中的所有帳戶,請使用 organization-id 選項。以下範例授予組織 o-t194hfs8cz 內的所有帳戶使用第 3 版 my-layer 的許可。

aws lambda add-layer-version-permission \ --layer-name my-layer \ --version-number 3 \ --statement-id engineering-org \ --principal '*' \ --action lambda:GetLayerVersion \ --organization-id o-t194hfs8cz \ --output text

您應該會看到下列輸出:

{"Sid":"engineering-org","Effect":"Allow","Principal":"*","Action":"lambda:GetLayerVersion","Resource":"arn:aws:lambda:us-east-2:123456789012:layer:my-layer:3","Condition":{"StringEquals":{"aws:PrincipalOrgID":"o-t194hfs8cz"}}}"

若要授予多個帳戶或組織許可,您必須新增多個陳述式。