他のアカウントに Lambda レイヤーへのアクセス許可を付与する - AWS Lambda

他のアカウントに Lambda レイヤーへのアクセス許可を付与する

レイヤーを別の AWS アカウント と共有するには、レイヤーのリソースベースのポリシー にクロスアカウントアクセス許可ステートメントを追加します。add-layer-version-permission コマンドを実行し、アカウント ID を として指定しますprincipal。アクセス許可は、各ステートメントで、1 つのアカウント、すべてのアカウント、または AWS Organizations 内の組織に付与することができます。

以下の例では、アカウント 111122223333 に bash-runtime レイヤーのバージョン 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 オプションを使用します。以下の例では、バージョン 3 の my-layer を使用する o-t194hfs8cz アクセス許可を、組織のすべてのアカウントに付与します。

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"}}}"

複数のアカウントまたは組織にアクセス許可を付与するには、複数のステートメントを追加する必要があります。