適用於 AWS Config 交付通道的 Amazon S3 儲存貯體的許可 - AWS Config

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

適用於 AWS Config 交付通道的 Amazon S3 儲存貯體的許可

重要

本頁是關於為 AWS Config 交付通道設定 Amazon S3 儲存貯體的相關資訊。此頁面與 AWS Config 組態記錄程式可記錄的AWS::S3::Bucket資源類型無關。如需有關 AWS Config 傳遞管道的詳細資訊,請參閱管理傳遞管道

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

如果自動為您 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 角色,但若儲存貯體的存取政策並未將 WRITE 存取權授予 IAM 角色,則此嘗試便會失敗。在這種情況下,再次 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 以檢查儲存貯體是否存在並取得儲存貯體區域。如果在執行位置檢查時未提供尋找值區的權限,您會在 AWS CloudTrail 記錄中看到AccessDenied錯誤。不過,如果您並未提供儲存貯體位置許可,日誌仍會成功傳遞至您的 Amazon S3 儲存貯體。

注意

若要允許 Amazon S3 HeadBucket API 的許可,請提供可以 Sid AWSConfigBucketExistenceCheck 身分執行 s3:ListBucket 動作的許可,如下文步驟 6 所述。

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

AWS Config 服務連結角色沒有將物件放入 Amazon S3 儲存貯體的權限。因此,如果您 AWS Config 使用服務連結角色進行設定,則 AWS Config 會改為傳送組態項目做為 AWS Config 服務主體。您需要將下面步驟 6 中提到的存取政策附加到您自己帳戶或其他帳戶中的 Amazon S3 儲存貯體,以授予對 Amazon S3 儲 AWS Config 存貯體的存取權。

授予對 Amazon S3 儲 AWS Config 存貯體的存取權

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

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

  2. 前往 https://console.aws.amazon.com/s3/ 開啟的 Amazon Simple Storage Service (Amazon 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:::targetBucketName", "Condition": { "StringEquals": { "AWS:SourceAccount": "sourceAccountID" } } }, { "Sid": "AWSConfigBucketExistenceCheck", "Effect": "Allow", "Principal": { "Service": "config.amazonaws.com" }, "Action": "s3:ListBucket", "Resource": "arn:aws:s3:::targetBucketName", "Condition": { "StringEquals": { "AWS:SourceAccount": "sourceAccountID" } } }, { "Sid": "AWSConfigBucketDelivery", "Effect": "Allow", "Principal": { "Service": "config.amazonaws.com" }, "Action": "s3:PutObject", "Resource": "arn:aws:s3:::targetBucketName/[optional] prefix/AWSLogs/sourceAccountID/Config/*", "Condition": { "StringEquals": { "s3:x-amz-acl": "bucket-owner-full-control", "AWS:SourceAccount": "sourceAccountID" } } } ] }
    注意

    將權限授予 IAM 角色而非 AWS Config 服務主體名稱 (SPN) 時,請確保您的 IAM 角色具有跨帳戶儲存貯體的PutObjectACL權限,以避免權限不足錯誤。請參閱《 適用於 S3 儲存貯體的 IAM 角色政策》一文中的 IAM 角色政策範例。

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

    • targetBucketName— AWS Config 將交付組態項目的 Amazon S3 儲存貯體的名稱。

    • [選用] 字首 - Amazon S3 物件金鑰的選用新增項目,有助於在儲存貯體中建立類似資料夾的組織。

    • 來源帳號 ID — AWS Config 將會將組態項目傳送至目標儲存貯體的帳戶識別碼。

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

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

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