如何為具有 Amazon S3 來源的 CloudFront 發行項目設定 OAC,並從 OAI 遷移?
我想要為具有 Amazon Simple Storage Service (Amazon S3) 儲存貯體來源的 Amazon CloudFront 發行項目,設定原始存取控制 (OAC)。我還想從原始存取身分 (OAI) 遷移到 OAC。
簡短描述
OAC 和 OAI 是 CloudFront 安全功能,可協助您保護 Amazon S3 儲存貯體來源。OAC 和 OAI 會限制對 S3 儲存貯體的存取,您只能透過您設定的 CloudFront 發行項目進行存取。
**注意:**最佳做法是使用 OAC 而不是 OAI。如需詳細資訊,請參閱限制對 Amazon S3 來源的存取。
解決方法
在 CloudFront 主控台中建立 OAC
若要為具有 Amazon S3 儲存貯體來源的 CloudFront 發行項目設定 OAC,請完成下列步驟:
- 開啟 CloudFront console (CloudFront 主控台)。
- 在導覽窗格中,展開 Security (安全性),然後選擇 Origin access (原始存取)。
- 選擇 Create control setting (建立控制設定)。
- 在 Create new OAC (建立新的 OAC) 表單中,完成以下項目:
輸入 OAC 的名稱。
(選用) 輸入 OAC 的說明。
在 Signing behavior (簽署行為),保留預設設定 Sign requests (recommended) (簽署請求 (建議))。
選擇 Origin type (來源類型) 下拉式清單,然後選擇 S3。 - 選擇 Create (建立)。
如需詳細資訊,請參閱建立原始存取控制。
將 OAC 新增至發行項目中的 S3 來源
請完成下列步驟:
- 開啟 CloudFront console (CloudFront 主控台)。
- 在導覽窗格中,選擇 Distributions (發行項目),然後選擇具有 S3 來源的發行項目。
- 選擇 Origins (來源) 索引標籤,然後選擇要新增 OAC 的來源名稱。
- 選擇 Edit (編輯),然後選擇 Origin access control settings (recommended) (原始存取控制設定 (建議))。
- 選擇 Origin access control dropdown (原始存取控制下拉式清單),然後選擇您在上一節中建立的 OAC。
- 選擇 Save changes (儲存變更)。
更新 S3 儲存貯體政策
若要允許 CloudFront 發行項目使用 OAC 存取 S3 儲存貯體,請更新儲存貯體政策:
-
開啟 Amazon S3 console (Amazon S3 主控台)。
-
在導覽窗格中,選擇 General purpose buckets (一般用途儲存貯體)。
-
選擇 S3 儲存貯體,然後選擇 Permissions (權限) 索引標籤。
-
在 Bucket policy (儲存貯體政策) 下,選擇 Edit (編輯)。
-
在 Policy edit statement (政策編輯陳述式) 中,附加以下政策:
{ "Version": "2012-10-17", "Statement": { "Sid": "AllowCloudFrontServicePrincipalReadOnly", "Effect": "Allow", "Principal": { "Service": "cloudfront.amazonaws.com" }, "Action": "s3:GetObject", "Resource": "arn:aws:s3:::YOUR_BUCKET_NAME/*", "Condition": { "StringEquals": { "AWS:SourceArn": "arn:aws:cloudfront::YOUR_AWS_ACCOUNT_ID:distribution/YOUR_DISTRIBUTION_ID" } } } }**注意:**將 YOUR_BUCKET_NAME、YOUR_AWS_ACCOUNT_ID 和 YOUR_DISTRIBUTION_ID 替換為您的變數。
-
選擇 Save changes (儲存變更)。
(選用) 將 OAI 遷移到 OAC
如果您使用 OAI 限制對 S3 儲存貯體來源的存取,並想要遷移到 OAC,請完成以下步驟:
-
請依照在 CloudFront 主控台中建立 OAC 一節中的步驟進行操作。
-
開啟 Amazon S3 console (Amazon S3 主控台)。
-
在導覽窗格中,選擇 General purpose buckets (一般用途儲存貯體)。
-
選擇 S3 儲存貯體,然後選擇 Permissions (權限) 索引標籤。
-
在 Bucket policy (儲存貯體政策) 下,選擇 Edit (編輯)。
-
在 Policy edit statement (政策編輯陳述式) 中,附加以下政策:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowCloudFrontServicePrincipalReadOnly", "Effect": "Allow", "Principal": { "Service": "cloudfront.amazonaws.com" }, "Action": "s3:GetObject", "Resource": "arn:aws:s3:::YOUR_BUCKET_NAME/*", "Condition": { "StringEquals": { "AWS:SourceArn": "arn:aws:cloudfront::YOUR_AWS_ACCOUNT_ID:distribution/YOUR_DISTRIBUTION_ID" } } }, { "Sid": "AllowLegacyOAIReadOnly", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::cloudfront:user/CloudFront Origin Access Identity YOUR_ORIGIN_ACCESS_IDENTITY_ID" }, "Action": "s3:GetObject", "Resource": "arn:aws:s3:::YOUR_BUCKET_NAME/*" } ] }**注意:**將 YOUR_BUCKET_NAME、YOUR_AWS_ACCOUNT_ID、YOUR_DISTRIBUTION_ID 和 YOUR_ORIGIN_ACCESS_IDENTITY_ID 替換為您的變數。
-
選擇 Save changes (儲存變更)。
-
開啟 CloudFront console (CloudFront 主控台)。
-
在導覽窗格中,選擇 Distributions (發行項目),然後選擇要附加 OAC 的發行項目。
-
選擇 Origins (來源) 索引標籤,選擇來源名稱,然後選擇 Edit (編輯)。
-
在 Origin access (原始存取) 下,選擇 Origin access control settings (recommended) (原始存取控制設定 (建議))。
-
選擇 Origin access control dropdown (原始存取控制下拉式清單),然後選取要使用的 OAC。
-
選擇 Save changes (儲存變更)。
完全部署發行項目後,您可以更新 S3 儲存貯體政策,以移除與 OAI 相關的陳述式。
如需詳細資訊,請參閱從原始存取身分 (OAI) 遷移到原始存取控制 (OAC)。
相關資訊
- 語言
- 中文 (繁體)

相關內容
已提問 3 年前