

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

# `AWSSupport-EnableVPCFlowLogs`
<a name="automation-aws-enable-vpc-flowlogs"></a>

 **Description** 

 `AWSSupport-EnableVPCFlowLogs ` Runbook 會為 中的子網路、網路介面和 VPCs 建立 Amazon Virtual Private Cloud (Amazon VPC) 流程日誌 AWS 帳戶。如果您為子網路或 VPC 建立流程日誌，則會監控該子網路或 Amazon VPC 中的每個彈性網路界面。流程日誌資料會發佈至 Amazon CloudWatch Logs 日誌群組或您指定的 Amazon Simple Storage Service (Amazon S3) 儲存貯體。如需流程日誌的詳細資訊，請參閱《*Amazon* [VPC 使用者指南》中的 VPC 流程日誌](https://docs.aws.amazon.com/vpc/latest/userguide/flow-logs.html)。

**重要**  
 當您將流程記錄發佈到或發佈到 CloudWatch Logs 或 Amazon S3 時，會套用付費日誌的資料擷取和存檔費用。如需詳細資訊，請參閱[流程日誌定價](https://docs.aws.amazon.com/vpc/latest/userguide/flow-logs.html#flow-logs-pricing) 

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSSupport-EnableVPCFlowLogs) 

**注意**  
選取 `s3`做為日誌目的地時，請確定儲存貯體政策允許日誌交付服務存取儲存貯體。如需詳細資訊，請參閱[流程日誌的 Amazon S3 儲存貯體許可](https://docs.aws.amazon.com/vpc/latest/userguide/flow-logs-s3.html#flow-logs-s3-permissions)

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（選用） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 之使用者的許可。
+ DeliverLogsPermissionArn

  類型：字串

   描述：（選用） 允許 Amazon Elastic Compute Cloud (Amazon EC2) 將流程日誌發佈至您帳戶中 CloudWatch Logs 日誌群組的 IAM 角色 ARN。如果您`s3`為 `LogDestinationType` 參數指定 ，請勿為此參數提供值。如需詳細資訊，請參閱《*Amazon VPC 使用者指南*》中的將[流程日誌發佈至 CloudWatch Logs](https://docs.aws.amazon.com/vpc/latest/userguide/flow-logs-cwl.html)。
+ LogDestinationARN

  類型：字串

   描述：（選用） 發佈流程日誌資料的資源 ARN。如果為 `LogDestinationType` 參數`cloud-watch-logs`指定 ，請提供您要發佈流程日誌資料的 CloudWatch Logs 日誌群組 ARN。或者，請改用 `LogGroupName`。如果為 `LogDestinationType` 參數`s3`指定 ，您必須指定要為此參數發佈流程日誌資料的 Amazon S3 儲存貯體 ARN。您也可以在儲存貯體中指定資料夾。
**重要**  
 選擇 `s3` 做為 時`LogDestinationType`，您應該確保選取的儲存貯體遵循 [Amazon S3 儲存貯體安全最佳實務](https://docs.aws.amazon.com/AmazonS3/latest/userguide/security-best-practices.html)，並遵循組織和地理區域的資料隱私權法律。
+ LogDestinationType

  類型：字串

  有效值：cloud-watch-logs \$1 s3

   描述：（必要） 決定流程日誌資料的發佈位置。如果您將 指定`LogDestinationType`為 `s3` ，請勿指定 `DeliverLogsPermissionArn`或 `LogGroupName` 。
+ LogFormat

  類型：字串

   描述：（選用） 要包含在流程日誌中的欄位，以及它們應該出現在記錄中的順序。如需可用欄位的清單，請參閱《*Amazon VPC 使用者指南*》中的[流程日誌記錄](https://docs.aws.amazon.com/vpc/latest/userguide/flow-logs.html#flow-log-records)。如果您未提供此參數的值，則會使用預設格式建立流程日誌。如果您指定此參數，則必須至少指定一個欄位。
+ LogGroupName

  類型：字串

   描述：（選用） 發佈流程日誌資料的 CloudWatch Logs 日誌群組名稱。如果您`s3`為 `LogDestinationType` 參數指定 ，請勿為此參數提供值。
+ ResourceIds

  類型：StringList

  描述：（必要） 以逗號分隔的清單，列出您要為其建立流程日誌的子網路、彈性網路介面或 VPC IDs。
+ TrafficType

  類型：字串

  有效值：接受 \$1 拒絕 \$1 ALL

  描述：（必要） 要記錄的流量類型。您可以記錄資源接受或拒絕的流量，或所有流量的日誌。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+  `ssm:StartAutomationExecution` 
+  `ssm:GetAutomationExecution` 
+  `ec2:CreateFlowLogs` 
+  `ec2:DeleteFlowLogs` 
+  `ec2:DescribeFlowLogs` 
+  `iam:AttachRolePolicy` 
+  `iam:CreateRole` 
+  `iam:CreatePolicy` 
+  `iam:DeletePolicy` 
+  `iam:DeleteRole` 
+  `iam:DeleteRolePolicy` 
+  `iam:GetPolicy` 
+  `iam:GetRole` 
+  `iam:TagRole` 
+  `iam:PassRole` 
+  `iam:PutRolePolicy` 
+  `iam:UpdateRole` 
+  `logs:CreateLogDelivery` 
+  `logs:CreateLogGroup` 
+  `logs:DeleteLogDelivery` 
+  `logs:DeleteLogGroup` 
+  `logs:DescribeLogGroups` 
+  `logs:DescribeLogStreams` 
+  `s3:GetBucketLocation` 
+  `s3:GetBucketAcl` 
+  `s3:GetBucketPublicAccessBlock` 
+  `s3:GetBucketPolicyStatus` 
+  `s3:GetBucketAcl` 
+  `s3:ListBucket` 
+  `s3:PutObject` 

範例政策

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "SSMExecutionPermissions",
            "Effect": "Allow",
            "Action": [
                "ssm:StartAutomationExecution",
                "ssm:GetAutomationExecution"
            ],
            "Resource": "*"
        },
        {
            "Sid": "EC2FlowLogsPermissions",
            "Effect": "Allow",
            "Action": [
                "ec2:CreateFlowLogs",
                "ec2:DeleteFlowLogs",
                "ec2:DescribeFlowLogs"
            ],
            "Resource": [
            "arn:aws:ec2:us-east-1:111122223333:instance/resource-id",
            "arn:aws:ec2:us-east-1:111122223333:subnet/resource-id",
            "arn:aws:ec2:us-east-1:111122223333:vpc/resource-id",
            "arn:aws:ec2:us-east-1:111122223333:transit-gateway/resource-id",
            "arn:aws:ec2:us-east-1:111122223333:transit-gateway-attachment/resource-id"
          ]
        },
        {
            "Sid": "IAMCreateRolePermissions",
            "Effect": "Allow",
            "Action": [
                "iam:AttachRolePolicy",
                "iam:CreateRole",
                "iam:CreatePolicy",
                "iam:DeletePolicy",
                "iam:DeleteRole",
                "iam:DeleteRolePolicy",
                "iam:GetPolicy",
                "iam:GetRole",
                "iam:TagRole",
                "iam:PassRole",
                "iam:PutRolePolicy",
                "iam:UpdateRole"
            ],
            "Resource": [
                "arn:aws:iam::111122223333:role/role-name",
                "arn:aws:iam::111122223333:role/AWSSupportCreateFlowLogsRole"
            ]
        },
        {
            "Sid": "CloudWatchLogsPermissions",
            "Effect": "Allow",
            "Action": [
                "logs:CreateLogDelivery",
                "logs:CreateLogGroup",
                "logs:DeleteLogDelivery",
                "logs:DeleteLogGroup",
                "logs:DescribeLogGroups",
                "logs:DescribeLogStreams"
            ],
            "Resource": [
                "arn:aws:logs:us-east-1:111122223333:log-group:log-group-name",
                "arn:aws:logs:us-east-1:111122223333:log-group:log-group-name:*"
            ]
        },
        {
            "Sid": "S3Permissions",
            "Effect": "Allow",
            "Action": [
                "s3:GetBucketLocation",
                "s3:GetBucketPublicAccessBlock",
                "s3:GetAccountPublicAccessBlock",
                "s3:GetBucketPolicyStatus",
                "s3:GetBucketAcl",
                "s3:ListBucket",
                "s3:PutObject"
            ],
            "Resource": [
                "arn:aws:s3:::amzn-s3-demo-bucket",
                "arn:aws:s3:::amzn-s3-demo-bucket/*"
            ]
        }
    ]
}
```

------

 **文件步驟** 
+  `aws:branch` - 根據為 `LogDestinationType` 參數指定的值進行分支。
+  `aws:executeScript` - 檢查目標 Amazon Simple Storage Service (Amazon S3) 是否可能授予其物件的**讀取**或**寫入**`public`存取權。
+  `aws:executeScript` - 如果未為 `LogDestinationARN` 參數指定值，且為 `LogDestinationType` 參數指定值，`cloud-watch-logs`則建立日誌群組。
+  `aws:executeScript` - 根據 Runbook 參數中指定的值建立流程日誌。