azure.azcollection.azure_rm_securitygroup 模块 – 管理 Azure 网络安全组
注意
此模块是 azure.azcollection 集合 (版本 3.1.0) 的一部分。
如果您正在使用 ansible
包,则您可能已安装此集合。它不包含在 ansible-core
中。要检查它是否已安装,请运行 ansible-galaxy collection list
。
要安装它,请使用: ansible-galaxy collection install azure.azcollection
。您需要其他要求才能使用此模块,有关详细信息,请参阅 要求。
要在 playbook 中使用它,请指定: azure.azcollection.azure_rm_securitygroup
。
azure.azcollection 0.1.0 中的新增功能
概要
创建、更新或删除网络安全组。
安全组包含允许或拒绝网络流量到子网或单个网络接口的访问控制列表 (ACL) 规则。
安全组创建时包含一组默认安全规则和一组空的规则。
通过向空规则集中添加规则来塑造流量流。
要求
执行此模块的主机需要以下要求。
python >= 2.7
执行此模块的主机必须通过 galaxy 安装 azure.azcollection 集合
集合的 requirements.txt 中列出的所有 python 包都必须通过 pip 安装在执行来自 azure.azcollection 的模块的主机上
完整的安装说明可在 https://galaxy.ansible.com/azure/azcollection 找到
参数
参数 |
注释 |
---|---|
活动目录用户名。在使用活动目录用户而不是服务主体进行身份验证时使用。 |
|
Azure AD 授权 URL。在使用用户名/密码进行身份验证且拥有自己的 ADFS 授权时使用。 |
|
选择与 Azure 服务通信时要使用的 API 配置文件。 默认值: |
|
用于控制标签字段是规范的还是只是附加到现有标签。 如果是规范的,则 tags 参数中未找到的任何标签都将从对象的元数据中删除。 选项
|
|
控制用于身份验证的凭据来源。 也可以通过 设置为 设置为 设置为 设置为 设置为 Ansible 2.6 中添加了 选项
|
|
控制 Azure 端点的证书验证行为。默认情况下,所有模块都将验证服务器证书,但在使用 HTTPS 代理或针对 Azure Stack 时,可能需要通过传递 选项
|
|
Azure 客户端 ID。在使用服务主体或托管身份 (msi) 进行身份验证时使用。 也可以通过 |
|
对于美国公有云以外的云环境,环境名称(由 Azure Python SDK 定义,例如 默认值: |
|
创建安全组时自动添加的一组默认规则。 通常情况下,不会修改默认规则。修改规则以调整进出子网或NIC的流量。 请参见下面的规则,了解规则字典的构成。 |
|
是否允许流量。 选项
|
|
规则用途的简短描述。 |
|
目标地址前缀。 CIDR或目标IP范围。 星号 还可以使用默认标签,例如 它可以接受字符串类型或字符串类型列表。 星号 默认: |
|
目标应用程序安全组列表。 可以是资源ID列表。 可以是同一资源组中名称的列表。 可以是包含resource_group和name的字典列表。 它与 |
|
流量的目标端口或端口范围。 它可以接受字符串类型或字符串类型列表。 默认: |
|
指示流量方向。 选项
|
|
规则的唯一名称。 |
|
应用规则的顺序。必须是在100到4096(含)之间的唯一整数。 |
|
可接受的流量协议。 选项
|
|
CIDR或源IP范围。 星号 还可以使用默认标签,例如 如果是入站规则,则指定网络流量的来源。 它可以接受字符串类型或字符串类型列表。 星号 默认: |
|
源应用程序安全组列表。 可以是资源ID列表。 可以是同一资源组中名称的列表。 可以是包含resource_group和name的字典列表。 它与 |
|
流量的源端口或端口范围。 它可以接受字符串类型或字符串类型列表。 默认: |
|
确定尝试身份验证时是否执行实例发现。将其设置为true将完全禁用实例发现和权限验证。此功能旨在用于无法访问元数据端点的情况,例如私有云或Azure Stack。实例发现过程需要从https://login.microsoft.com/检索权限元数据以验证权限。通过将其设置为**True**,将禁用权限验证。因此,务必确保配置的权限主机有效且值得信赖。 通过凭据文件配置文件或 选项
|
|
有效的Azure位置。默认为资源组的位置。 |
|
父参数。 |
|
父参数。 |
|
要操作的安全组的名称。 |
|
Active Directory用户密码。在使用Active Directory用户而不是服务主体进行身份验证时使用。 |
|
在~/.azure/credentials文件中找到的安全配置文件。 |
|
删除与default_rules参数中定义的规则不匹配的任何现有规则。 选项
|
|
删除与rules参数中定义的规则不匹配的任何现有规则。 选项
|
|
安全组所属的资源组的名称。 |
|
调整进出子网或NIC流量的规则集。每个规则都是一个字典。 |
|
是否允许流量。 选项
|
|
规则用途的简短描述。 |
|
目标地址前缀。 CIDR或目标IP范围。 星号 还可以使用默认标签,例如 它可以接受字符串类型或字符串类型列表。 星号 默认: |
|
目标应用程序安全组列表。 可以是资源ID列表。 可以是同一资源组中名称的列表。 可以是包含resource_group和name的字典列表。 它与 |
|
流量的目标端口或端口范围。 它可以接受字符串类型或字符串类型列表。 默认: |
|
指示流量方向。 选项
|
|
规则的唯一名称。 |
|
应用规则的顺序。必须是在100到4096(含)之间的唯一整数。 |
|
可接受的流量协议。 选项
|
|
CIDR或源IP范围。 星号 还可以使用默认标签,例如 如果是入站规则,则指定网络流量的来源。 它可以接受字符串类型或字符串类型列表。 星号 默认: |
|
源应用程序安全组列表。 可以是资源ID列表。 可以是同一资源组中名称的列表。 可以是包含resource_group和name的字典列表。 它与 |
|
流量的源端口或端口范围。 它可以接受字符串类型或字符串类型列表。 默认: |
|
Azure客户端密钥。在使用服务主体进行身份验证时使用。 |
|
断言安全组的状态。设置为 选项
|
|
您的Azure订阅ID。 |
|
要作为元数据分配给对象的字符串:字符串对的字典。 对象的元数据标签将使用任何提供的数值进行更新。 要删除标签,请将append_tags选项设置为false。 当前,Azure DNS区域和流量管理器服务也不允许在标签中使用空格。 Azure前端门户不支持使用 Azure自动化和Azure CDN仅支持资源上的15个标签。 |
|
Azure租户ID。在使用服务主体进行身份验证时使用。 |
|
在x509_certificate_path中指定的私钥的指纹。 在使用服务主体进行身份验证时使用。 如果定义了x509_certificate_path,则为必需。 |
|
用于创建PEM格式的服务主体的X509证书的路径。 证书必须附加到私钥。 在使用服务主体进行身份验证时使用。 |
注释
注意
对于使用Azure进行身份验证,您可以传递参数、设置环境变量、使用存储在~/.azure/credentials中的配置文件,或者在运行任务或剧本之前使用
az login
登录。还可以使用服务主体或Active Directory用户进行身份验证。
要通过服务主体进行身份验证,请传递subscription_id、client_id、secret和tenant,或设置环境变量AZURE_SUBSCRIPTION_ID、AZURE_CLIENT_ID、AZURE_SECRET和AZURE_TENANT。
要通过Active Directory用户进行身份验证,请传递ad_user和password,或在环境中设置AZURE_AD_USER和AZURE_PASSWORD。
或者,凭据可以存储在~/.azure/credentials中。这是一个包含[default]部分和以下键的ini文件:subscription_id、client_id、secret和tenant或subscription_id、ad_user和password。也可以添加其他配置文件。通过传递profile或在环境中设置AZURE_PROFILE来指定配置文件。
另请参阅
另请参阅
- 使用Azure CLI登录
如何使用
az login
命令进行身份验证。
示例
- name: Create a security group
azure_rm_securitygroup:
resource_group: myResourceGroup
name: mysecgroup
purge_rules: true
rules:
- name: DenySSH
protocol: Tcp
destination_port_range: 22
access: Deny
priority: 100
direction: Inbound
- name: 'AllowSSH'
protocol: Tcp
source_address_prefix:
- '174.109.158.0/24'
- '174.109.159.0/24'
destination_port_range: 22
access: Allow
priority: 101
direction: Inbound
- name: 'AllowMultiplePorts'
protocol: Tcp
source_address_prefix:
- '174.109.158.0/24'
- '174.109.159.0/24'
destination_port_range:
- 80
- 443
access: Allow
priority: 102
- name: Update rules on existing security group
azure_rm_securitygroup:
resource_group: myResourceGroup
name: mysecgroup
rules:
- name: DenySSH
protocol: Tcp
destination_port_range: 22-23
access: Deny
priority: 100
direction: Inbound
- name: AllowSSHFromHome
protocol: Tcp
source_address_prefix: '174.109.158.0/24'
destination_port_range: 22-23
access: Allow
priority: 102
direction: Inbound
tags:
testing: testing
delete: on-exit
- name: Create a securiy group with I(protocol=Icmp)
azure_rm_securitygroup:
name: mysecgroup
resource_group: myResourceGroup
rules:
- name: SSH
protocol: Tcp
destination_port_range: 22
access: Allow
priority: 105
direction: Inbound
- name: ICMP
protocol: Icmp
priority: 106
- name: Delete security group
azure_rm_securitygroup:
resource_group: myResourceGroup
name: mysecgroup
state: absent
返回值
常见的返回值已在此处记录,以下是此模块独有的字段
键 |
描述 |
---|---|
安全组的当前状态。 已返回:始终 |
|
网络安全组的默认安全规则。 已返回:始终 示例: |
|
资源ID。 已返回:始终 示例: |
|
资源位置。 已返回:始终 示例: |
|
安全组名称。 已返回:始终 示例: |
|
网络接口的引用集合。 已返回:始终 示例: |
|
网络安全组的安全规则集合。 已返回:始终 示例: |
|
子网引用的集合。 已返回:始终 示例: |
|
分配给安全组的标签。 已返回:始终 示例: |
|
资源类型。 已返回:始终 示例: |