Skip to content

プライベートS3バケットのオリジン

LightFile Proxyでは、パブリックアクセスを許可していないプライベートなS3バケットも、S3のAPIによりオリジンに指定することができます。

パブリックアクセス推奨

S3 API経由より、パブリックWebアクセスの方が応答が早く負荷が小さいです。パブリックWebアクセスにより、HTTP経由でのオリジン設定を推奨します。

プライベートS3オリジンの方式

プライベートなS3バケットへのアクセスには2つの方式があります。

  1. 推奨 クロスアカウントアクセス
    • 弊社で用意したIAMユーザーへのクロスアカウントアクセスを許可
    • S3バケットポリシーの変更で対応可能
    • 認証情報の預かりが不要
  2. IAMユーザー認証情報の登録
    • 御社で用意したIAMユーザーの認証情報をマネジメントコンソールに登録
    • IAMユーザーの作成が必要
    • 認証情報(アクセスキーIDとシークレットアクセスキー)の預かりが必要

クロスアカウントアクセスによる方式

S3バケットのポリシーを変更できる場合は、こちらの方法が手軽で、認証情報の預かりもないため安全です。

クロスアカウントアクセスを許可する手順

詳しくは動画をご覧ください。(音声が出ます)

クロスアカウントアクセスのポイント

  1. LightFile Proxyのルーティング設定を追加する。
  2. オリジンタイプをAmazon S3 GetObjectとして、リージョンとバケット名を指定する。
  3. 弊社が用意したIAMユーザーのクロスアカウントアクセスを許可するには を展開する。
  4. 記載されているバケットポリシーの許可ステートメントを対象バケットに指定する。
  5. 御社が用意したIAMユーザーのアクセスキーIDとシークレットアクセスキーを登録する。
  6. ルーティング設定を保存し、クラスタ設定をノードに反映する。

バケットポリシーの例

バケットポリシーでは、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ユーザーを利用してオリジンアクセスする手順

次の手順で操作してください。

  1. S3バケットのオブジェクトに対しGetObjectを許可したIAMユーザーを作成する。
  2. IAMユーザーの認証情報(アクセスキーIDとシークレットアクセスキー)を取得する。
  3. LightFile Proxyのルーティング設定を追加する。
  4. オリジンタイプをAmazon S3 GetObjectとして、リージョンとバケット名を指定する。
  5. 御社が用意したIAM認証情報でアクセス にチェックを入れる。
  6. 御社が用意したIAMユーザーのアクセスキーIDとシークレットアクセスキーを登録する。
  7. ルーティング設定を保存し、クラスタ設定をノードに反映する。

なお、シークレットアクセスキーは公開鍵暗号によりブラウザ上で暗号化され、安全に保管されます。