跳至內容

如何為具有 Amazon S3 來源的 CloudFront 發行項目設定 OAC,並從 OAI 遷移?

3 分的閱讀內容
0

我想要為具有 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,請完成下列步驟:

  1. 開啟 CloudFront console (CloudFront 主控台)。
  2. 在導覽窗格中,展開 Security (安全性),然後選擇 Origin access (原始存取)。
  3. 選擇 Create control setting (建立控制設定)。
  4. Create new OAC (建立新的 OAC) 表單中,完成以下項目:
    輸入 OAC 的名稱
    (選用) 輸入 OAC 的說明
    Signing behavior (簽署行為),保留預設設定 Sign requests (recommended) (簽署請求 (建議))。
    選擇 Origin type (來源類型) 下拉式清單,然後選擇 S3
  5. 選擇 Create (建立)。

如需詳細資訊,請參閱建立原始存取控制

將 OAC 新增至發行項目中的 S3 來源

請完成下列步驟:

  1. 開啟 CloudFront console (CloudFront 主控台)。
  2. 在導覽窗格中,選擇 Distributions (發行項目),然後選擇具有 S3 來源的發行項目。
  3. 選擇 Origins (來源) 索引標籤,然後選擇要新增 OAC 的來源名稱。
  4. 選擇 Edit (編輯),然後選擇 Origin access control settings (recommended) (原始存取控制設定 (建議))。
  5. 選擇 Origin access control dropdown (原始存取控制下拉式清單),然後選擇您在上一節中建立的 OAC。
  6. 選擇 Save changes (儲存變更)。

更新 S3 儲存貯體政策

若要允許 CloudFront 發行項目使用 OAC 存取 S3 儲存貯體,請更新儲存貯體政策:

  1. 開啟 Amazon S3 console (Amazon S3 主控台)。

  2. 在導覽窗格中,選擇 General purpose buckets (一般用途儲存貯體)。

  3. 選擇 S3 儲存貯體,然後選擇 Permissions (權限) 索引標籤。

  4. Bucket policy (儲存貯體政策) 下,選擇 Edit (編輯)。

  5. 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_NAMEYOUR_AWS_ACCOUNT_IDYOUR_DISTRIBUTION_ID 替換為您的變數。

  6. 選擇 Save changes (儲存變更)。

(選用) 將 OAI 遷移到 OAC

如果您使用 OAI 限制對 S3 儲存貯體來源的存取,並想要遷移到 OAC,請完成以下步驟:

  1. 請依照在 CloudFront 主控台中建立 OAC 一節中的步驟進行操作。

  2. 開啟 Amazon S3 console (Amazon S3 主控台)。

  3. 在導覽窗格中,選擇 General purpose buckets (一般用途儲存貯體)。

  4. 選擇 S3 儲存貯體,然後選擇 Permissions (權限) 索引標籤。

  5. Bucket policy (儲存貯體政策) 下,選擇 Edit (編輯)。

  6. 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_NAMEYOUR_AWS_ACCOUNT_IDYOUR_DISTRIBUTION_IDYOUR_ORIGIN_ACCESS_IDENTITY_ID 替換為您的變數。

  7. 選擇 Save changes (儲存變更)。

  8. 開啟 CloudFront console (CloudFront 主控台)。

  9. 在導覽窗格中,選擇 Distributions (發行項目),然後選擇要附加 OAC 的發行項目。

  10. 選擇 Origins (來源) 索引標籤,選擇來源名稱,然後選擇 Edit (編輯)。

  11. Origin access (原始存取) 下,選擇 Origin access control settings (recommended) (原始存取控制設定 (建議))。

  12. 選擇 Origin access control dropdown (原始存取控制下拉式清單),然後選取要使用的 OAC。

  13. 選擇 Save changes (儲存變更)。

完全部署發行項目後,您可以更新 S3 儲存貯體政策,以移除與 OAI 相關的陳述式。

如需詳細資訊,請參閱從原始存取身分 (OAI) 遷移到原始存取控制 (OAC)

相關資訊

限制對 Amazon S3 來源的存取

封鎖對您 Amazon S3 儲存空間的公開存取

AWS 官方已更新 1 年前