Amazon S3 Files アクセスの設定
S3 Files は、任意の AWS コンピューティングリソースを Amazon S3 のデータに直接接続する共有ファイルシステムを提供します。Amazon S3 Files は、ローカルマウントパスでの読み取りと書き込みなどの標準のファイルシステムオペレーションを使用して、ファイルとしての Amazon S3 オブジェクトへのアクセスを提供します。Amazon S3 Files の詳細を参照してください。
前提条件と設定
Lambda 関数で Amazon S3 Files をセットアップする前に、以下のものがあることを確認してください。
-
Lambda 関数 と同じアカウントと AWS リージョンにある使用可能な状態の Amazon S3 ファイルシステムとマウントターゲット。
-
マウントターゲットと同じ VPC 内の Lambda 関数。関数をデプロイする各サブネットにマウントターゲットが必要です。
-
Lambda 関数とマウントターゲットの間の NFS トラフィック (ポート 2049) を許可するセキュリティグループ。セキュリティグループの設定の詳細を参照してください。
詳細については、「Amazon S3 ユーザーガイド」の次のトピックを参照してください。
実行ロールとユーザーアクセス許可
Amazon S3 Files ファイルシステムにアクセスするには、関数の実行ロールに次のアクセス許可が必要です。
実行ロールのアクセス許可
-
s3files:ClientMount – ファイルシステムをマウントするために必要です。
-
s3files:ClientWrite – 読み取り/書き込みアクセスに必要です。読み取り専用の接続には必要ありません。
これらのアクセス許可は、AmazonS3FilesClientReadWriteAccess 管理ポリシーに含まれています。さらに、実行ロールは、ファイルシステムの VPC に接続するために必要な許可を備えている必要があります。
注記
Amazon S3 Files は、Amazon S3 から直接読み取ることでスループットを最適化します。Amazon S3 からの直接読み取りは、512 MB 以上のメモリで設定された関数でのみサポートされます。
Amazon S3 から直接読み取るには、関数に次のアクセス許可が必要です。
-
s3:GetObject
-
s3:GetObjectVersion
必要なアクセス許可の詳細については、「Amazon S3 ユーザーガイド」の「IAM permissions for Amazon S3 Files」を参照してください。
コンソールでファイルシステムを設定する場合、Lambda はユーザーのアクセス許可を使用してマウントターゲットを検証します。ファイルシステムに接続するように関数を設定するには、ユーザーに以下のアクセス許可が必要です。
ユーザーアクセス許可
-
s3files:ListFileSystems
-
s3files:ListAccessPoints
-
s3files:GetFileSystem
-
s3files:GetAccessPoint
-
s3files:CreateAccessPoint – コンソールから関数にファイルシステムをアタッチする場合に必要です。
次のポリシー例は、読み取り/書き込みアクセスと Amazon S3 からの直接読み取りで Amazon S3 ファイルシステムをマウントする実行ロールアクセス許可を関数に付与します。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "S3FilesLambdaAccess", "Effect": "Allow", "Action": [ "s3files:ClientMount", "s3files:ClientWrite" ], "Resource": "*" }, { "Sid": "S3DirectRead", "Effect": "Allow", "Action": [ "s3:GetObject", "s3:GetObjectVersion" ], "Resource": "arn:aws:s3:::bucket-name/*" }, { "Sid": "S3FilesConsoleSetup", "Effect": "Allow", "Action": [ "s3files:ListFileSystems", "s3files:ListAccessPoints", "s3files:GetFileSystem", "s3files:GetAccessPoint", "s3files:CreateAccessPoint" ], "Resource": "*" } ] }
ファイルシステムへの接続 (コンソール)
関数は、VPC 内のローカルネットワークを介してファイルシステムに接続します。関数が接続するサブネットは、ファイルシステムのマウントポイントを含む同じサブネットでも、NFS トラフィック (ポート 2049) をファイルシステムにルーティングできる同じアベイラビリティーゾーン内のサブネットでもかまいません。
注記
関数が VPC にまだ接続されていない場合は、「」を参照してくださいLambda 関数に Amazon VPC 内のリソースへのアクセスを許可する
S3 Files アクセスを設定するには
Lambda コンソールの [関数ページ]
を開きます。 -
関数を選択します。
-
[設定]、[ファイルシステム] の順にクリックします。
-
[ファイルシステムを追加] を選択します (または [編集] を選択して既存の設定を変更します)。
-
[S3 Files] を選択します。
-
以下のプロパティを設定します。
-
[S3 ファイルシステム] – ドロップダウンからファイルシステムを選択します。
-
[アクセスポイント] (オプション) – アクセスポイントを選択します。ファイルシステムにアクセスポイントがない場合、Lambda は保存時にアクセスポイントを自動的に作成します (UID/GID 1000:1000、ルートディレクトリ
/lambda、アクセス許可 755)。アクセスポイントが存在する場合は、アクセスポイントを選択する必要があります。 -
ローカルマウントパス - ファイルシステムが Lambda 関数にマウントされている場所 (
/mnt/で始まります)。
-
-
[保存] を選択します。
Lambda 関数を次回呼び出すときにファイルシステムがアタッチされます。