7.3.5.3. AWS CloudFront ストレージ
AWS CloudFront は、コンテンツをキャッシュし、ユーザーの近くで配信することで、パフォーマンスの向上と低レイテンシーを実現するコンテンツ配信ネットワーク (CDN) サービスです。Red Hat Quay は、CloudFrontedS3Storage ドライバーを通じて CloudFront をサポートし、CloudFront ディストリビューション経由で S3 バケットへのセキュアな署名付きアクセスを可能にします。
Red Hat Quay デプロイメント用に AWS CloudFront を設定する場合は、次の例を使用します。
注記
AWS Cloudfront ストレージを設定する場合、Red Hat Quay を適切に使用するには次の条件を満たす必要があります。
-
config.yamlファイルで定義されている Red Hat Quay のストレージパスと一致するように Origin パス を設定する必要があります。この要件を満たさない場合、イメージを取得するときに403エラーが発生します。詳細は、Origin path を参照してください。 - Bucket policy と Cross-origin resource sharing (CORS) ポリシーを設定する必要があります。
-
Cloudfront S3 の YAML サンプル
DISTRIBUTED_STORAGE_CONFIG:
default:
- CloudFrontedS3Storage
- cloudfront_distribution_domain: <CLOUDFRONT_DISTRIBUTION_DOMAIN>
cloudfront_key_id: <CLOUDFRONT_KEY_ID>
cloudfront_privatekey_filename: <CLOUDFRONT_PRIVATE_KEY_FILENAME>
host: <S3_HOST>
s3_access_key: <S3_ACCESS_KEY>
s3_bucket: <S3_BUCKET_NAME>
s3_secret_key: <S3_SECRET_KEY>
storage_path: <STORAGE_PATH>
s3_region: <S3_REGION>
DISTRIBUTED_STORAGE_DEFAULT_LOCATIONS:
- default
DISTRIBUTED_STORAGE_PREFERENCE:
- default
バケットポリシーの例
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::<AWS_ACCOUNT_ID>:user/CloudFront Origin Access Identity <CLOUDFRONT_OAI_ID>"
},
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::<S3_BUCKET_NAME>/*"
},
{
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::<AWS_ACCOUNT_ID>:user/CloudFront Origin Access Identity <CLOUDFRONT_OAI_ID>"
},
"Action": "s3:ListBucket",
"Resource": "arn:aws:s3:::<S3_BUCKET_NAME>"
}
]
}