本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
傳送至 Amazon S3 的日誌
當您將日誌設定為傳送至 Amazon S3 時, 會視需要 AWS 建立或變更與接收日誌的 S3 儲存貯體相關聯的資源政策。
直接發佈至 Amazon S3 的日誌會發佈至您指定的現有儲存貯體。在指定的儲存貯體中,每五分鐘會建立一或多個日誌檔案。
當您第一次將日誌傳送到 Amazon S3 儲存貯體時,傳送日誌的服務會記錄儲存貯體的擁有者,以確保日誌僅傳送到屬於此帳戶的儲存貯體。因此,若要變更 Amazon S3 儲存貯體擁有者,您必須在原始服務中重新建立或更新日誌訂閱。
注意
CloudFront 使用的許可模型不同於將付費日誌傳送至 S3 的其他 服務。如需詳細資訊,請參閱設定標準記錄和存取日誌檔案所需的許可。
此外,如果您針對 CloudFront 存取日誌和另一個日誌來源使用相同的 S3 儲存貯體,在 CloudFront 儲存貯體上啟用 ACL 也會將許可授予使用此儲存貯體的所有其他日誌來源。
重要
如果您要將日誌傳送至 Amazon S3 儲存貯體,且儲存貯體政策包含 NotAction
或 NotPrincipal
元素,則自動將日誌交付許可新增至儲存貯體,並建立日誌訂閱將會失敗。若要成功建立日誌訂閱,您需要手動將日誌交付許可新增至儲存貯體政策,然後建立日誌訂閱。如需詳細資訊,請參閱本節中的指示。
如果儲存貯體使用客戶受管 AWS KMS 金鑰進行伺服器端加密,您還必須為客戶受管金鑰新增金鑰政策。如需詳細資訊,請參閱Amazon S3。
如果目的地儲存貯體已啟用 SSE-KMS 和儲存貯體金鑰,則連接的客戶受管 KMS 金鑰政策不再適用於所有請求。如需詳細資訊,請參閱使用 Amazon S3 儲存貯體金鑰降低 SSE-KMS 的成本。
如果您使用付費日誌和 S3 加密搭配客戶受 AWS KMS 管金鑰,則必須在設定儲存貯體時使用完整 AWS KMS 金鑰 ARN,而非金鑰 ID。如需詳細資訊,請參閱 put-bucket-encryption。
使用者許可
您必須以具有下列許可的帳戶登入,才能第一次設定將任何這些類型的日誌傳送到 Amazon S3。
-
logs:CreateLogDelivery
-
S3:GetBucketPolicy
-
S3:PutBucketPolicy
如果任何這些類型的日誌已傳送到某個 Amazon S3 儲存貯體,則若要設定將另一種類型的日誌傳送到同一個儲存貯體,您只需要有 logs:CreateLogDelivery
許可。
S3 儲存貯體資源政策
日誌送往的 S3 儲存貯體必須具有包含特定許可的資源政策。如果儲存貯體目前沒有資源政策,且設定記錄的使用者具有儲存貯體的 S3:GetBucketPolicy
和 S3:PutBucketPolicy
許可,則當您開始將日誌傳送至 Amazon S3 時, AWS
會自動建立下列政策。
在先前的政策中,對於 aws:SourceAccount
,指定要將日誌交付至此儲存貯體的帳戶 IDS 清單。對於 aws:SourceArn
,指定產生日誌之資源的 ARN 清單,格式為 arn:aws:logs:
。source-region
:source-account-id
:*
如果儲存貯體具有資源政策,但該政策未包含前一個政策中出現的陳述式,且設定記錄的使用者具有儲存貯體的 S3:GetBucketPolicy
和 S3:PutBucketPolicy
許可,則該陳述式會附加至儲存貯體的資源政策。
注意
在某些情況下, AWS CloudTrail 如果 s3:ListBucket
許可尚未授予 ,您可能會在 中看到AccessDenied
錯誤delivery.logs.amazonaws.com
。若要避免 CloudTrail 日誌中出現這些錯誤,您必須將 s3:ListBucket
許可授予 delivery.logs.amazonaws.com
,且必須包含與先前儲存貯體政策中設定的 s3:GetBucketAcl
許可一起顯示的 Condition
參數。為簡化此操作而不用建立一個新的 Statement
,你可以直接將 AWSLogDeliveryAclCheck
更新為 “Action”:
[“s3:GetBucketAcl”, “s3:ListBucket”]
Amazon S3 儲存貯體伺服器端加密
您可以啟用伺服器端加密搭配 Amazon S3 S3-managed金鑰 (SSE-S3) 或使用存放在 AWS Key Management Service (SSE-KMS) 的 AWS KMS 金鑰進行伺服器端加密,來保護 Amazon S3 儲存貯體中的資料。如需詳細資訊,請參閱使用伺服器端加密保護資料。
如果您選擇 SSE-S3,則不需要其他組態。Amazon S3 會處理加密金鑰。
警告
如果您選擇 SSE-KMS,您必須使用客戶受管金鑰,因為此案例不支援使用 AWS 受管金鑰。如果您使用 AWS 受管金鑰設定加密,日誌將以無法讀取的格式交付。
當您使用客戶受管 AWS KMS 金鑰時,您可以在啟用儲存貯體加密時指定客戶受管金鑰的 Amazon Resource Name (ARN)。您必須將以下內容新增至客戶受管金鑰的金鑰政策 (而不是 S3 儲存貯體的儲存貯體政策),以便日誌傳遞帳戶可以寫入您的 S3 儲存貯體。
如果您選擇 SSE-KMS,則必須使用客戶受管金鑰,因為此情況不支援使用 AWS 受管金鑰。當您使用客戶受管 AWS KMS 金鑰時,您可以在啟用儲存貯體加密時指定客戶受管金鑰的 Amazon Resource Name (ARN)。您必須將以下內容新增至客戶受管金鑰的金鑰政策 (而不是 S3 儲存貯體的儲存貯體政策),以便日誌傳遞帳戶可以寫入您的 S3 儲存貯體。
{ "Sid": "Allow Logs Delivery to use the key", "Effect": "Allow", "Principal": { "Service": [ "delivery.logs.amazonaws.com" ] }, "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:DescribeKey" ], "Resource": "*", "Condition": { "StringEquals": { "aws:SourceAccount": ["
0123456789
"] }, "ArnLike": { "aws:SourceArn": ["arn:aws:logs:us-east-1
:0123456789
:*"] } } }
對於 aws:SourceAccount
,指定要將日誌交付至此儲存貯體的帳戶 IDS 清單。對於 aws:SourceArn
,指定產生日誌之資源的 ARN 清單,格式為 arn:aws:logs:
。source-region
:source-account-id
:*