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

4 分钟阅读
0

我删除了我的 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 cannot start recording because the delivery channel was not found”(AWS Config 无法开始记录,因为未找到交付渠道)。

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

解决方法

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

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

创建 Amazon S3 存储桶

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

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

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

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

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

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

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

创建 SNS 主题

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

2.    选择创建主题

3.    对于 Name(名称),输入 SNS 主题的名称。然后选择 Create topic(创建主题)。

4.    选择创建订阅

5.    对于 Protocol(协议),选择 Email(电子邮件)。

6.    对于 Endpoint(端点),输入要与此 SNS 主题关联的电子邮件地址,然后选择 Create subscription(创建订阅)。

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

8.    您将收到消息 Subscription confirmed!(已确认订阅!)

注意:要使用您的 SNS 主题,请确保您具有所需的权限

创建 IAM 角色

1.    打开 IAM console(IAM 控制台)。

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

3.    在 Select type of trusted entity(选择受信任实体的类型)中,选择 AWS service(AWS 服务)。

4.    在 Use cases for other AWS services(其他 AWS 服务的使用案例)下,选择 Config(配置)。

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

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

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

8.    选择您在步骤 7 中创建的角色,选择 Add inline policy(添加内联策略),然后选择 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"
    }
  ]
}

创建 KMS 密钥

对由 AWS Config 传输到 Amazon S3 存储桶的对象,使用基于 AWS Key Management Service(AWS KMS)的加密是一种最佳实践。在与 AWS Config 服务相同的区域中创建 KMS 密钥。确保您拥有 KMS 密钥所需的权限

如果您选择不加密对象,请跳过这些步骤并继续执行 Create the delivery channel(创建交付渠道)部分。

1.    打开 AWS KMS 控制台

2.    从导航窗格中选择客户管理的密钥

3.    选择创建密钥

4.    对于 Key type(密钥类型),选择 Symmetric(对称)以创建对称加密 KMS 密钥。有关非对称 KMS 密钥的信息,请参阅创建非对称 KMS 密钥(控制台)

5.    对于 Key usage(密钥用法),默认情况下,Encrypt and decrypt(加密和解密)选项处于选中状态。确认此选项,然后选择 Next(下一步)。

6.    输入 KMS 密钥的别名。然后选择 Next(下一步)。注意:您的别名不能以 aws/ 开头。

7.    选择可以管理 KMS 密钥的 IAM 用户和角色。然后选择 Next(下一步)。

8.    选择可以在加密操作中使用密钥的 IAM 用户和角色。然后选择 Next(下一步)。

9.    选择 Finish(完成)以创建 KMS 密钥。

10.    从导航窗格中选择 Customer managed keys(客户管理的密钥)。然后,在 Customer managed keys(客户管理的密钥)下,选择您刚刚创建的密钥

11.    在 Key Policy(密钥策略)选项卡中,选择 Switch to policy view(切换到策略视图)。然后选择 Edit(编辑)。

12.    如果您为 AWS Config 使用自定义 IAM 角色,则复制并粘贴此策略声明作为附加密钥策略声明。然后选择 Save changes(保存更改)。

{
  "Statement": [
    {
      "Sid": "AWSConfigKMSPolicy",
      "Action": [
        "kms:Decrypt",
        "kms:GenerateDataKey"
      ],
      "Effect": "Allow",
      "Resource": "myKMSKeyARN",
      "Principal": {
        "AWS": [
          "arn:aws:iam:account_id:role/my-config-role-name"
        ]
      }
    }
  ]
}

-或者-

如果您正在为 AWS Config 使用服务关联角色(SLR),请使用以下策略声明更新 KMS 密钥策略:

{
  "Statement": [
    {
      "Sid": "AWSConfigKMSPolicy",
      "Effect": "Allow",
      "Principal": {
        "Service": "config.amazonaws.com"
      },
      "Action": [
        "kms:Decrypt",
        "kms:GenerateDataKey"
      ],
      "Resource": "myKMSKeyARN",
      "Condition": {
        "StringEquals": {
          "AWS:SourceAccount": "sourceAccountID"
        }
      }
    }
  ]
}

创建交付渠道

1.    使用文本编辑器,复制并粘贴以下示例模板,然后将其另存为 JSON 文件。您可以更改 deliveryFrequency 值以匹配您的使用案例。如果您选择不激活加密,请省略来自 JSON 文件的 s3KmsKeyArn

**重要提示:**如果您在运行 AWS 命令行界面(AWS CLI)命令时遇到错误,请确保您使用的是最新版的 AWS CLI

{
    "name": "default",
    "s3BucketName": "targetBucketName",
    "s3KeyPrefix": "Optionalprefix",
    "snsTopicARN": "arn:aws:sns:region:account_ID:targetTopicName",
    "s3KmsKeyArn": "arn:aws:kms:region:account_ID:KmsKey",
    "configSnapshotDeliveryProperties": {
        "deliveryFrequency": "Twelve_Hours"
    }
}

注意:如果 S3 存储桶策略将 PutObject 限制为特定前缀,而不是默认前缀,则必须提供 s3KeyPrefix

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 规则


相关信息

使用控制台设置 AWS Config

如何解决 AWS Config 控制台错误消息问题?

相关视频

AWS 官方
AWS 官方已更新 2 年前