プライベートS3バケットのオリジン
LightFile Proxyでは、パブリックアクセスを許可していないプライベートなS3バケットも、S3のAPIによりオリジンに指定することができます。
パブリックアクセス推奨
S3 API経由より、パブリックWebアクセスの方が応答が早く負荷が小さいです。パブリックWebアクセスにより、HTTP経由でのオリジン設定を推奨します。
プライベートS3オリジンの方式
プライベートなS3バケットへのアクセスには2つの方式があります。
推奨
クロスアカウントアクセス- 弊社で用意したIAMユーザーへのクロスアカウントアクセスを許可
- S3バケットポリシーの変更で対応可能
- 認証情報の預かりが不要
- IAMユーザー認証情報の登録
- 御社で用意したIAMユーザーの認証情報をマネジメントコンソールに登録
- IAMユーザーの作成が必要
- 認証情報(アクセスキーIDとシークレットアクセスキー)の預かりが必要
クロスアカウントアクセスによる方式
S3バケットのポリシーを変更できる場合は、こちらの方法が手軽で、認証情報の預かりもないため安全です。
クロスアカウントアクセスを許可する手順
詳しくは動画をご覧ください。(音声が出ます)
クロスアカウントアクセスのポイント
- LightFile Proxyのルーティング設定を追加する。
- オリジンタイプを
Amazon S3 GetObject
として、リージョンとバケット名を指定する。 弊社が用意したIAMユーザーのクロスアカウントアクセスを許可するには
を展開する。- 記載されているバケットポリシーの許可ステートメントを対象バケットに指定する。
- 御社が用意したIAMユーザーのアクセスキーIDとシークレットアクセスキーを登録する。
- ルーティング設定を保存し、クラスタ設定をノードに反映する。
バケットポリシーの例
バケットポリシーでは、arn:aws:iam::920451149068:user/lightfile-proxy
からのGetObject
を許可してください。
次のJSONはバケットポリシーの例です。LightFileマネジメントコンソールでも表示されます。
バケット名
バケット名は実際のバケット名に差し替えてください。
920451149068
はLightFile ProxyのAWSアカウントIDなので変更不要です。
json
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::920451149068:user/lightfile-proxy"
},
"Action": "s3:GetObject",
"Resource": [
"arn:aws:s3:::バケット名/*"
]
}
]
}
IAMユーザー認証情報の登録による方式
クロスアカウントアクセスを許可する以外に、御社が用意したIAMユーザーとしてS3バケットにアクセスする方法もあります。
御社が用意したIAMユーザーを利用してオリジンアクセスする手順
次の手順で操作してください。
- S3バケットのオブジェクトに対し
GetObject
を許可したIAMユーザーを作成する。 - IAMユーザーの認証情報(アクセスキーIDとシークレットアクセスキー)を取得する。
- LightFile Proxyのルーティング設定を追加する。
- オリジンタイプを
Amazon S3 GetObject
として、リージョンとバケット名を指定する。 御社が用意したIAM認証情報でアクセス
にチェックを入れる。- 御社が用意したIAMユーザーのアクセスキーIDとシークレットアクセスキーを登録する。
- ルーティング設定を保存し、クラスタ設定をノードに反映する。
なお、シークレットアクセスキーは公開鍵暗号によりブラウザ上で暗号化され、安全に保管されます。