常见问题 - Amazon Config
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

常见问题

Amazon Config 中的间接关系

什么是资源关系?

在 Amazon 中,资源是指可管理的实体,例如 Amazon Elastic Compute Cloud (Amazon EC2) 实例、Amazon CloudFormation 堆栈或 Amazon S3 存储桶。Amazon Config 是一项服务,它会在每次检测到记录的资源类型更改时,通过创建配置项 (CI) 跟踪和监控资源,或者会以您设置的记录频率进行跟踪和监控。例如,将 Amazon Config 设置为跟踪 Amazon EC2 实例时,它会在每次创建、更新或删除实例时创建配置项。Amazon Config 创建的每个配置项都有多个字段,包括 accountIdarn(Amazon 资源名称)、awsRegionconfigurationtags、和 relationships。CI 的关系字段可让 Amazon Config 显示资源之间是如何相互关联的。例如,关系可能表示 ID 为 vol-123ab45d 的 Amazon EBS 卷已附加到 ID 为 i-a1b2c3d4 且与安全组 sg-ef678hk 关联的 Amazon EC2 实例。

什么是与资源的直接关系和间接关系?

Amazon Config 从配置字段中推导出大多数资源类型的关系,这些关系称为“直接”关系。直接关系是一个资源 (A) 和另一个资源 (B) 之间的单向连接 (A→B),通常从资源 (A) 的描述 API 响应中获得。过去,对于 Amazon Config 最初支持的某些资源类型,它还会从其他资源的配置中捕获关系,从而创建双向 (B→A) 的“间接”关系。例如,Amazon EC2 实例与其安全组之间的关系是直接关系,因为安全组包含在 Amazon EC2 实例的描述 API 响应中。另一方面,安全组和 Amazon EC2 实例之间的关系是间接关系,因为描述安全组不会返回与其关联的实例的任何信息。因此,当检测到资源配置更改时,Amazon Config 不仅会为该资源创建 CI,还会为任何相关资源(包括具有间接关系的资源)生成 CI。例如,当 Amazon Config 检测到 Amazon EC2 实例中的更改时,它会为该实例创建一个 CI,并为与该实例关联的安全组创建一个 CI。

Amazon Config 支持哪些间接关系?

Amazon Config 中支持以下间接资源关系。

资源类型 与此资源类型间接相关
AWS::EC2::RouteTable AWS::EC2::Instance, AWS::EC2::NetworkInterface, AWS::EC2::Subnet, AWS::EC2::VPNGateway, AWS::EC2::VPC
AWS::EC2::EIP AWS::EC2::Instance, AWS::EC2::NetworkInterface
AWS::EC2::Instance AWS::EC2::SecurityGroup, AWS::EC2::Subnet, AWS::EC2::VPC
AWS::EC2::NetworkInterface AWS::EC2::SecurityGroup, AWS::EC2::Subnet, AWS::EC2::VPC
AWS::EC2::NetworkACL AWS::EC2::Subnet, AWS::EC2::VPC
AWS::EC2::VPNConnection AWS::EC2::VPNGateway, AWS::EC2::CustomerGateway
AWS::EC2::InternetGateway AWS::EC2::VPC
AWS::EC2::SecurityGroup AWS::EC2::VPC
AWS::EC2::Subnet AWS::EC2::VPC
AWS::EC2::VPNGateway AWS::EC2::VPC

由于直接关系和间接关系,配置项是如何创建的?

对于资源之间的直接关系 (A→B),对资源 B 的任何配置更改也将启动资源 A 的配置项 (CI)。同样,对于间接关系 (B→A),当资源 A 发生配置更改时,将为资源 B 生成一个新的 CI。例如,Amazon EC2 实例与安全组是直接关系,因此对安全组的任何配置更改都将为安全组生成一个 CI,并为 EC2 实例生成一个 CI。同样,安全组与 Amazon EC2 实例是间接关系,因此对 EC2 实例的任何配置更改都将为 Amazon EC2 实例生成一个 CI,并为安全组生成一个 CI。

由于间接关系而生成的配置项有哪些?

以下是由于间接资源关系而生成的其他配置项 (CI)。

以下资源类型的配置更改 将为以下资源类型生成 CI
AWS::EC2::RouteTable AWS::EC2::InstanceAWS::EC2::NetworkInterfaceAWS::EC2::SubnetAWS::EC2::VPNGatewayAWS::EC2::VPC
AWS::EC2::EIP AWS::EC2::Instance, AWS::EC2::NetworkInterface
AWS::EC2::Instance AWS::EC2::SecurityGroup, AWS::EC2::Subnet, AWS::EC2::VPC
AWS::EC2::NetworkInterface AWS::EC2::SecurityGroup, AWS::EC2::Subnet, AWS::EC2::VPC
AWS::EC2::NetworkACL AWS::EC2::Subnet, AWS::EC2::VPC
AWS::EC2::VPNConnection AWS::EC2::VPNGateway, AWS::EC2::CustomerGateway
AWS::EC2::InternetGateway AWS::EC2::VPC
AWS::EC2::SecurityGroup AWS::EC2::VPC
AWS::EC2::Subnet AWS::EC2::VPC
AWS::EC2::VPNGateway AWS::EC2::VPC

如何检索与间接关系相关的配置数据?

您可以在 Amazon Config 高级查询中运行结构化查询语言 (SQL) 查询,以检索与间接资源关系相关的配置数据。例如,如果您想检索与安全组相关的 Amazon EC2 实例列表,请使用以下查询:

SELECT resourceId, resourceType WHERE resourceType ='AWS::EC2::Instance' AND relationships.resourceId = 'sg-234213'