

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

# AWS Config 交付管道的 Amazon S3 儲存貯體許可
<a name="s3-bucket-policy"></a>

**重要**  
此頁面是關於設定 AWS Config 交付管道的 Amazon S3 儲存貯體。此頁面與 AWS Config 組態記錄器可以記錄`AWS::S3::Bucket`的資源類型無關。

Amazon S3 儲存貯體和物件預設為私有。只有建立儲存貯 AWS 帳戶 體的 （資源擁有者） 具有存取許可。資源擁有者可以透過建立存取政策，將存取權授予其他資源和使用者。

當 AWS Config 自動為您建立 S3 儲存貯體時，它會新增必要的許可。不過，如果您指定現有的 S3 儲存貯體，則必須手動新增這些許可。

**Topics**
+ [使用 IAM 角色時](#required-permissions-in-another-account)
+ [使用服務連結角色時](#required-permissions-using-servicelinkedrole)
+ [授予 AWS Config 存取權](#granting-access-in-another-account)
+ [跨帳戶交付](#required-permissions-cross-account)

## 使用 IAM 角色時的 Amazon S3 儲存貯體必要許可
<a name="required-permissions-in-another-account"></a>

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](https://docs.aws.amazon.com/AmazonS3/latest/API/API_RESTBucketHEAD.html) API，以確認 S3 儲存貯體是否存在及其位置。如果您沒有確認的必要許可 AWS Config ，您會在 AWS CloudTrail 日誌中看到`AccessDenied`錯誤。不過，即使 AWS Config 沒有確認 S3 儲存貯體是否存在及其位置所需的許可， 仍然 AWS Config 可以交付組態歷史記錄和快照。

**最低許可**  
Amazon S3 `HeadBucket` API 需要 `s3:ListBucket`動作。

## 使用服務連結角色時的 Amazon S3 儲存貯體必要許可
<a name="required-permissions-using-servicelinkedrole"></a>

 AWS Config 服務連結角色沒有將物件放入 Amazon S3 儲存貯體的許可。如果您 AWS Config 使用服務連結角色設定 ， AWS Config 將使用`config.amazonaws.com`服務主體來傳遞組態歷史記錄和快照。您帳戶或跨帳戶目的地中的 S3 儲存貯體政策必須包含 AWS Config 服務主體寫入物件的許可。

## 授予 Amazon S3 儲存貯體的 AWS Config 存取權
<a name="granting-access-in-another-account"></a>

完成下列步驟，讓 AWS Config 將組態歷史記錄和快照交付至 Amazon S3 儲存貯體。

1.  AWS 管理主控台 使用具有 S3 儲存貯體的帳戶登入 。

1. 開啟位於 [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/) 的 Amazon S3 主控台。

1. 選取 AWS Config 您要用來交付組態項目的儲存貯體，然後選擇**屬性**。

1. 選擇**許可**。

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

1. 將下列政策複製到 **Bucket Policy Editor (儲存貯體政策編輯器)** 視窗：
**安全最佳實務**  
我們強烈建議您使用 `AWS:SourceAccount`條件限制儲存貯體政策中的存取。這可確保 AWS Config 僅代表預期的使用者授予存取權。

------
#### [ JSON ]

****  

   ```
   {
     "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"
           }
         }
       }
     ]
   }
   ```

------

1. 取代儲存貯體政策中的下列數值：
   + *amzn-s3-demo-bucket* – AWS Config 將交付組態歷史記錄和快照的 Amazon S3 儲存貯體名稱。
   + *[選用] 字首* - Amazon S3 物件金鑰的選用新增項目，有助於在儲存貯體中建立類似資料夾的組織。
   + *sourceAccountID* – AWS Config 將交付組態歷史記錄和快照的帳戶 ID。

1. 選擇 **Save (儲存)** 然後 **Close (關閉)**。

`AWS:SourceAccount` 條件會將 AWS Config 操作限制為指定的操作 AWS 帳戶。對於交付至單一 S3 儲存貯體的組織內的多帳戶組態，請使用具有 AWS Organizations 條件索引鍵的 IAM 角色，而非服務連結角色。例如 `AWS:PrincipalOrgID`。如需詳細資訊，請參閱*AWS Organizations 《 使用者指南*》中的[管理組織的存取許可](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_permissions_overview.html)。

`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 儲存貯體的必要許可
<a name="required-permissions-cross-account"></a>

當 AWS Config 設定為將組態歷史記錄和快照交付至不同帳戶中的 Amazon S3 儲存貯體 （跨帳戶設定），其中為交付通道指定的組態記錄器和 S3 儲存貯體不同時 AWS 帳戶，需要下列許可：
+ 您指派給組態記錄器的 IAM 角色需要明確許可才能執行`s3:ListBucket`操作。這是因為 使用此 IAM 角色 AWS Config 呼叫 Amazon S3 [HeadBucket](https://docs.aws.amazon.com/AmazonS3/latest/API/API_RESTBucketHEAD.html) API 來判斷儲存貯體位置。
+ S3 儲存貯體政策必須包含指派給組態記錄器之 IAM 角色的許可。

以下是儲存貯體政策組態的範例：

```
{
      "Sid": "AWSConfigBucketExistenceCheck",
      "Effect": "Allow",
      "Principal": {
        "AWS": "IAM Role-Arn assigned to the configuration recorder"
      },
      "Action": "s3:ListBucket",
      "Resource": "arn:aws:s3:::amzn-s3-demo-bucket",
}
```