CloudFront連携設定
LightFile ProxyとCloudFrontの連携を設定すると、以下の機能を利用できます。
- 自動切り戻しと復旧
- LightFile Proxyの障害/復旧に合わせて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値は後述します。
連携設定のポイント
- IAMロールの作成。
- IAMロールの許可ポリシーの設定。
- CloudFrontディストリビューションの一覧と一部操作を許可(次項参照)。
- IAMロールの信頼ポリシーの設定。
- 弊社のIAMユーザーに対するSTS AssumeRoleを許可(次項参照)。
- 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=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": {}
}
]
}