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 ポリシーを使う (推奨)

次のポリシー例では、組織 o-a1b2c3d4e5f 内のすべての AWS アカウントに対する呼び出しアクセスを許可します。

{ "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」を参照してください。