ある AWS アカウントで作成された Lambda 関数を、別の AWS アカウントの AWS CloudFormation カスタムリソースとともに使用するにはどうすればよいですか?

最終更新日: 2021 年 2 月 15 日

あるアカウントで AWS Lambda 関数を作成し、別のアカウントの AWS CloudFormation カスタムリソースからその関数を呼び出したいと考えています。

簡単な説明

Lambda 関数とカスタムリソースが同じ AWS リージョンにある場合にのみ、別のアカウントのカスタムリソースから Lambda 関数を呼び出すことができます。AWS::CloudFormation::CustomResourceServiceToken プロパティは、AWS CloudFormation スタックを作成したリージョンと同じリージョンにある必要があります。リソースベースのポリシーを使用して、Lambda 関数を呼び出すカスタムリソースに対するアクセス許可をアカウントに付与する必要があります。

注: Lambda 関数をカスタムリソースに関連付けると、カスタムリソースが作成、更新、または削除されるたびに関数が呼び出されます。AWS CloudFormation は Lambda API を呼び出して関数を呼び出し、すべてのリクエストデータを関数に渡します。例えば、リクエストデータには、リクエストタイプとリソースプロパティが含まれます。

解決方法

注: AWS コマンドラインインターフェイス (AWS CLI) コマンドの実行中にエラーが発生した場合は、AWS CLI の最新バージョンを使用していることを確認してください

Lambda 関数に別のアカウント (アカウント B) からカスタムリソースへのアクセス権を付与するには、プライマリアカウント (アカウント A) で AWS CLI コマンドの add-permission を実行します。

- または -

1.    アカウント A のスタックを介して Lambda 関数を作成する場合、AWS::Lambda::Permission リソースを使用して、アカウント B にアクセス許可を付与します。

2.    アカウント B で、カスタムリソースを含む AWS CloudFormation スタックを起動します。

注: ServiceTokenアカウント A の Lambda 関数の Amazon リソースネーム (ARN) を参照していることを確認してください。カスタムリソースに入力として送信する追加のプロパティを含めます。

3.    Amazon CloudWatch Logs を使用して、アカウント B のカスタムリソースがアカウント A で Lambda 関数を呼び出したことを確認します。


この記事はお役に立ちましたか?


請求に関するサポートまたは技術サポートが必要ですか?