翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Lambda アクションのリソースと条件
AWS Identity and Access Management (IAM) ポリシーでリソースと条件を指定することで、ユーザーのアクセス許可の範囲を制限できます。ポリシーの各アクションが、それぞれの動作によって異なるリソースタイプと条件タイプの組み合わせをサポートします。
各 IAM ポリシーステートメントによって、リソースで実行されるアクションに対するアクセス許可が付与されます。アクションが名前の付いたリソースで動作しない場合、またはすべてのリソースに対してアクションを実行するアクセス許可を付与した場合、ポリシー内のリソースの値はワイルドカード (*
) になります。多くのアクションでは、リソースの Amazon リソースネーム (ARN)、または複数のリソースに一致する ARN パターンを指定することによって、ユーザーによる変更が可能なリソースを制限できます。
リソース別にアクセス許可を制限するには、ARN 別にリソースを指定します。
Lambda リソース ARN 形式
-
関数 -
arn:aws:lambda:
us-west-2
:123456789012
:function:my-function
-
関数のバージョン -
arn:aws:lambda:
us-west-2
:123456789012
:function:my-function
:1
-
関数のエイリアス -
arn:aws:lambda:
us-west-2
:123456789012
:function:my-function
:TEST
-
イベントソースマッピング -
arn:aws:lambda:
us-west-2
:123456789012
:event-source-mapping:fa123456-14a1-4fd2-9fec-83de64ad683de6d47
-
レイヤー -
arn:aws:lambda:
us-west-2
:123456789012
:layer:my-layer
-
レイヤーバージョン -
arn:aws:lambda:
us-west-2
:123456789012
:layer:my-layer
:1
例えば、以下のポリシーでは、my-function
という名前の関数を米国西部 (オレゴン) AWS リージョンで呼び出すことを、AWS アカウント 123456789012
のユーザーに対し許可します。
例 関数ポリシーを呼び出す
{ "Version": "2012-10-17", "Statement": [ { "Sid": "Invoke", "Effect": "Allow", "Action": [ "lambda:InvokeFunction" ],
"Resource": "arn:aws:lambda:us-west-2:123456789012:function:my-function"
} ] }
アクションの識別子 (lambda:InvokeFunction
) が、API オペレーション (Invoke) と異なる特別なケースです。その他のアクションのアクションの識別子は、lambda:
プレフィックスがついたオペレーション名です。
ポリシー条件
条件は、アクションが許可されているかどうかを判断するために追加のロジックを適用するオプションのポリシー要素です。すべてのアクションでサポートされている共通の条件に加えて、Lambda は、一部のアクションが使用する追加パラメータの値を制限するための条件タイプも定義します。
例えば、lambda:Principal
条件では、関数のリソースベースのポリシーへの呼び出しアクセス権をユーザーが付与できる、サービスまたはアカウントを制限できます。次のポリシーを使用すると、ユーザーは、test
という名前の関数を呼び出すアクセス許可を Amazon Simple Notification Service (Amazon SNS) トピックに付与できます。
例 関数ポリシーのアクセス許可を管理する
{ "Version": "2012-10-17", "Statement": [ { "Sid": "ManageFunctionPolicy", "Effect": "Allow", "Action": [ "lambda:AddPermission", "lambda:RemovePermission" ], "Resource": "arn:aws:lambda:us-west-2:123456789012:function:test:*",
"Condition": { "StringEquals": { "lambda:Principal": "sns.amazonaws.com" } }
} ] }
この条件では、プリンシパルが Amazon SNS で、別のサービスやアカウントでないことが必要です。リソースパターンでは、関数名が test
で、バージョン番号またはエイリアスが含まれている必要があります。たとえば、test:v1
と指定します。
Lambda および他の AWS のサービスでのリソースと条件の詳細については、「サービス認証リファレンス」の「AWS のサービスのアクション、リソース、および条件キー」を参照してください。
関数のリソース名
Amazon リソースネーム (ARN) を使用して、ポリシーステートメント内で Lambda 関数を参照します。関数 ARN の形式は、関数全体を参照する (修飾)か、関数のバージョンやエイリアスを参照する (非修飾) かに応じて異なります。
Lambda API コールを行うとき、ユーザーは GetFunctionFunctionName
パラメータでバージョン ARN またはエイリアス ARN を渡すか、 GetFunctionQualifier
パラメータで値を設定することで、バージョンまたはエイリアスを指定できます。Lambda は、IAM ポリシー内のリソース要素を、API コールで渡された FunctionName
と Qualifier
の両方と比較することによって、認可の決定を行います。一致しないものがある場合、Lambda はそのリクエストを拒否します。
関数に対するアクションを許可するか拒否するかにかかわらず、期待どおりの結果を得るには、ポリシーステートメントで正しい関数の ARN タイプを使用する必要があります。例えば、ポリシーが非修飾 ARN を参照する場合、Lambda は非修飾 ARN を参照するリクエストを受け入れますが、修飾 ARN を参照するリクエストは拒否します。
注記
アカウント ID を照合するためにワイルドカード文字 (*) を使用することはできません。認められる構文の詳細については、「IAM ユーザーガイド」の「IAM JSON ポリシーリファレンス」を参照してください。
例 非修飾 ARN の呼び出しの許可
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "lambda:InvokeFunction",
"Resource": "arn:aws:lambda:us-west-2:123456789012:function:myFunction"
} ] }
ポリシーが特定の修飾 ARN を参照する場合、Lambda はその ARN を参照するリクエストを受け入れますが、非修飾 ARN や別の修飾 ARN (myFunction:2
など) を参照するリクエストは拒否します。
例 特定の修飾 ARN の呼び出しの許可
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "lambda:InvokeFunction",
"Resource": "arn:aws:lambda:us-west-2:123456789012:function:myFunction:1"
} ] }
ポリシーが :*
を使用して任意の修飾 ARN を参照する場合、Lambda は修飾 ARN ならどれでも受け入れますが、非修飾 ARN を参照するリクエストは拒否します。
例 任意の修飾 ARN の呼び出しの許可
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "lambda:InvokeFunction",
"Resource": "arn:aws:lambda:us-west-2:123456789012:function:myFunction:*"
} ] }
ポリシーが *
を使用して任意の ARN を参照する場合、Lambda はすべての修飾 ARN と非修飾 ARN を受け入れます。
例 任意の修飾または非修飾 ARN の呼び出しの許可
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "lambda:InvokeFunction",
"Resource": "arn:aws:lambda:us-west-2:123456789012:function:myFunction*"
} ] }
関数のアクション
以下の表で説明されているように、関数を操作するアクションは、関数、バージョン、またはエイリアス ARN によって特定の関数に制限することができます。リソース制限をサポートしていないアクションは、すべてのリソース (*
) に付与されます。
関数のアクション | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
[アクション] | リソース | 条件 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
機能 関数のバージョン 関数のエイリアス |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
アクセス許可: |
関数 関数のバージョン 関数のエイリアス |
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
機能 |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
機能 |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
DeleteFunctionCodeSigningConfig |
機能 |
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
機能 関数のエイリアス |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
機能 |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
DeleteFunctionEventInvokeConfig |
機能 |
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
DeleteProvisionedConcurrencyConfig |
関数のエイリアス 関数のバージョン |
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
なし |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
機能 |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
機能 |
|
イベントソースのマッピングアクション
イベントソースマッピングでは、アクセス許可に関する削除および更新を、特定のイベントソースに制限することができます。lambda:FunctionArn
条件では、ユーザーが呼び出すイベントソースを設定できる関数を制限することができます。
これらのアクションでは、リソースはイベントソースマッピングであるため、Lambda では、イベントソースマッピングで呼び出される関数に基づき、アクセス許可を制限することができる条件を提供します。
イベントソースのマッピングアクション | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
[アクション] | リソース | 条件 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
イベントソースマッピング |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
なし |
レイヤーのアクション
レイヤーアクションでは、関数を使用してユーザーが管理または使用できるレイヤーを制限できます。レイヤーの使用とアクセス許可に関連するアクションはレイヤーのバージョン、PublishLayerVersion
はレイヤー名に影響します。ワイルドカードとあわせていずれかを使用して、ユーザーが操作できるレイヤーを名前で制限することができます。
注記
GetLayerVersion アクションは もカバーしますGetLayerVersionByArn。Lambda は、GetLayerVersionByArn
を IAM アクションとしてサポートしていません。
レイヤーのアクション | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
[アクション] | リソース | 条件 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
レイヤーバージョン |
なし | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Layer |
なし | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
なし |