Lambda 関数に別の AWS アカウントの Amazon EFS ファイルシステムを使用する - AWS Lambda

Lambda 関数に別の AWS アカウントの Amazon EFS ファイルシステムを使用する

Amazon EFS ファイルシステムを別の AWS アカウント にマウントする関数を設定できます。ファイルシステムをマウントする前に、次のことを確認する必要があります。

  • VPC ピアリングが設定され、各 VPC のルートテーブルに適切なルートが追加されている。

  • マウントする Amazon EFS ファイルシステムのセキュリティグループが、Lambda 関数に関連付けられたセキュリティグループからのインバウンドアクセスを許可するように設定されている。

  • 各 VPC にアベイラビリティーゾーン (AZ) ID の一致するサブネットが作成されている。

  • 両方の VPC で DNS ホスト名が有効である。

Lambda 関数が別の AWS アカウント の Amazon EFS ファイルシステムにアクセスできるようにするため、そのファイルシステムには関数にアクセス許可を付与するファイルシステムポリシーも必要です。ファイルシステムポリシーの作成方法については、「Amazon Elastic File System ユーザーガイド」の「Creating file system policies」を参照してください。

以下は、指定したアカウントの Lambda 関数に、ファイルシステム上ですべての API アクションを実行するアクセス許可を付与するポリシーの例を示しています。

{ "Version": "2012-10-17", "Id": "efs-lambda-policy", "Statement": [ { "Sid": "efs-lambda-statement", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::{LAMBDA-ACCOUNT-ID}:root" }, "Action": "*", "Resource": "arn:aws:elasticfilesystem:{REGION}:{ACCOUNT-ID}:file-system/{FILE SYSTEM ID}" } ] }
注記

示されているポリシーの例では、ワイルドカード文字 (「*」) を使用して、指定した AWS アカウント の Lambda 関数にファイルシステム上で任意の API オペレーションを実行するためのアクセス許可を付与しています。これには、ファイルシステムの削除も含まれます。他の AWS アカウント がファイルシステム上で実行できる操作を制限するには、許可するアクションを明示的に指定してください。利用可能な API オペレーションのリストについては、「Amazon Elastic File System のアクション、リソース、条件キー」を参照してください。

クロスアカウントのファイルシステムのマウントを設定するには、AWS Command Line Interface (AWS CLI) の update-function-configuration オペレーションを使用します。

別の AWS アカウント でファイルシステムをマウントするには、次のコマンドを実行します。独自の関数名を使用して、マウントするファイルシステム用に Amazon リソースネーム (ARN) を Amazon EFS アクセスポイントの ARN に置き換えます。LocalMountPath は関数がファイルシステムにアクセスできるパスで、/mnt/ で始まります。Lambda のマウントパスがファイルシステムのアクセスポイントのパスと一致することを確認してください。例えば、アクセスポイントが /efs である場合、Lambda のマウントパスは /mnt/efs になる必要があります。

aws lambda update-function-configuration --function-name MyFunction \ --file-system-configs Arn=arn:aws:elasticfilesystem:us-east-1:222222222222:access-point/fsap-01234567,LocalMountPath=/mnt/test