Amazon S3 存儲桶政策 CloudTrail - AWS CloudTrail

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

Amazon S3 存儲桶政策 CloudTrail

根據預設,所有 Amazon S3 儲存貯體和物件皆為私有。只有資源擁有者 (建立儲存貯體的 AWS 帳戶),可存取儲存貯體及其包含的物件。資源擁有者可藉由編寫存取政策,將存取許可授予其他資源和使用者。

若要建立或修改 Amazon S3 儲存貯體以接收組織追蹤的日誌檔案,則必須變更儲存貯體政策。如需詳細資訊,請參閱 建立組織的追蹤 AWS CLI

若要將日誌檔傳遞到 S3 儲存貯體, CloudTrail 必須具有必要的許可,且無法將其設定為要求者付費儲存貯體。

CloudTrail 在政策中為您新增下列欄位:

  • 允許的 SIDs

  • 儲存貯體名稱

  • 下列項目的服務主要名稱 CloudTrail

  • 儲存記錄檔的資料夾名稱,包括值區名稱、前置詞 (如果已指定),以及您的 AWS 帳戶 ID

安全最佳實務是將 aws:SourceArn 條件金鑰新增至 Amazon S3 儲存貯體政策。IAM全域條件金鑰aws:SourceArn有助於確保僅針對特定追蹤或追蹤 CloudTrail 寫入 S3 儲存貯體。的值永遠aws:SourceArn是使用ARN值區來儲存記錄的軌跡 (或追蹤陣列ARNs) 的值。請務必將 aws:SourceArn 條件金鑰新增至現有追蹤的 S3 儲存貯體政策。

以下策略 CloudTrail 允許從支持將日誌文件寫入存儲桶 AWS 區域。Replace (取代) DOC-EXAMPLE-BUCKET, [optionalPrefix]/, myAccountID, regiontrailName 為您的配置提供適當的值。

S3 儲存貯體政策

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AWSCloudTrailAclCheck20150319", "Effect": "Allow", "Principal": {"Service": "cloudtrail.amazonaws.com"}, "Action": "s3:GetBucketAcl", "Resource": "arn:aws:s3:::DOC-EXAMPLE-BUCKET", "Condition": { "StringEquals": { "aws:SourceArn": "arn:aws:cloudtrail:region:myAccountID:trail/trailName" } } }, { "Sid": "AWSCloudTrailWrite20150319", "Effect": "Allow", "Principal": {"Service": "cloudtrail.amazonaws.com"}, "Action": "s3:PutObject", "Resource": "arn:aws:s3:::DOC-EXAMPLE-BUCKET/[optionalPrefix]/AWSLogs/myAccountID/*", "Condition": { "StringEquals": { "s3:x-amz-acl": "bucket-owner-full-control", "aws:SourceArn": "arn:aws:cloudtrail:region:myAccountID:trail/trailName" } } } ] }

如需有關的更多資訊 AWS 區域,請參閱CloudTrail 支援的地區

指定用於 CloudTrail 記錄傳送的現有值區

如果您指定現有的 S3 儲存貯體做為日誌檔交付的儲存位置,則必須將政策附加 CloudTrail 到允許寫入儲存貯體的儲存貯體。

注意

最佳做法是使用專用的 S3 儲存貯體來處理 CloudTrail 日誌。

若要將必要的 CloudTrail 政策新增至 Amazon S3 儲存貯體
  1. 在開啟 Amazon S3 主控台https://console.aws.amazon.com/s3/

  2. 選擇您要 CloudTrail 傳送記錄檔的值區,然後選擇 [權限]。

  3. 選擇編輯

  4. S3 bucket policy 複製到 Bucket Policy Editor (儲存貯體政策編輯器) 視窗。將斜體預留位置取代成您儲存貯體的名稱、前綴和帳號。如果您在建立追蹤時指定了前綴,請在這裡包含它。前綴是 S3 物件金鑰的選用新增項目,可在您的儲存貯體中建立類似資料夾的組織。

    注意

    如果現有值區已附加一或多個政策,請新增陳述式以 CloudTrail 存取該政策或政策。請評估所產生的一組許可,以確保它們適用於將存取儲存貯體的使用者。

從其他帳戶接收日誌檔案

您可以設定 CloudTrail 將日誌檔從多個 AWS 帳戶傳遞到單一 S3 儲存貯體。如需詳細資訊,請參閱 從多個帳戶接收 CloudTrail 日誌文件

建立或更新 Amazon S3 儲存貯體以存放組織追蹤的日誌檔案

您必須指定 Amazon S3 儲存貯體以接收組織追蹤的日誌檔案。此值區必須具有允 CloudTrail 許將組織的記錄檔放入值區的政策。

以下是名為的 Amazon S3 儲存貯體的範例政策 DOC-EXAMPLE-BUCKET,這是由組織的管理帳戶所擁有。Replace (取代) DOC-EXAMPLE-BUCKET, region, managementAccountID, trailNameo-organizationID 與您的組織的價值

此儲存貯體政策包含三個陳述式。

  • 第一個語句 CloudTrail 允許在 Amazon S3 存儲桶調用 Amazon S3 GetBucketAcl 動作。

  • 第二個陳述式允許記錄當追蹤從組織追蹤變更成僅限該帳戶使用的事件。

  • 第三個陳述式允許組織追蹤記錄。

範例政策會納入 Amazon S3 儲存貯體政策的 aws:SourceArn 條件金鑰。IAM全域條件金鑰aws:SourceArn有助於確保僅針對特定追蹤或追蹤 CloudTrail 寫入 S3 儲存貯體。在組織追蹤中,的值aws:SourceArn必須ARN是管理帳戶所擁有且使用管理帳戶 ID 的追蹤。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AWSCloudTrailAclCheck20150319", "Effect": "Allow", "Principal": { "Service": [ "cloudtrail.amazonaws.com" ] }, "Action": "s3:GetBucketAcl", "Resource": "arn:aws:s3:::DOC-EXAMPLE-BUCKET", "Condition": { "StringEquals": { "aws:SourceArn": "arn:aws:cloudtrail:region:managementAccountID:trail/trailName" } } }, { "Sid": "AWSCloudTrailWrite20150319", "Effect": "Allow", "Principal": { "Service": [ "cloudtrail.amazonaws.com" ] }, "Action": "s3:PutObject", "Resource": "arn:aws:s3:::DOC-EXAMPLE-BUCKET/AWSLogs/managementAccountID/*", "Condition": { "StringEquals": { "s3:x-amz-acl": "bucket-owner-full-control", "aws:SourceArn": "arn:aws:cloudtrail:region:managementAccountID:trail/trailName" } } }, { "Sid": "AWSCloudTrailOrganizationWrite20150319", "Effect": "Allow", "Principal": { "Service": [ "cloudtrail.amazonaws.com" ] }, "Action": "s3:PutObject", "Resource": "arn:aws:s3:::DOC-EXAMPLE-BUCKET/AWSLogs/o-organizationID/*", "Condition": { "StringEquals": { "s3:x-amz-acl": "bucket-owner-full-control", "aws:SourceArn": "arn:aws:cloudtrail:region:managementAccountID:trail/trailName" } } } ] }

這個範例政策不允許成員帳戶中任何使用者存取為該組織建立的日誌檔案。在預設情況下,只有管理帳戶才能存取組織日誌檔案。如需有關如何允許成員帳戶中的IAM使用者讀取 Amazon S3 儲存貯體的資訊,請參閱在 AWS 帳戶之間共用 CloudTrail 記錄檔

針對 Amazon S3 儲存貯體政策進行故障診斷

下列各節說明如何針對 S3 儲存貯體政策進行故障診斷。

常見的 Amazon S3 政策設定錯誤

當您在建立或更新追蹤時建立新值區時,請將必要的權限 CloudTrail附加至值區。儲存貯體政策使用服務主體名稱"cloudtrail.amazonaws.com",該名稱 CloudTrail 允許傳遞所有區域的記錄檔。

如果沒 CloudTrail 有提供區域的日誌,則您的存儲桶可能具有指定每個區域 CloudTrail 帳戶IDs的舊政策。此原則 CloudTrail授與僅針對指定區域傳遞記錄檔的權限。

最佳作法是更新原則以使用 CloudTrail 服務主體的權限。若要這麼做,請將帳戶 ID ARNs 取代為服務主體名稱:"cloudtrail.amazonaws.com"。這會 CloudTrail 授予傳遞目前和新區域記錄的權限。安全最佳實務是將 aws:SourceArnaws:SourceAccount 條件金鑰新增至 Amazon S3 儲存貯體政策。這有助於防止未經授權的帳戶存取您的 S3 儲存貯體。如果您具有現有的追蹤,請務必新增一或多個條件金鑰。以下範例顯示推薦的政策組態。Replace (取代) DOC-EXAMPLE-BUCKET, [optionalPrefix]/, myAccountID, regiontrailName 為您的配置提供適當的值。

範例 儲存貯體政策與服務主體名稱範例
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AWSCloudTrailAclCheck20150319", "Effect": "Allow", "Principal": {"Service": "cloudtrail.amazonaws.com"}, "Action": "s3:GetBucketAcl", "Resource": "arn:aws:s3:::DOC-EXAMPLE-BUCKET", "Condition": { "StringEquals": { "aws:SourceArn": "arn:aws:cloudtrail:region:myAccountID:trail/trailName" } } }, { "Sid": "AWSCloudTrailWrite20150319", "Effect": "Allow", "Principal": {"Service": "cloudtrail.amazonaws.com"}, "Action": "s3:PutObject", "Resource": "arn:aws:s3:::DOC-EXAMPLE-BUCKET/[optionalPrefix]/AWSLogs/myAccountID/*", "Condition": {"StringEquals": { "s3:x-amz-acl": "bucket-owner-full-control", "aws:SourceArn": "arn:aws:cloudtrail:region:myAccountID:trail/trailName" } } } ] }

變更現有儲存貯體的前綴

如果您嘗試為從追蹤接收日誌的 S3 儲存貯體,新增、修改或移除日誌檔案前綴,您可能會看到下列錯誤:There is a problem with the bucket policy (儲存貯體政策發生問題)。前綴不正確的儲存貯體政策可能會使您的追蹤無法將日誌交付到儲存貯體。若要解決此問題,請使用 Amazon S3 主控台更新儲存貯體政策中的前置詞,然後使用 CloudTrail主控台為追蹤中的儲存貯體指定相同的前置詞。

更新 Amazon S3 儲存貯體的日誌檔案前綴
  1. 在開啟 Amazon S3 主控台https://console.aws.amazon.com/s3/

  2. 選擇您要修改字首的儲存貯體,然後選擇 Permissions (許可)。

  3. 選擇編輯

  4. 在值區政策中的s3:PutObject動作下,編輯要新增、修改或移除記錄檔的Resource項目 prefix/ 根據需要。

    "Action": "s3:PutObject", "Resource": "arn:aws:s3:::DOC-EXAMPLE-BUCKET/prefix/AWSLogs/myAccountID/*",
  5. 選擇儲存

  6. 在開啟 CloudTrail 主控台https://console.aws.amazon.com/cloudtrail/

  7. 選擇您的追蹤,然後針對 Storage location (儲存位置),按一下鉛筆圖示以編輯您的儲存貯體設定。

  8. 針對 S3 bucket (S3 儲存貯體),選擇您要變更前綴的儲存貯體。

  9. 針對 Log file prefix (日誌檔案前綴),更新前綴以符合您在儲存貯體政策中輸入的前綴。

  10. 選擇儲存

其他資源

如需 S3 儲存貯體和政策的詳細資訊,請參閱 Amazon Simple Storage Service 使用者指南中的使用儲存貯體政策