メニュー
AWS CloudFormation
ユーザーガイド (API Version 2010-05-15)

AWS::Lambda::Permission

AWS::Lambda::Permission リソースは、ポリシーステートメントと特定の AWS Lambda (Lambda) 関数のアクセスポリシーを関連付けます。関数ポリシーは、特定の AWS サービスまたはアプリケーションのアクセス許可を付与して関数を実行します。詳細については、「AddPermission」(AWS Lambda Developer Guide) を参照してください。

トピック

構文

AWS CloudFormation テンプレートでこのエンティティを宣言するには、次の構文を使用します。

JSON

Copy
{ "Type" : "AWS::Lambda::Permission", "Properties" : { "Action" : String, "EventSourceToken" : String, "FunctionName" : String, "Principal" : String, "SourceAccount" : String, "SourceArn" : String } }

YAML

Copy
Type: "AWS::Lambda::Permission" Properties: Action: String EventSourceToken: String FunctionName: String Principal: String SourceAccount: String SourceArn: String

プロパティ

詳細と現在の有効な値については、『AWS Lambda 開発者ガイド』の「AddPermission」を参照してください。

Action

このステートメントで許可する Lambda アクション。たとえば、lambda:CreateFunction を指定して特定のアクションを指定したり、ワイルドカード (lambda:*) を使用してすべての Lambda アクションにアクセス許可を付与することができます。アクションの一覧については、IAM ユーザーガイド の「Actions and Condition Context Keys for AWS Lambda」を参照してください。

Required: Yes

Type: String

更新に伴う要件: 置換

EventSourceToken

関数を呼び出すプリンシパルによって指定される必要のある一意のトークン。

Required: No

Type: String

更新に伴う要件: 置換

FunctionName

このステートメントに関連付けたい Lambda 関数の名前 (物理 ID)、Amazon リソースネーム (ARN)、または エイリアス ARN。Lambda は、このステートメントに関数のアクセスポリシーを追加します。

Required: Yes

Type: String

更新に伴う要件: 置換

Principal

Lambda 関数を実行するアクセス許可を付与するエンティティ。このエンティティは、s3.amazonaws.com または sns.amazonaws.com のような有効な AWS サービスプリンシパルとなります。クロスアカウントのアクセス許可を付与している場合は、AWS アカウントとなります。プッシュ イベントに別の AWS アカウントでカスタムアプリケーションを許可して、関数を呼び出することでイベントを Lambda に送ることができます。

Required: Yes

Type: String

更新に伴う要件: 置換

SourceAccount

ソース所有者の AWS アカウント ID (ハイフンなし)。たとえば、SourceArn プロパティで S3 バケットを指定した場合、この値はバケット所有者のアカウント ID となります。このプロパティを使用して、ソースすべてのプリンシパルが特定のアカウントによって所有されていることを確認できます。

重要

このプロパティは、すべてのイベントのソースでサポートされているわけではありません。詳細については、AWS Lambda Developer GuideAddPermission アクションの SourceAccount パラメーターを参照してください。

Required: No

Type: String

更新に伴う要件: 置換

SourceArn

関数を呼び出しているリソースの ARN。Amazon Simple Storage Service (Amazon S3) へのアクセス許可を付与して関数を実行する場合は、バケット ARN を値としてこのプロパティを指定します。こにより、関数にマッピングを作成する AWS アカウントからのバケットではなく、指定したバケットから生成されたイベントのみが関数を実行できるようになります。

重要

このプロパティは、すべてのイベントのソースでサポートされているわけではありません。詳細については、AWS Lambda Developer GuideAddPermission アクションの SourceArn パラメーターを参照してください。

Required: No

Type: String

更新に伴う要件: 置換

次の例では、Lambda 関数を呼び出す S3 バケットのアクセス許可を付与します。

JSON

Copy
"LambdaInvokePermission": { "Type": "AWS::Lambda::Permission", "Properties": { "FunctionName": { "Fn::GetAtt": [ "MyLambdaFunction", "Arn" ] }, "Action": "lambda:InvokeFunction", "Principal": "s3.amazonaws.com", "SourceAccount": { "Ref": "AWS::AccountId" }, "SourceArn": { "Fn::GetAtt": [ "MyBucket", "Arn" ] } } }

YAML

Copy
LambdaInvokePermission: Type: 'AWS::Lambda::Permission' Properties: FunctionName: !GetAtt - MyLambdaFunction - Arn Action: 'lambda:InvokeFunction' Principal: s3.amazonaws.com SourceAccount: !Ref 'AWS::AccountId' SourceArn: !GetAtt - MyBucket - Arn

このページの内容: