

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

# 流量日誌的 Amazon S3 儲存貯體許可
<a name="flow-logs-s3-permissions"></a>

根據預設，Amazon S3 儲存貯體及其所包含的物件皆為私有。只有儲存貯體擁有者可存取儲存貯體及存放於其中的物件。但是，儲存貯體擁有者可藉由編寫存取政策，將存取權授予其他資源和使用者。

如果建立流量日誌的使用者擁有儲存貯體且具有該儲存貯體的 `PutBucketPolicy` 和 `GetBucketPolicy` 許可，我們就會自動將以下政策連接至該儲存貯體。此政策會覆寫附加至儲存貯體的任何現有政策。

否則，儲存貯體擁有者必須將此政策新增至儲存貯體、指定流量日誌建立者的 AWS 帳戶 ID，否則流量日誌會建立失敗。如需詳細資訊，請參閱《*Amazon Simple Storage Service 使用者指南*》中的「[使用儲存貯體政策](https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucket-policies.html)」。

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

****  

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

------

您為 *my-s3-arn* 指定的 ARN 取決於您是否使用與 Hive 相容的 S3 字首。
+ 預設字首

  ```
  arn:aws:s3:::bucket_name/optional_folder/AWSLogs/account_id/*
  ```
+ 與 Hive 相容的 S3 字首

  ```
  arn:aws:s3:::bucket_name/optional_folder/AWSLogs/aws-account-id=account_id/*
  ```

最佳實務是將這些許可授予日誌交付服務委託人，而不是個別 AWS 帳戶 ARNs。這也是使用 `aws:SourceAccount` 和 `aws:SourceArn` 條件金鑰來保護自己免受[混淆代理人問題](https://docs.aws.amazon.com/IAM/latest/UserGuide/confused-deputy.html)的困擾之最佳實務。來源帳戶是流量日誌的擁有者，且來源 ARN 是日誌服務的萬用字元 (\$1) ARN。

請注意，日誌交付服務會呼叫 `HeadBucket` Amazon S3 API 動作，驗證 S3 儲存貯體的存續狀態與位置。您無需授予日誌交付服務呼叫此動作的許可；即使服務無法確認 S3 儲存貯體的存續狀態與位置，仍會持續交付 VPC 流量日誌。不過，CloudTrail 日誌中會針對該次 `HeadBucket` 呼叫，記錄一項 `AccessDenied` 錯誤。