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

所要時間1分
0

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

簡単な説明

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

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

解決策

**注:**AWS コマンドラインインターフェイス (AWS CLI) コマンドの実行中にエラーが発生した場合は、「AWS CLI エラーのトラブルシューティング」を参照してください。また、AWS CLI の最新バージョンを使用していることを確認してください。

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

または、

AWS::Lambda::Permission リソースを使用して、アカウント A の Lambda 関数を呼び出すためのアクセス許可をアカウント B に付与します。

  1. アカウント A のスタックを通じて Lambda 関数が作成されたら、AWS::Lambda::Permission リソースを使用してアカウント B にアクセス許可を付与します。
  2. アカウント B で、カスタムリソースを含む AWS CloudFormation スタックを起動します。
    注: ServiceTokenアカウント A の Lambda 関数の Amazon リソースネーム (ARN) を参照していることを確認してください。カスタムリソースへ入力として送信するその他のプロパティをすべて含めてください。
  3. Amazon CloudWatch Logs を使用して、アカウント B のカスタムリソースがアカウント A の Lambda 関数を呼び出したことを確認します。

関連情報

Lambda でのリソースベースの IAM ポリシーの使用

AWS公式
AWS公式更新しました 4年前
コメントはありません

関連するコンテンツ