如何為以 Amazon S3 為原始伺服器的 CloudFront 發佈項目設定 OAC,並從 OAI 遷移至 OAC?
我想為以 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 的 Name (名稱)。
(選用) 輸入 OAC 的 Description (描述)。
在 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 (儲存變更)。
CloudFront 完成發佈項目的部署後,您可以更新 S3 儲存貯體政策,移除與 OAI 相關的陳述式。
如需更多資訊,請參閱從原始存取身分 (OAI) 遷移至原始存取控制 (OAC)。
相關資訊
- 語言
- 中文 (繁體)

This article was reviewed and updated on 2026-03-17.
相關內容
已提問 3 個月前
已提問 3 年前