如何重新创建 AWS Config 交付渠道?

上次更新时间:2020 年 6 月 24 日

我删除了 AWS Config 交付渠道 — 如何重新创建它?

简短描述

使用 AWS Config 控制台设置 AWS Config 时,设置流程会指导您配置 AWS 资源以将通知发送到交付渠道。AWS Config 设置包括配置 Amazon Simple Storage Service (Amazon S3) 存储桶、Amazon Simple Notification Service (Amazon SNS) 主题、AWS Identity and Access Management (IAM) 角色以及要记录的资源类型。

如果您使用 AWS 命令行界面 (AWS CLI) 命令 delete-delivery-channel 删除 AWS Config 交付渠道,则配置记录器将关闭。尝试打开配置记录器将返回错误“AWS Config 无法开始记录,因为未找到交付渠道”。

注意:您无法使用 AWS Config 控制台重新创建交付渠道。

解决方法

按照以下说明手动重新创建 AWS Config 交付渠道并打开配置记录器。

注意:如果您未删除与已删除的 AWS Config 交付渠道关联的 Amazon S3 存储桶、S3 主题和 IAM 角色,则可以跳过这些步骤。

创建 Amazon S3 存储桶

1.    在与 AWS Config 服务相同的区域中打开 Amazon S3 控制台,然后选择创建存储桶

2.    在存储桶名称中,为 S3 存储桶输入名称,然后选择下一步

3.    依次选择下一步下一步,然后选择创建存储桶

4.    在 S3 存储桶中,选择您刚才在步骤 3 中创建的 S3 存储桶。

5.    选择权限,然后选择存储桶策略

6.    复制并粘贴以下示例存储桶策略,然后选择保存

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "AWSConfigBucketPermissionsCheck",
      "Effect": "Allow",
      "Principal": {
        "Service": [
         "config.amazonaws.com"
        ]
      },
      "Action": "s3:GetBucketAcl",
      "Resource": "arn:aws:s3:::targetBucketName"
    },
    {
      "Sid": "AWSConfigBucketExistenceCheck",
      "Effect": "Allow",
      "Principal": {
        "Service": [
          "config.amazonaws.com"
        ]
      },
      "Action": "s3:ListBucket",
      "Resource": "arn:aws:s3:::targetBucketName"
    },
    {
      "Sid": " AWSConfigBucketDelivery",
      "Effect": "Allow",
      "Principal": {
        "Service": [
         "config.amazonaws.com"    
        ]
      },
      "Action": "s3:PutObject",
      "Resource": "arn:aws:s3:::targetBucketName/[optional] prefix/AWSLogs/sourceAccountID-WithoutHyphens/Config/*",
      "Condition": { 
        "StringEquals": { 
          "s3:x-amz-acl": "bucket-owner-full-control" 
        }
      }
    }
  ]
}  

创建 SNS 主题

1.    在与 AWS Config 服务相同的区域中打开 Amazon SNS 控制台,然后选择主题

2.    选择创建主题

3.    在名称中,为 SNS 主题输入名称,然后选择创建主题

4.    选择创建订阅

5.    在协议中,选择电子邮件

6.    在终端节点中,输入要与此 SNS 主题关联的电子邮件地址,然后选择创建订阅

7.    检查用于确认订阅的电子邮件,然后选择确认订阅

8.    您将收到消息“已确认订阅!

创建 IAM 角色

1.    在与 AWS Config 服务相同的区域中打开 IAM 控制台

2.    选择角色,然后选择创建角色

3.    在选择受信任实体的类型中,选择 AWS 服务

4.    在 Lambda 中,选择 Config

5.    在选择使用案例中,选择 Config - 可自定义,然后选择下一步: 权限

6.    选择下一步: 标签,然后选择下一步: 检查

7.    在角色名称中,输入名称,然后选择创建角色

8.    选择您在步骤 7 中创建的角色,选择添加内联策略,然后选择 JSON 选项卡。

9.    复制并粘贴以下示例策略:

{
	  "Version": "2012-10-17",
	  "Statement": [
	    {
	      "Effect": "Allow",
	      "Action": [
	        "s3:PutObject",
                "s3:PutObjectAcl" 
	      ],
	      "Resource": [
	        "arn:aws:s3:::arn:aws:s3:::targetBucketName/[optional] prefix/AWSLogs/sourceAccountID-WithoutHyphens/*"
	      ],
	      "Condition": {
	        "StringLike": {
	          "s3:x-amz-acl": "bucket-owner-full-control"
	        }
	      }
	    },
	    {
	      "Effect": "Allow",
	      "Action": [
	        "s3:GetBucketAcl"
	      ],
	      "Resource": "arn:aws:s3:::targetBucketName"
	    },
	    {
	      "Effect": "Allow",
	      "Action": "sns:Publish",
	      "Resource": "arn:aws:sns:region:account_number:targetTopicName"
	    }
	  ]
	}

创建交付渠道

1.    使用您喜欢的文本编辑器,复制并粘贴以下示例模板,然后将其另存为 JSON 文件。

重要提示:在开始之前,请确保已安装并且已配置 AWS CLI。

注意:您可以更改 deliveryFrequency 值以匹配您的使用案例。

    {
	  "name": "default",
	  "s3BucketName": "targetBucketName",
	  "snsTopicARN": "arn:aws:sns:region:account_number:targetTopicName",
	  "configSnapshotDeliveryProperties": {
	    "deliveryFrequency": "Twelve_Hours"
	  }
	}

2.    运行以下 AWS CLI 命令:

$ aws configservice put-delivery-channel --delivery-channel file://deliveryChannel.json

3.    运行以下 AWS CLI 命令以确认创建了交付渠道:

$ aws configservice describe-delivery-channels

启动配置记录器

1.    打开 AWS Config 控制台

2.    在导航窗格中,选择设置

3.    在记录已关闭中,选择打开,然后选择继续

-或者-

运行以下 AWS CLI 命令:

$ aws configservice start-configuration-recorder --configuration-recorder-name configRecorderName

有关更多信息,请参阅管理配置记录器管理 AWS Config 规则