メニュー
AWS Lambda
開発者ガイド

Lambda API のアクセス権限: アクション、リソース、条件リファレンス

アクセスコントロール をセットアップし、IAM アイデンティティにアタッチできるアクセス権限ポリシー (アイデンティティベースのポリシー) を作成するときは、以下の表をリファレンスとして使用できます。テーブルリスト 各 AWS Lambda API オペレーション、アクションを実行するためのアクセス権限を付与できる対応するアクション、アクセス権限を付与できる AWS リソース、および指定された API アクションの条件キーが掲載されています。ポリシーの [Action] フィールドにアクションを、ポリシーの [Resource] フィールドにリソース値を、ポリシーの [Condition keys] フィールドに条件キーを指定します。

アクションを指定するには、API オペレーション名 (lambda:CreateFunction など) の前に lambda: プレフィックスを使用します。

注記

次の表の AWS Lambda Invoke API に対するアクセス権限は、リソースベースのポリシーを使用して付与することもできます。詳細については、「AWS Lambda でリソースベースのポリシーを使用する (Lambda 関数ポリシー)」を参照してください。

AWS Lambda ポリシーで AWS 全体の条件キーを使用して、条件を表現することができます。AWS 全体を対象とするすべてのキーのリストについては、IAM ユーザーガイド の「条件に利用可能なキー」を参照してください。

AWS Lambda では、一部の API オペレーションに限り、事前定義済みの条件キーも提供します。たとえば、次のようにすることができます。

  • 以下のオペレーションに対するアクセスを Lambda 関数 ARN (Amazon リソースネーム) に基づいて制限します。

    • CreateEventSourceMapping

    • DeleteEventSourceMapping

    • UpdateEventSourceMapping

    この条件を適用するポリシーの例を次に示します。

    Copy
    "Version": "2012-10-17", "Statement": [ { "Sid": " DeleteEventSourceMappingPolicy", "Effect": "Allow", "Action": [ "lambda:DeleteEventSourceMapping" ], "Resource": "arn:aws:lambda:region:account-id:event-source-mapping:UUID", "Condition": {"StringEquals": {"lambda:FunctionArn": "arn:aws:lambda:region:account-id:function:function-name}} } ]
  • 以下のオペレーションに対するマッピングを、AWS のサービスプリンシパルに基づいて制限します。

    • AddPermission

    • RemovePermission

    この条件を適用するポリシーの例を次に示します。

    Copy
    "Version": "2012-10-17", "Statement": [ { "Sid": "AddPermissionPolicy", "Effect": "Allow", "Action": [ "lambda:AddPermission" ], "Resource": "arn:aws:lambda:region:account-id:function:function-name", "Condition": {"StringEquals": {"lambda:Principal": "s3.amazonaws.com"}} } ]

表の右上隅に矢印 () が表示された場合、その表は新しいウィンドウで開くことができます。ウィンドウを閉じるには、右下隅にある閉じるボタン (X) を選択します。

AWS Lambda API とアクションで必要なアクセス権限

API アクション リソース 条件キー

API: AddPermission

必要なアクセス権限: lambda:AddPermission

arn:aws:lambda:region:account-id:function:function-name

lambda:Principal

API: CreateAlias

必要なアクセス権限: lambda:CreateAlias

arn:aws:lambda:region:account-id:function:function-name

該当なし

API: CreateEventSourceMapping

必要なアクセス許可: lambda:CreateEventSourceMapping

*

lambda:FunctionArn

以下のアクセス権限を、Lambda 関数の実行ロール (IAM ロール) に追加する必要があります。

Kinesis ストリームイベントソースにマッピングした場合:

kinesis:DescribeStreams, kinesis:DescribeStream, kinesis:ListStreams, kinesis:GetShardIterator, および Kinesis:GetRecords

DynamoDB ストリームイベントソースにマッピングした場合:

dynamodb:DescribeStreams, dynamodb:DescribeStream, dynamodb:ListStreams, dynamodb:GetShardIterator, および dynamodb:GetRecords

(AWS Lambda にイベントソースマッピングを作成するには、イベントソースマッピングを作成している既存の Lambda 関数が必要です。Lambda 関数の実行ロール (IAM ロール) には、Lambda 関数がマッピングされているイベントソースの API にアクセスするためのアクセス権限が必要です。

arn:aws:kinesis:region:account-id:stream/stream-name

該当なし

API: CreateFunction

必要なアクセス許可: lambda:CreateFunction

arn:aws:lambda:region:account-id: function:function-name

該当なし

iam:PassRole

関数を作成するユーザーには、Lambda 関数が作成される際に実行ロールとして指定する IAM ロールに、このアクションのアクセス権限が必要です。これは、Lambda 関数の実行時に AWS Lambda が引き受けるロールです。ユーザーには、AWS Lambda にロールを渡すアクセス権限が必要です。

arn:aws:iam::account-id:role/role-name

該当なし

ec2:DescribeSecurityGroups

Lambda 関数の作成時に VPC 設定情報を指定する場合のみ必要です。

*

該当なし

ec2:DescribeSubnets

Lambda 関数の作成時に VPC 設定情報を指定する場合のみ必要です。

*

該当なし

s3:GetObject

Amazon S3 にでプロパッケージが保存されており、Lambda 関数を作成する際に S3 バケットおよびオブジェクトキーを指定する場合にのみ必要です。

arn:aws:s3:::bucket-name/key-name

該当なし

API: DeleteAlias

必要なアクセス権限: lambda:DeleteAlias

arn:aws:lambda:region:account-id:function:function-name

該当なし

API: DeleteEventSourceMapping

必要なアクセス権限: lambda:DeleteEventSourceMapping

arn:aws:lambda:region:account-id:event-source-mapping:UUID

lambda:FunctionArn

API: DeleteFunction

必要なアクセス権限: lambda:DeleteFunction

arn:aws:lambda:region:account-id: function:function-name

該当なし

API: GetAccountSettings

必要なアクセス権限: lambda:GetAccountSettings

*

該当なし

API: GetAlias

必要なアクセス権限: lambda:GetAlias

arn:aws:lambda:region:account-id:function:function-name

該当なし

API: GetEventSourceMapping

必要なアクセス権限: lambda:GetEventSourceMapping

*

該当なし

API: GetFunction

必要なアクセス権限: lambda:GetFunction

arn:aws:lambda:region:account-id: function:function-name

該当なし

API: GetFunctionConfiguration

必要なアクセス権限: lambda:GetFunctionConfiguration

arn:aws:lambda:region:account-id:function:function-name

該当なし

API: GetPolicy

必要なアクセス権限: lambda:GetPolicy

arn:aws:lambda:region:account-id:function:function-name

該当なし

API: Invoke

必要なアクセス権限: lambda:InvokeFunction

arn:aws:lambda:region:account-id: function:function-name

該当なし

API: ListAliases

必要なアクセス権限: lambda:ListAliases

arn:aws:lambda:region:account-id:function:function-name

該当なし

API: ListEventSourceMappings

必要なアクセス権限: lambda:ListEventSourceMappings

*

該当なし

API: ListFunctions

必要なアクセス権限: lambda:ListFunctions

*

該当なし

API: ListTags

必要なアクセス権限: lambda:ListTags

*

該当なし

API: ListVersionsByFunction

必要なアクセス権限: lambda:ListVersionsByFunction

arn:aws:lambda:region:account-id:function:function-name

該当なし

API: PublishVersion

必要なアクセス権限: lambda:PublishVersion

arn:aws:lambda:region:account-id:function:function-name

該当なし

API: RemovePermission

必要なアクセス権限: lambda:RemovePermission

arn:aws:lambda:region:account-id:function:function-name

lambda:Principal

API: TagResource

必要なアクセス権限: lambda:TagResource

*

該当なし

API: UntagResource

必要なアクセス権限: lambda:UntagResource

*

該当なし

API: UpdateAlias

必要なアクセス権限: lambda:UpdateAlias

arn:aws:lambda:region:account-id:function:function-name

該当なし

API: UpdateEventSourceMapping

必要なアクセス許可: lambda:UpdateEventSourceMapping

arn:aws:lambda:region:account-id:event-source-mapping:UUID

lambda:FunctionArn

kinesis:DescribeStreams (needed by function role, not caller)

arn:aws:kinesis:region:account-id:stream/stream-name

該当なし

API: UpdateFunctionCode

必要なアクセス許可: lambda:UpdateFunctionCode

arn:aws:lambda:region:account-id:function:function-name

該当なし

s3:GetObject

Lambda 関数を作成するときに S3 バケットおよびオブジェクトキー、デプロイパッケージ、またはキーを指定する場合にのみ必要です。

arn:aws:s3:::bucket-name/key-name

該当なし

API: UpdateFunctionConfiguration

必要なアクセス許可: lambda:UpdateFunctionConfiguration

arn:aws:lambda:region:account-id:function:function-name

該当なし

iam:PassRole

関数を作成するユーザーには、Lambda 関数の更新時に実行ロールとして指定する IAM ロールに、このアクションのアクセス権限が必要です。これは、Lambda 関数の実行時に AWS Lambda が引き受けるロールです。ユーザーには、AWS Lambda にロールを渡すアクセス権限が必要です。

arn:aws:iam::account-id: role/execution-role-name

該当なし

ec2:DescribeSecurityGroups

Lambda 関数の作成時に VPC 設定情報を指定する場合のみ必要です。

*

該当なし

ec2:DescribeSubnets

Lambda 関数の作成時に VPC 設定情報を指定する場合のみ必要です。

*

該当なし