Skip to content

CloudFront連携設定 ​

LightFile ProxyとCloudFrontの連携を設定すると、以下の機能を利用できます。

LightFile Proxyをフル活用するため、CloudFront連携設定は実施を強く推奨します。

連携の仕組み ​

御社のAWSアカウント内にCloudFrontを操作できるIAMロールを作成し、弊社の指定のIAMユーザーにSTS AssumeRoleを許可いただきます。

STS AssumeRoleとは

IAMユーザーがIAMロールの権限を一時的に借用するAWSの標準的な機能です。

作成したIAMロールのARNを管理画面から登録いただくことで、弊社のIAMユーザーがSTS AssumeRoleにより一時的にIAMロールの権限を借用し、御社のCloudFrontをAPI経由で操作することが可能になります。

御社のAWSアカウントLightFile ProxyのAWSアカウント② 操作を許可③ ARNを登録④ STSで一時貸出⑤ API経由で操作CloudFront① IAMロール管理画面IAMユーザー

連携の設定手順 ​

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

設定するJSON値は後述します。

連携設定のポイント ​

  1. IAMロールの作成。
  2. IAMロールの許可ポリシーの設定。
    • CloudFrontディストリビューションの一覧と一部操作を許可(次項参照)。
  3. IAMロールの信頼ポリシーの設定。
    • 弊社のIAMユーザーに対するSTS AssumeRoleを許可(次項参照)。
  4. LightFile ProxyへのIAMロールARNの登録。

ポリシーの詳細 ​

許可ポリシー ​

CloudFrontディストリビューションを操作するためのポリシーを作成する際は、次のJSONを参考にしてください。

AWSアカウントID

御社のAWSアカウントIDは実際の値に置き換えてください。アカウントIDは12桁前後の数値です。

json
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "DistributionsListing",
            "Effect": "Allow",
            "Action": "cloudfront:ListDistributions",
            "Resource": "*"
        },
        {
            "Sid": "DistributionOperation",
            "Effect": "Allow",
            "Action": [
                "cloudfront:UpdateDistribution",
                "cloudfront:GetDistributionConfig",
                "cloudfront:CreateInvalidation",
                "cloudfront:GetInvalidation"
            ],
            "Resource": "arn:aws:cloudfront::御社のAWSアカウントID:distribution/*"
        }
    ]
}

上記のJSONでは、アカウントのすべてのCloudFrontディストリビューションを対象として操作を許可します。

cloudfront:GetInvalidationは、CloudFrontのキャッシュ削除が完了したかを確認するために使います。許可が無くてもキャッシュ削除は実行されますが、ジョブやキャッシュクリアAPIの状態が「完了を確認できない」となります。

以前の手順で設定したロール

以前の手順の許可ポリシーにはcloudfront:GetInvalidationが含まれていませんでした。すでに連携を設定済みの場合は、ロールの許可ポリシーに追加してください。

より厳密な権限を設定する場合は、Sid=DistributionOperationのResourceをディストリビューションARNの配列にしてください。

json
"Resource": [
  "arn:aws:cloudfront::御社のAWSアカウントID:distribution/DISTRIBUTION1",
  "arn:aws:cloudfront::御社のAWSアカウントID:distribution/DISTRIBUTION2"
]

IAMロールの信頼ポリシー ​

LightFile ProxyのIAMユーザーに、ロールの権限貸し出し(sts:AssumeRole)を許可するため、以下のポリシーを設定してください。

AWSアカウントID

920451149068はLightFile ProxyのAWSアカウントIDであるため、こちらは変更不要です。

json
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "AWS": [
                    "arn:aws:iam::920451149068:user/lightfile-proxy",
                    "arn:aws:iam::920451149068:root"
                ]
            },
            "Action": "sts:AssumeRole",
            "Condition": {}
        }
    ]
}