

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

# 傳送至 Amazon S3 的日誌
<a name="AWS-logs-infrastructure-V2-S3"></a>

**使用者許可**

若要啟用傳送日誌至 Amazon S3，您登入時必須具有以下許可。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "ReadWriteAccessForLogDeliveryActions",
            "Effect": "Allow",
            "Action": [
                "logs:GetDelivery",
                "logs:GetDeliverySource",
                "logs:PutDeliveryDestination",
                "logs:GetDeliveryDestinationPolicy",
                "logs:DeleteDeliverySource",
                "logs:PutDeliveryDestinationPolicy",
                "logs:CreateDelivery",
                "logs:GetDeliveryDestination",
                "logs:PutDeliverySource",
                "logs:DeleteDeliveryDestination",
                "logs:DeleteDeliveryDestinationPolicy",
                "logs:DeleteDelivery",
                "logs:UpdateDeliveryConfiguration"
            ],
            "Resource": [
            "arn:aws:logs:{{us-east-1}}:{{111122223333}}:delivery:*",
    "arn:aws:logs:{{us-east-1}}:{{111122223333}}:delivery-source:*",
    "arn:aws:logs:{{us-east-1}}:{{111122223333}}:delivery-destination:*"
            ]
        },
        {
            "Sid": "ListAccessForLogDeliveryActions",
            "Effect": "Allow",
            "Action": [
                "logs:DescribeDeliveryDestinations",
                "logs:DescribeDeliverySources",
                "logs:DescribeDeliveries",
                "logs:DescribeConfigurationTemplates"
            ],
            "Resource": "*"
        },
        {
            "Sid": "AllowUpdatesToResourcePolicyS3",
            "Effect": "Allow",
            "Action": [
                "s3:PutBucketPolicy",
                "s3:GetBucketPolicy"
            ],
            "Resource": "arn:aws:s3:::bucket-name"
        }
    ]
}
```

------

日誌送往的 S3 儲存貯體必須具有包含特定許可的資源政策。如果儲存貯體目前沒有資源政策，且設定記錄的使用者具有儲存貯體的 `S3:GetBucketPolicy` 和 `S3:PutBucketPolicy` 許可，則當您開始將日誌傳送至 Amazon S3 時， AWS 會自動建立下列政策。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Id": "AWSLogDeliveryWrite20150319",
    "Statement": [
        {
            "Sid": "AWSLogDeliveryWrite",
            "Effect": "Allow",
            "Principal": {
                "Service": "delivery.logs.amazonaws.com"
            },
            "Action": "s3:PutObject",
            "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/AWSLogs/account-ID/*",
            "Condition": {
                "StringEquals": {
                    "s3:x-amz-acl": "bucket-owner-full-control",
                    "aws:SourceAccount": [
                        "0123456789"
                    ]
                },
                "ArnLike": {
                    "aws:SourceArn": [
                        "arn:aws:logs:us-east-1:{{111122223333}}:delivery-source:*"
                    ]
                }
            }
        }
    ]
}
```

------

在先前的政策中，對於 `aws:SourceAccount`，指定要將日誌交付至此儲存貯體的帳戶 IDS 清單。對於 `aws:SourceArn`，指定產生日誌之資源的 ARN 清單，格式為 `arn:aws:logs:{{source-region}}:{{source-account-id}}:*`。

如果儲存貯體具有資源政策，但該政策未包含前一個政策中出現的陳述式，且設定記錄的使用者具有儲存貯體的 `S3:GetBucketPolicy` 和 `S3:PutBucketPolicy` 許可，則該陳述式會附加至儲存貯體的資源政策。

**注意**  
在某些情況下， AWS CloudTrail 如果 `s3:ListBucket`許可尚未授予 ，您可能會在 中看到`AccessDenied`錯誤`delivery.logs.amazonaws.com`。若要避免 CloudTrail 日誌中出現這些錯誤，您必須將 `s3:ListBucket` 許可授予 `delivery.logs.amazonaws.com`，且必須包含與先前儲存貯體政策中設定的 `s3:GetBucketAcl` 許可一起顯示的 `Condition` 參數。為簡化此操作而不用建立一個新的 `Statement`，你可以直接將 `AWSLogDeliveryAclCheck` 更新為 `“Action”: [“s3:GetBucketAcl”, “s3:ListBucket”]`

## Amazon S3 儲存貯體伺服器端加密
<a name="AWS-logs-SSE-KMS-S3-V2"></a>

您可以啟用伺服器端加密搭配 Amazon S3 S3-managed金鑰 (SSE-S3) 或使用存放在 AWS Key Management Service (SSE-KMS) 中的 AWS KMS 金鑰進行伺服器端加密，以保護 Amazon S3 儲存貯體中的資料。如需詳細資訊，請參閱[使用伺服器端加密保護資料](https://docs.aws.amazon.com/AmazonS3/latest/userguide/serv-side-encryption.html)。

如果您選擇 SSE-S3，則不需要其他組態。Amazon S3 會處理加密金鑰。

**警告**  
如果您選擇 SSE-KMS，您必須使用客戶受管金鑰，因為此案例不支援使用 AWS 受管金鑰。如果您使用 AWS 受管金鑰設定加密，日誌將以無法讀取的格式交付。

當您使用客戶受管 AWS KMS 金鑰時，您可以在啟用儲存貯體加密時指定客戶受管金鑰的 Amazon Resource Name (ARN)。您必須將以下內容新增至客戶受管金鑰的金鑰政策 (而不是 S3 儲存貯體的儲存貯體政策)，以便日誌傳遞帳戶可以寫入您的 S3 儲存貯體。

如果您選擇 SSE-KMS，則必須使用客戶受管金鑰，因為此情況不支援使用 AWS 受管金鑰。當您使用客戶受管 AWS KMS 金鑰時，您可以在啟用儲存貯體加密時指定客戶受管金鑰的 Amazon Resource Name (ARN)。您必須將以下內容新增至客戶受管金鑰的金鑰政策 (而不是 S3 儲存貯體的儲存貯體政策)，以便日誌傳遞帳戶可以寫入您的 S3 儲存貯體。

```
{
    "Sid": "Allow Logs Delivery to use the key", 
    "Effect": "Allow", 
    "Principal": {
        "Service": [ "delivery.logs.amazonaws.com" ] 
    }, 
    "Action": [ 
        "kms:Encrypt",
        "kms:Decrypt",
        "kms:ReEncrypt*",
        "kms:GenerateDataKey*",
        "kms:DescribeKey"
    ],
    "Resource": "*",
    "Condition": {
        "StringEquals": {
            "aws:SourceAccount": ["{{0123456789}}"]
        },
        "ArnLike": {
            "aws:SourceArn": ["arn:aws:logs:{{us-east-1}}:{{0123456789}}:delivery-source:*"]
        }
        }
}
```

對於 `aws:SourceAccount`，指定要將日誌交付至此儲存貯體的帳戶 IDS 清單。對於 `aws:SourceArn`，指定產生日誌之資源的 ARN 清單，格式為 `arn:aws:logs:{{source-region}}:{{source-account-id}}:*`。