community.aws.config_rule 模块 – 管理 AWS Config 规则资源

注意

此模块是 community.aws 集合 (版本 9.0.0) 的一部分。

如果您使用的是 ansible 包,则您可能已经安装了此集合。它不包含在 ansible-core 中。要检查是否已安装,请运行 ansible-galaxy collection list

要安装它,请使用:ansible-galaxy collection install community.aws。您需要其他要求才能使用此模块,有关详细信息,请参阅 要求

要在 playbook 中使用它,请指定:community.aws.config_rule

community.aws 1.0.0 中的新增功能

概要

  • 模块管理 AWS Config 规则。

  • 在 5.0.0 版本之前,此模块称为 community.aws.aws_config_rule。用法没有改变。

别名:aws_config_rule

要求

执行此模块的主机需要以下要求。

  • python >= 3.6

  • boto3 >= 1.28.0

  • botocore >= 1.31.0

参数

参数

注释

access_key

别名:aws_access_key_id, aws_access_key, ec2_access_key

字符串

AWS 访问密钥 ID。

有关访问令牌的更多信息,请参见 AWS 文档 https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html#access-keys-and-secret-access-keys

也可以使用 AWS_ACCESS_KEY_IDAWS_ACCESS_KEYEC2_ACCESS_KEY 环境变量,优先级依次递减。

aws_access_keyprofile 选项是互斥的。

为了与 AWS botocore SDK 保持一致,在 5.1.0 版本中添加了 aws_access_key_id 别名。

ec2_access_key 别名已被弃用,将在 2024-12-01 之后的一个版本中移除。

EC2_ACCESS_KEY 环境变量的支持已被弃用,将在 2024-12-01 之后的一个版本中移除。

aws_ca_bundle

路径

验证 SSL 证书时使用的 CA 证书包的位置。

也可以使用 AWS_CA_BUNDLE 环境变量。

aws_config

字典

用于修改 botocore 配置的字典。

参数可在 AWS 文档中找到 https://botocore.amazonaws.com/v1/documentation/api/latest/reference/config.html#botocore.config.Config

debug_botocore_endpoint_logs

布尔值

使用 botocore.endpoint 日志记录器来解析在任务期间执行的唯一(而不是总计)"resource:action" API 调用,并将集合输出到任务结果中的 resource_actions 密钥。使用 aws_resource_action 回调将输出到 playbook 期间执行的总列表。

也可以使用 ANSIBLE_DEBUG_BOTOCORE_LOGS 环境变量。

选项

  • false ← (默认)

  • true

description

字符串

您为 AWS Config 规则提供的描述。

endpoint_url

别名:ec2_url, aws_endpoint_url, s3_url

字符串

连接到非默认 AWS 端点的 URL。虽然这可以用于连接到其他与 AWS 兼容的服务,但 amazon.aws 和 community.aws 集合仅针对 AWS 进行了测试。

也可以使用 AWS_URLEC2_URL 环境变量,优先级依次递减。

ec2_urls3_url 别名已被弃用,将在 2024-12-01 之后的一个版本中移除。

EC2_URL 环境变量的支持已被弃用,将在 2024-12-01 之后的一个版本中移除。

execution_frequency

字符串

AWS Config 为规则运行评估的最大频率。

选项

  • "One_Hour"

  • "Three_Hours"

  • "Six_Hours"

  • "Twelve_Hours"

  • "TwentyFour_Hours"

input_parameters

字符串

传递给 AWS Config 规则 Lambda 函数的 JSON 格式字符串。

name

字符串 / 必需

AWS Config 资源的名称。

profile

别名:aws_profile

字符串

用于身份验证的命名 AWS 配置文件。

有关命名配置文件的更多信息,请参见 AWS 文档 https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-profiles.html

也可以使用 AWS_PROFILE 环境变量。

profile 选项与 aws_access_keyaws_secret_keysecurity_token 选项是互斥的。

区域

别名:aws_region, ec2_region

字符串

要使用的 AWS 区域。

对于 IAM、Route53 和 CloudFront 等全局服务,将忽略区域

也可以使用AWS_REGIONEC2_REGION环境变量。

更多信息,请参见 Amazon AWS 文档 http://docs.aws.amazon.com/general/latest/gr/rande.html#ec2_region

别名ec2_region已弃用,将在 2024-12-01 之后的发行版中移除。

EC2_REGION环境变量的支持已弃用,将在 2024-12-01 之后的发行版中移除。

范围

字典

定义哪些资源可以触发规则的评估。

合规性 ID

字符串

您只想触发规则评估的唯一 AWS 资源的 ID。如果您指定资源 ID,则必须为合规性类型指定一种资源类型。

合规性类型

字符串

您只想触发规则评估的那些 AWS 资源的资源类型。如果您还为合规性 ID指定了资源 ID,则只能指定一种类型。

标签键

字符串

应用于您只想触发规则评估的那些 AWS 资源的标签键。

标签值

字符串

应用于您只想触发规则评估的那些 AWS 资源的标签值。如果您为标签值指定了值,则还必须为标签键指定值。

密钥

别名:aws_secret_access_key, aws_secret_key, ec2_secret_key

字符串

AWS 密钥。

有关访问令牌的更多信息,请参见 AWS 文档 https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html#access-keys-and-secret-access-keys

也可以使用AWS_SECRET_ACCESS_KEYAWS_SECRET_KEYEC2_SECRET_KEY环境变量(优先级递减)。

密钥配置文件选项是互斥的。

别名aws_secret_access_key在 5.1.0 版本中添加,以与 AWS botocore SDK 保持一致。

别名ec2_secret_key已弃用,将在 2024-12-01 之后的发行版中移除。

EC2_SECRET_KEY环境变量的支持已弃用,将在 2024-12-01 之后的发行版中移除。

会话令牌

别名:aws_session_token, security_token, aws_security_token, access_token

字符串

用于临时凭证的 AWS STS 会话令牌。

有关访问令牌的更多信息,请参见 AWS 文档 https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html#access-keys-and-secret-access-keys

也可以使用AWS_SESSION_TOKENAWS_SECURITY_TOKENEC2_SECURITY_TOKEN环境变量(优先级递减)。

会话令牌配置文件选项是互斥的。

别名aws_session_tokensession_token在 3.2.0 版本中添加,参数名称在 6.0.0 版本中从security_token重命名为session_token

别名security_tokenaws_security_tokenaccess_token已弃用,将在 2024-12-01 之后的发行版中移除。

EC2_SECRET_KEYAWS_SECURITY_TOKEN环境变量的支持已弃用,将在 2024-12-01 之后的发行版中移除。

来源

字典 / 必需

提供规则所有者(AWS 或客户)、规则标识符以及导致函数评估您的 AWS 资源的通知。

详情

字符串

提供导致 AWS Config 评估您的 AWS 资源的事件的来源和类型。

此参数需要一个字典列表。每个字典都需要以下键值对。

EventSource 事件的来源,例如触发 AWS Config 评估您的 AWS 资源的 AWS 服务。

MessageType 触发 AWS Config 对规则运行评估的通知类型。

MaximumExecutionFrequency 您希望 AWS Config 使用周期性触发器对自定义规则运行评估的频率。

标识符

字符串

您只想触发规则评估的唯一 AWS 资源的 ID。如果您指定资源 ID,则必须为合规性类型指定一种资源类型。

所有者

字符串

您只想触发规则评估的那些 AWS 资源的资源类型。如果您还为合规性 ID指定了资源 ID,则只能指定一种类型。

状态

字符串

Config 规则是否存在。

选项

  • "present" ← (默认)

  • "absent"

验证证书

布尔值

设置为false时,将不会验证与 AWS API 通信的 SSL 证书。

强烈建议不要设置validate_certs=false,作为替代方案,请考虑设置aws_ca_bundle

选项

  • false

  • true ← (默认)

注释

注意

  • 警告:对于模块,环境变量和配置文件是从 Ansible 的“主机”上下文而不是“控制器”上下文读取的。因此,可能需要显式地将文件复制到“主机”。对于查找和连接插件,环境变量和配置文件是从 Ansible 的“控制器”上下文而不是“主机”上下文读取的。

  • Ansible 使用的 AWS SDK (boto3) 也可能从 Ansible “主机”上下文中的配置文件(通常为~/.aws/credentials)读取凭据和其他设置(例如区域)的默认值。更多信息,请参见 https://boto3.amazonaws.com/v1/documentation/api/latest/guide/credentials.html

示例

- name: Create Config Rule for AWS Config
  community.aws.config_rule:
    name: test_config_rule
    state: present
    description: 'This AWS Config rule checks for public write access on S3 buckets'
    scope:
      compliance_types:
        - 'AWS::S3::Bucket'
    source:
      owner: AWS
      identifier: 'S3_BUCKET_PUBLIC_WRITE_PROHIBITED'

作者

  • Aaron Smith (@slapula)