跳至內容

如何為以 Amazon S3 為原始伺服器的 CloudFront 發佈項目設定 OAC,並從 OAI 遷移至 OAC?

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 的 Name (名稱)。
    (選用) 輸入 OAC 的 Description (描述)。
    在 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_NAME、YOUR_AWS_ACCOUNT_ID 和 YOUR_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_NAME、YOUR_AWS_ACCOUNT_ID、YOUR_DISTRIBUTION_ID 和 YOUR_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 (儲存變更)。

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

如需更多資訊,請參閱從原始存取身分 (OAI) 遷移至原始存取控制 (OAC)。

相關資訊

限制對 Amazon S3 原始伺服器的存取

封鎖對 Amazon S3 儲存體的公開存取

AWS 官方已更新 7 個月前