跳至內容

如何設定我的 S3 儲存貯體,以只儲存由我的 KMS key 加密的物件?

2 分的閱讀內容
0

我希望 Amazon Simple Storage Service (Amazon S3) 儲存貯體只儲存由我的 AWS 帳戶中,AWS Key Management Service (AWS KMS) key 加密的物件。我如何確保只有這些物件可以上傳到我的儲存貯體?

簡短描述

使用 Amazon S3 預設加密功能,確保未使用加密標頭 (例如 x-amz-server-side-encryption 和 x-amz-server-side-encryption-aws-kms-key-id) 上傳的物件,在儲存到您的 S3 儲存貯體之前已由 AWS KMS 進行加密。接著,使用儲存貯體政策確保無法上傳具有其他加密設定 (如 AES-256) 的物件,並且使用 AWS KMS 加密上傳的物件必須包含來自您 AWS 帳戶的金鑰 ID。

**注意:**若要上傳 AWS KMS key 加密的物件,金鑰和 S3 儲存貯體必須位於同一 AWS 區域。

解決方法

Amazon S3 預設加密

請依照下列步驟使用 Amazon S3 主控台,將儲存貯體的 Amazon S3 預設加密設定為 AWS KMS:

  1. 開啟 Amazon S3 console (Amazon S3 主控台)。
  2. 選擇要用於 AWS KMS 加密物件的儲存貯體。
  3. 選擇 Properties (屬性) 檢視。
  4. 選擇 Default encryption (預設加密),然後選取 AWS-KMS
  5. 選擇 Save (儲存)。

**注意:**若要使用 REST API、AWS Command Line Interface (AWS CLI) 或 AWS SDK 啟用 Amazon S3 預設加密,請參閱設定預設加密

儲存貯體政策

請依照下列步驟設定您的儲存貯體政策,以拒絕以下兩種情況的上傳請求:使用其他加密設定 (如 AES-256),或使用 AWS KMS 加密但所使用的金鑰 ID 非來自您的 AWS 帳戶:

  1. 開啟 Amazon S3 console (Amazon S3 主控台)。
  2. 選擇要用於 AWS KMS 加密物件的儲存貯體。
  3. 選擇 Permissions (權限) 檢視。
  4. 選擇 Bucket Policy (儲存貯體政策)。
  5. 輸入類似以下內容的儲存貯體政策:
    **注意:**將 samplebucketname 替換為您的儲存貯體的名稱,並將 us-east-1:111122223333 替換為正確的 AWS 區域和您的 AWS 帳戶 ID。
{
    "Version": "2012-10-17",
    "Id": "PutObjPolicy",
    "Statement": [
        {
            "Sid": "DenySSE-S3",
            "Effect": "Deny",
            "Principal": "*",
            "Action": "s3:PutObject",
            "Resource": "arn:aws:s3:::samplebucketname/*",
            "Condition": {
                "StringEquals": {
                    "s3:x-amz-server-side-encryption": "AES256"
                }
            }
        },
  {
            "Sid": "RequireKMSEncryption",
            "Effect": "Deny",
            "Principal": "*",
            "Action": "s3:PutObject",
            "Resource": "arn:aws:s3:::samplebucketname/*",
            "Condition": {
                "StringNotLikeIfExists": {
                    "s3:x-amz-server-side-encryption-aws-kms-key-id": "arn:aws:kms:us-east-1:111122223333:key/*"
                }
            }
        }
    ]
}

相關資訊

Amazon Simple Storage Service (Amazon S3) 如何使用 AWS KMS

AWS 官方已更新 2 年前