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経由で操作することが可能になります。

連携の設定手順

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

設定する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"
            ],
            "Resource": "arn:aws:cloudfront::御社のAWSアカウントID:distribution/*"
        }
    ]
}

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

より厳密な権限を設定する場合は、Sid=DistributionOperationResourceをディストリビューション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": {}
        }
    ]
}