本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
重要
此頁面是關於設定 AWS Config 交付管道的 Amazon S3 儲存貯體。此頁面與 AWS Config 組態記錄器可以記錄AWS::S3::Bucket
的資源類型無關。
Amazon S3 儲存貯體和物件預設為私有。只有建立儲存貯 AWS 帳戶 體的 (資源擁有者) 具有存取許可。資源擁有者可以透過建立存取政策,將存取權授予其他資源和使用者。
當 AWS Config 自動為您建立 S3 儲存貯體時,它會新增必要的許可。不過,如果您指定現有的 S3 儲存貯體,則必須手動新增這些許可。
使用 IAM 角色時的 Amazon S3 儲存貯體必要許可
AWS Config 使用您指派給組態記錄器的 IAM 角色,將組態歷史記錄和快照交付至您帳戶中的 S3 儲存貯體。對於跨帳戶交付, AWS Config 第一次嘗試使用指派的 IAM 角色。如果儲存貯體政策未授予對 IAM 角色的WRITE
存取權, AWS Config 會使用 config.amazonaws.com
服務主體。儲存貯體政策必須授予 的WRITE
存取權,config.amazonaws.com
才能完成交付。成功交付後, AWS Config 會維護交付到跨帳戶 S3 儲存貯體的所有物件的所有權。
AWS Config 會使用您指派給組態記錄器的 IAM 角色呼叫 Amazon S3 HeadBucket API,以確認 S3 儲存貯體是否存在及其位置。如果您沒有確認的必要許可 AWS Config ,您會在 AWS CloudTrail 日誌中看到AccessDenied
錯誤。不過,即使 AWS Config 沒有確認 S3 儲存貯體是否存在及其位置的必要許可, 仍然 AWS Config 可以交付組態歷史記錄和快照。
最低許可
Amazon S3 HeadBucket
API 需要具有 Sid (陳述式 ID) 的 s3:ListBucket
動作AWSConfigBucketExistenceCheck
。
使用服務連結角色時的 Amazon S3 儲存貯體必要許可
AWS Config 服務連結角色沒有將物件放入 Amazon S3 儲存貯體的許可。如果您 AWS Config 使用服務連結角色設定 , AWS Config 將使用config.amazonaws.com
服務主體來傳遞組態歷史記錄和快照。您帳戶或跨帳戶目的地中的 S3 儲存貯體政策必須包含 AWS Config 服務主體寫入物件的許可。
授予對 Amazon S3 儲存貯體的 AWS Config 存取權
完成下列步驟,讓 AWS Config 將組態歷史記錄和快照交付至 Amazon S3 儲存貯體。
-
AWS Management Console 使用具有 S3 儲存貯體的帳戶登入 。
開啟位於 https://console.aws.amazon.com/s3/
的 Amazon S3 主控台。 -
選取 AWS Config 您要用來交付組態項目的儲存貯體,然後選擇屬性。
-
選擇許可。
-
選擇 Edit Bucket Policy (編輯儲存貯體政策)。
-
將下列政策複製到 Bucket Policy Editor (儲存貯體政策編輯器) 視窗:
安全最佳實務
我們強烈建議您限制儲存貯體政策中的存取,但需符合
AWS:SourceAccount
條件。這可確保僅代表預期的使用者 AWS Config 授予存取權。{ "Version": "2012-10-17", "Statement": [ { "Sid": "AWSConfigBucketPermissionsCheck", "Effect": "Allow", "Principal": { "Service": "config.amazonaws.com" }, "Action": "s3:GetBucketAcl", "Resource": "arn:aws:s3:::
amzn-s3-demo-bucket
", "Condition": { "StringEquals": { "AWS:SourceAccount": "sourceAccountID
" } } }, { "Sid": "AWSConfigBucketExistenceCheck", "Effect": "Allow", "Principal": { "Service": "config.amazonaws.com" }, "Action": "s3:ListBucket", "Resource": "arn:aws:s3:::amzn-s3-demo-bucket
", "Condition": { "StringEquals": { "AWS:SourceAccount": "sourceAccountID
" } } }, { "Sid": "AWSConfigBucketDelivery", "Effect": "Allow", "Principal": { "Service": "config.amazonaws.com" }, "Action": "s3:PutObject", "Resource": "arn:aws:s3:::amzn-s3-demo-bucket
/[optional] prefix
/AWSLogs/sourceAccountID
/Config/*", "Condition": { "StringEquals": { "s3:x-amz-acl": "bucket-owner-full-control", "AWS:SourceAccount": "sourceAccountID
" } } } ] } -
取代儲存貯體政策中的下列數值:
-
amzn-s3-demo-bucket
– Amazon S3 儲存貯體的名稱,其中 AWS Config 將交付組態歷史記錄和快照。 -
[選用] 字首
- Amazon S3 物件金鑰的選用新增項目,有助於在儲存貯體中建立類似資料夾的組織。 -
sourceAccountID
– AWS Config 將交付組態歷史記錄和快照的帳戶 ID。
-
-
選擇 Save (儲存) 然後 Close (關閉)。
AWS:SourceAccount
條件會將 AWS Config 操作限制為指定的 AWS 帳戶。對於交付至單一 S3 儲存貯體的組織內的多帳戶組態,請使用 IAM 角色搭配 AWS Organizations 條件索引鍵,而非服務連結角色。例如:AWS:PrincipalOrgID
。如需詳細資訊,請參閱《 AWS Organizations 使用者指南》中的管理組織的存取許可。
AWS:SourceArn
條件會將 AWS Config 操作限制為指定的交付管道。AWS:SourceArn
格式如下:arn:aws:config:
。sourceRegion
:123456789012
例如,若要限制 S3 儲存貯體存取 帳戶 123456789012 的美國東部 (維吉尼亞北部) 區域的交付管道,請新增下列條件:
"ArnLike": {"AWS:SourceArn": "arn:aws:config:us-east-1:123456789012:"}
交付跨帳戶時 Amazon S3 儲存貯體的必要許可
當 AWS Config 設定為將組態歷史記錄和快照交付至不同帳戶中的 Amazon S3 儲存貯體 (跨帳戶設定),其中為交付通道指定的組態記錄器和 S3 儲存貯體不同時 AWS 帳戶,需要下列許可:
您指派給組態記錄器的 IAM 角色需要明確許可才能執行
s3:ListBucket
操作。這是因為 AWS Config 會呼叫具有此 IAM 角色的 Amazon S3 HeadBucket API 來判斷儲存貯體位置。S3 儲存貯體政策必須包含 AWS Config 服務主體和指派給組態記錄器的 IAM 角色的許可。
以下是儲存貯體政策組態的範例:
{ "Sid": "AWSConfigBucketExistenceCheck", "Effect": "Allow", "Principal": { "Service": "config.amazonaws.com", "AWS": "
IAM Role-Arn assigned to the configuartion recorder
" }, "Action": "s3:ListBucket", "Resource": "arn:aws:s3:::amzn-s3-demo-bucket
", "Condition": { "StringEquals": { "AWS:SourceAccount": "sourceAccountID
" } } }