Amazon S3 存儲桶的許可 AWS Config 交付通道 - AWS Config

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

Amazon S3 存儲桶的許可 AWS Config 交付通道

重要

這個頁面是關於設置 Amazon S3 存儲桶的 AWS Config 交付渠道。這個頁面不是關於AWS::S3::Bucket資源類型 AWS Config 配置記錄器可以記錄。如需有關的更多資訊 AWS Config 交付管道,請參閱管理交付管道

根據預設,所有 Amazon S3 儲存貯體和物件皆為私有。只有資源擁有者是 AWS 帳戶 創建存儲桶可以訪問該存儲桶。然而,資源擁有者可以選擇將存取許可授予其他使用者和資源。執行此作業的其中一種方式便是撰寫存取政策。

If AWS Config 自動為您建立 Amazon S3 儲存貯體 (例如,如果您使用 AWS Config 用於設定交付通道的主控台),這些許可會自動新增至 Amazon S3 儲存貯體。但是,若您指定現有的 Amazon S3 儲存貯體,您必須確認該 S3 儲存貯體具有正確的許可。

注意

物件不會繼承其儲存貯體的許可。例如,若您建立儲存貯體,並將寫入存取授予使用者,除非使用者明確授予存取權給您,否則您無法存取該使用者的物件。

使用IAM角色時 Amazon S3 儲存貯體所需的許可

當 AWS Config 將組態資訊 (歷程檔案和快照) 傳送到帳戶中的 Amazon S3 儲存貯體,並擔任您在設定時指派的IAM角色 AWS Config。 何時 AWS Config 將組態資訊傳送到另一個帳戶中的 Amazon S3 儲存貯體,它會首先嘗試使用該IAM角色,但如果儲存貯體的存取政策未授予IAM角色的WRITE存取權,則此嘗試會失敗。在這次活動中, AWS Config 再次發送信息,這次作為 AWS Config 服務主體。在傳遞成功之前,存取原則必須授與config.amazonaws.com主體名稱的WRITE存取權。 AWS Config 那麼是它交付給 S3 存儲桶的對象的所有者。您必須將下面步驟 6 中提到的存取政策附加到另一個帳戶中的 Amazon S3 儲存貯體,以授予 AWS Config 訪問 Amazon S3 存儲桶。

之前 AWS Config 可以將日誌交付到您的 Amazon S3 存儲桶 AWS Config 檢查存儲桶是否存在以及其中 AWS 區域存儲桶所在。 AWS Config 嘗試呼叫 Amazon S3 HeadBucketAPI以檢查儲存貯體是否存在並取得儲存貯體區域。如果在執行位置檢查時未提供尋找值區的權限,您會AccessDenied在 AWS CloudTrail 日誌。不過,如果您並未提供儲存貯體位置許可,日誌仍會成功傳遞至您的 Amazon S3 儲存貯體。

注意

若要允許 Amazon S3 的權限 HeadBucketAPI,請提供以 Sid 身分執行s3:ListBucket動作的權限AWSConfigBucketExistenceCheck,如下面的步驟 6 所述。

使用服務連結角色時的 Amazon S3 儲存貯體必要許可

所以此 AWS Config 服務連結角色沒有將物件放入 Amazon S3 儲存貯體的權限。所以,如果你設置 AWS Config 使用服務連結角色 AWS Config 將傳送組態項目為 AWS Config 服務主體而不是。您需要將下面步驟 6 中提到的存取政策附加到您自己帳戶中的 Amazon S3 儲存貯體或其他帳戶以授予 AWS Config 訪問 Amazon S3 存儲桶。

授予 AWS Config 訪問 Amazon S3 存儲桶

請遵循下列步驟,將存取政策新增至您自己帳戶或另一個帳戶中的 Amazon S3 儲存貯體。存取原則允許 AWS Config 將組態資訊傳送到 Amazon S3 儲存貯體。

  1. 登入到 AWS Management Console 使用具有 S3 存儲桶的帳戶。

  2. 在開啟 Amazon S3 主控台https://console.aws.amazon.com/s3/

  3. 選取您想要的儲存貯體 AWS Config 以用來傳送組態項目,然後選擇 [內容]。

  4. 選擇許可

  5. 選擇 Edit Bucket Policy (編輯儲存貯體政策)。

  6. 將下列政策複製到 Bucket Policy Editor (儲存貯體政策編輯器) 視窗:

    重要

    作為允許時的安全最佳實踐 AWS Config 存取 Amazon S3 儲存貯體,強烈建議您使用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" } } } ] }
    注意

    授予權限給您的IAM角色而不是 AWS Config 服務主體名稱 (SPN),請確定您的IAM角色具有跨帳戶值區的PutObjectACL權限,以避免權限不足錯誤。請參閱〈IAM角色政策〉的範例 IAMS3 儲存貯體的角色政策

  7. 取代儲存貯體政策中的下列數值:

    • amzn-s3-demo-bucket — Amazon S3 存儲桶的名稱 AWS Config 將會傳送組態項目。

    • [optional] prefix — Amazon S3 物件金鑰的選用新增項目,可協助在儲存貯體中建立類似資料夾的組織。

    • sourceAccountID — 該帳戶的 ID,該帳戶的 ID AWS Config 會將組態項目傳送至目標值區。

  8. 選擇 Save (儲存) 然後 Close (關閉)

您可以使用上述 Amazon S3 儲存貯體政策中的 AWS:SourceAccount 條件,限制 Config 服務主體在代表特定帳戶執行操作時,僅能與 Amazon S3 儲存貯體互動。如果您打算設置 AWS Config 在來自同一組織的許多帳戶中,要將組態項目交付到單一 Amazon S3 儲存貯體,我們建議您使用IAM角色而非服務連結角色,以便您可以使用 AWS Organizations 條件鍵,例如AWS:PrincipalOrgID。如需有關管理IAM角色存取權限的詳細資訊 AWS Config,請參閱指派給的IAM角色的權限 AWS Config。 如需管理的存取權限的詳細資訊 AWS Organizations,請參閱管理您的存取權限 AWS 組織

AWS Config 也支援限制 AWS:SourceArn Config 服務主體在代表特定執行操作時僅與 Amazon S3 儲存貯體互動的條件 AWS Config 交付渠道。使用時 AWS Config 服務主體,AWS:SourceArn屬性一律會設arn:aws:config:sourceRegion:sourceAccountID:*sourceRegion為傳送通道的區域,而且sourceAccountID是包含傳送通道之帳戶的 ID。有關更多信息 AWS Config 交付管道,請參閱管理交付管道。例如,新增下列條件以限制 Config 服務主體在代表帳戶 123456789012us-east-1 區域中的交付通道 "ArnLike": {"AWS:SourceArn": "arn:aws:config:us-east-1:123456789012:*"} 時,僅能與 Amazon S3 儲存貯體互動。