oracle.oci.oci_network_security_group_security_rule_actions (5.0.0) — module

Perform actions on a NetworkSecurityGroupSecurityRule resource in Oracle Cloud Infrastructure

| "added in version" 2.9.0 of oracle.oci"

Authors: Oracle (@oracle)

preview | supported by community

Install collection

Install with ansible-galaxy collection install oracle.oci:==5.0.0


Add to requirements.yml

  collections:
    - name: oracle.oci
      version: 5.0.0

Description

Perform actions on a NetworkSecurityGroupSecurityRule resource in Oracle Cloud Infrastructure

For I(action=add), adds one or more security rules to the specified network security group.

For I(action=remove), removes one or more security rules from the specified network security group.

For I(action=update), updates one or more security rules in the specified network security group.


Requirements

Usage examples

  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: Perform action add on network_security_group_security_rule
  oci_network_security_group_security_rule_actions:
    # required
    network_security_group_id: "ocid1.networksecuritygroup.oc1..xxxxxxEXAMPLExxxxxx"
    action: add

    # optional
    security_rules:
    - # required
      direction: EGRESS
      protocol: protocol_example

      # optional
      description: description_example
      destination: destination_example
      destination_type: CIDR_BLOCK
      icmp_options:
        # required
        type: 56

        # optional
        code: 56
      id: "ocid1.resource.oc1..xxxxxxEXAMPLExxxxxx"
      is_stateless: true
      source: source_example
      source_type: CIDR_BLOCK
      tcp_options:
        # optional
        destination_port_range:
          # required
          max: 56
          min: 56
        source_port_range:
          # required
          max: 56
          min: 56
      udp_options:
        # optional
        destination_port_range:
          # required
          max: 56
          min: 56
        source_port_range:
          # required
          max: 56
          min: 56
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: Perform action remove on network_security_group_security_rule
  oci_network_security_group_security_rule_actions:
    # required
    network_security_group_id: "ocid1.networksecuritygroup.oc1..xxxxxxEXAMPLExxxxxx"
    action: remove

    # optional
    security_rule_ids: [ "security_rule_ids_example" ]
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: Perform action update on network_security_group_security_rule
  oci_network_security_group_security_rule_actions:
    # required
    network_security_group_id: "ocid1.networksecuritygroup.oc1..xxxxxxEXAMPLExxxxxx"
    action: update

    # optional
    security_rules:
    - # required
      direction: EGRESS
      protocol: protocol_example

      # optional
      description: description_example
      destination: destination_example
      destination_type: CIDR_BLOCK
      icmp_options:
        # required
        type: 56

        # optional
        code: 56
      id: "ocid1.resource.oc1..xxxxxxEXAMPLExxxxxx"
      is_stateless: true
      source: source_example
      source_type: CIDR_BLOCK
      tcp_options:
        # optional
        destination_port_range:
          # required
          max: 56
          min: 56
        source_port_range:
          # required
          max: 56
          min: 56
      udp_options:
        # optional
        destination_port_range:
          # required
          max: 56
          min: 56
        source_port_range:
          # required
          max: 56
          min: 56

Inputs

    
action:
    choices:
    - add
    - remove
    - update
    description:
    - The action to perform on the NetworkSecurityGroupSecurityRule.
    required: true
    type: str

region:
    description:
    - The Oracle Cloud Infrastructure region to use for all OCI API requests. If not set,
      then the value of the OCI_REGION variable, if any, is used. This option is required
      if the region is not specified through a configuration file (See C(config_file_location)).
      Please refer to U(https://docs.us-phoenix-1.oraclecloud.com/Content/General/Concepts/regions.htm)
      for more information on OCI regions.
    type: str

tenancy:
    description:
    - OCID of your tenancy. If not set, then the value of the OCI_TENANCY variable, if
      any, is used. This option is required if the tenancy OCID is not specified through
      a configuration file (See C(config_file_location)). To get the tenancy OCID, please
      refer U(https://docs.us-phoenix-1.oraclecloud.com/Content/API/Concepts/apisigningkey.htm)
    type: str

api_user:
    description:
    - The OCID of the user, on whose behalf, OCI APIs are invoked. If not set, then the
      value of the OCI_USER_ID environment variable, if any, is used. This option is required
      if the user is not specified through a configuration file (See C(config_file_location)).
      To get the user's OCID, please refer U(https://docs.us-phoenix-1.oraclecloud.com/Content/API/Concepts/apisigningkey.htm).
    type: str

auth_type:
    choices:
    - api_key
    - instance_principal
    - instance_obo_user
    - resource_principal
    - security_token
    default: api_key
    description:
    - The type of authentication to use for making API requests. By default C(auth_type="api_key")
      based authentication is performed and the API key (see I(api_user_key_file)) in
      your config file will be used. If this 'auth_type' module option is not specified,
      the value of the OCI_ANSIBLE_AUTH_TYPE, if any, is used. Use C(auth_type="instance_principal")
      to use instance principal based authentication when running ansible playbooks within
      an OCI compute instance.
    type: str

cert_bundle:
    description:
    - The full path to a CA certificate bundle to be used for SSL verification. This will
      override the default CA certificate bundle. If not set, then the value of the OCI_ANSIBLE_CERT_BUNDLE
      variable, if any, is used.
    type: str

auth_purpose:
    choices:
    - service_principal
    description:
    - The auth purpose which can be used in conjunction with 'auth_type=instance_principal'.
      The default auth_purpose for instance_principal is None.
    type: str

security_rules:
    description:
    - The NSG security rules to add.
    - Applicable only for I(action=add)I(action=update).
    elements: dict
    suboptions:
      description:
        description:
        - An optional description of your choice for the rule. Avoid entering confidential
          information.
        type: str
      destination:
        description:
        - Conceptually, this is the range of IP addresses that a packet originating from
          the instance can go to.
        - 'Allowed values:'
        - ' * An IP address range in CIDR notation. For example: `192.168.1.0/24` or `2001:0db8:0123:45::/56`
          IPv6 addressing is supported for all commercial and government regions. See
          L(IPv6 Addresses,https://docs.cloud.oracle.com/iaas/Content/Network/Concepts/ipv6.htm).'
        - ' * The `cidrBlock` value for a L(Service,https://docs.cloud.oracle.com/en-us/iaas/api/#/en/iaas/latest/Service/),
          if you''re setting up a security rule for traffic destined for a particular
          `Service` through a service gateway. For example: `oci-phx-objectstorage`.'
        - ' * The L(OCID,https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm)
          of a L(NetworkSecurityGroup,https://docs.cloud.oracle.com/en-us/iaas/api/#/en/iaas/latest/NetworkSecurityGroup/)
          in the same VCN. The value can be the NSG that the rule belongs to if the rule''s
          intent is to control traffic between VNICs in the same NSG.'
        type: str
      destination_type:
        choices:
        - CIDR_BLOCK
        - SERVICE_CIDR_BLOCK
        - NETWORK_SECURITY_GROUP
        description:
        - Type of destination for the rule. Required if `direction` = `EGRESS`.
        - 'Allowed values:'
        - ' * `CIDR_BLOCK`: If the rule''s `destination` is an IP address range in CIDR
          notation.'
        - ' * `SERVICE_CIDR_BLOCK`: If the rule''s `destination` is the `cidrBlock` value
          for a L(Service,https://docs.cloud.oracle.com/en-us/iaas/api/#/en/iaas/latest/Service/)
          (the rule is for traffic destined for a particular `Service` through a service
          gateway).'
        - ' * `NETWORK_SECURITY_GROUP`: If the rule''s `destination` is the L(OCID,https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm)
          of a L(NetworkSecurityGroup,https://docs.cloud.oracle.com/en-us/iaas/api/#/en/iaas/latest/NetworkSecurityGroup/).'
        type: str
      direction:
        choices:
        - EGRESS
        - INGRESS
        description:
        - Direction of the security rule. Set to `EGRESS` for rules to allow outbound
          IP packets, or `INGRESS` for rules to allow inbound IP packets.
        required: true
        type: str
      icmp_options:
        description:
        - ''
        suboptions:
          code:
            description:
            - The ICMP code (optional).
            type: int
          type:
            description:
            - The ICMP type.
            required: true
            type: int
        type: dict
      id:
        description:
        - The Oracle-assigned ID of the security rule that you want to update. You can't
          change this value.
        - 'Example: `04ABEC`'
        type: str
      is_stateless:
        description:
        - A stateless rule allows traffic in one direction. Remember to add a corresponding
          stateless rule in the other direction if you need to support bidirectional traffic.
          For example, if egress traffic allows TCP destination port 80, there should
          be an ingress rule to allow TCP source port 80. Defaults to false, which means
          the rule is stateful and a corresponding rule is not necessary for bidirectional
          traffic.
        type: bool
      protocol:
        description:
        - The transport protocol. Specify either `all` or an IPv4 protocol number as defined
          in L(Protocol Numbers,http://www.iana.org/assignments/protocol-numbers/protocol-numbers.xhtml).
          Options are supported only for ICMP ("1"), TCP ("6"), UDP ("17"), and ICMPv6
          ("58").
        required: true
        type: str
      source:
        description:
        - Conceptually, this is the range of IP addresses that a packet coming into the
          instance can come from.
        - 'Allowed values:'
        - ' * An IP address range in CIDR notation. For example: `192.168.1.0/24` or `2001:0db8:0123:45::/56`
          IPv6 addressing is supported for all commercial and government regions. See
          L(IPv6 Addresses,https://docs.cloud.oracle.com/iaas/Content/Network/Concepts/ipv6.htm).'
        - ' * The `cidrBlock` value for a L(Service,https://docs.cloud.oracle.com/en-us/iaas/api/#/en/iaas/latest/Service/),
          if you''re setting up a security rule for traffic coming from a particular `Service`
          through a service gateway. For example: `oci-phx-objectstorage`.'
        - ' * The L(OCID,https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm)
          of a L(NetworkSecurityGroup,https://docs.cloud.oracle.com/en-us/iaas/api/#/en/iaas/latest/NetworkSecurityGroup/)
          in the same VCN. The value can be the NSG that the rule belongs to if the rule''s
          intent is to control traffic between VNICs in the same NSG.'
        type: str
      source_type:
        choices:
        - CIDR_BLOCK
        - SERVICE_CIDR_BLOCK
        - NETWORK_SECURITY_GROUP
        description:
        - Type of source for the rule. Required if `direction` = `INGRESS`.
        - ' * `CIDR_BLOCK`: If the rule''s `source` is an IP address range in CIDR notation.'
        - ' * `SERVICE_CIDR_BLOCK`: If the rule''s `source` is the `cidrBlock` value for
          a L(Service,https://docs.cloud.oracle.com/en-us/iaas/api/#/en/iaas/latest/Service/)
          (the rule is for traffic coming from a particular `Service` through a service
          gateway).'
        - ' * `NETWORK_SECURITY_GROUP`: If the rule''s `source` is the L(OCID,https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm)
          of a L(NetworkSecurityGroup,https://docs.cloud.oracle.com/en-us/iaas/api/#/en/iaas/latest/NetworkSecurityGroup/).'
        type: str
      tcp_options:
        description:
        - ''
        suboptions:
          destination_port_range:
            description:
            - ''
            suboptions:
              max:
                description:
                - The maximum port number, which must not be less than the minimum port
                  number. To specify a single port number, set both the min and max to
                  the same value.
                required: true
                type: int
              min:
                description:
                - The minimum port number, which must not be greater than the maximum
                  port number.
                required: true
                type: int
            type: dict
          source_port_range:
            description:
            - ''
            suboptions:
              max:
                description:
                - The maximum port number, which must not be less than the minimum port
                  number. To specify a single port number, set both the min and max to
                  the same value.
                required: true
                type: int
              min:
                description:
                - The minimum port number, which must not be greater than the maximum
                  port number.
                required: true
                type: int
            type: dict
        type: dict
      udp_options:
        description:
        - ''
        suboptions:
          destination_port_range:
            description:
            - ''
            suboptions:
              max:
                description:
                - The maximum port number, which must not be less than the minimum port
                  number. To specify a single port number, set both the min and max to
                  the same value.
                required: true
                type: int
              min:
                description:
                - The minimum port number, which must not be greater than the maximum
                  port number.
                required: true
                type: int
            type: dict
          source_port_range:
            description:
            - ''
            suboptions:
              max:
                description:
                - The maximum port number, which must not be less than the minimum port
                  number. To specify a single port number, set both the min and max to
                  the same value.
                required: true
                type: int
              min:
                description:
                - The minimum port number, which must not be greater than the maximum
                  port number.
                required: true
                type: int
            type: dict
        type: dict
    type: list

api_user_key_file:
    description:
    - Full path and filename of the private key (in PEM format). If not set, then the
      value of the OCI_USER_KEY_FILE variable, if any, is used. This option is required
      if the private key is not specified through a configuration file (See C(config_file_location)).
      If the key is encrypted with a pass-phrase, the C(api_user_key_pass_phrase) option
      must also be provided.
    type: str

security_rule_ids:
    description:
    - The Oracle-assigned ID of each L(SecurityRule,https://docs.cloud.oracle.com/en-us/iaas/api/#/en/iaas/latest/SecurityRule/)
      to be deleted.
    - Applicable only for I(action=remove).
    elements: str
    type: list

config_profile_name:
    description:
    - The profile to load from the config file referenced by C(config_file_location).
      If not set, then the value of the OCI_CONFIG_PROFILE environment variable, if any,
      is used. Otherwise, defaults to the "DEFAULT" profile in C(config_file_location).
    type: str

api_user_fingerprint:
    description:
    - Fingerprint for the key pair being used. If not set, then the value of the OCI_USER_FINGERPRINT
      environment variable, if any, is used. This option is required if the key fingerprint
      is not specified through a configuration file (See C(config_file_location)). To
      get the key pair's fingerprint value please refer U(https://docs.us-phoenix-1.oraclecloud.com/Content/API/Concepts/apisigningkey.htm).
    type: str

config_file_location:
    description:
    - Path to configuration file. If not set then the value of the OCI_CONFIG_FILE environment
      variable, if any, is used. Otherwise, defaults to ~/.oci/config.
    type: str

api_user_key_pass_phrase:
    description:
    - Passphrase used by the key referenced in C(api_user_key_file), if it is encrypted.
      If not set, then the value of the OCI_USER_KEY_PASS_PHRASE variable, if any, is
      used. This option is required if the key passphrase is not specified through a configuration
      file (See C(config_file_location)).
    type: str

network_security_group_id:
    aliases:
    - id
    description:
    - The L(OCID,https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm)
      of the network security group.
    required: true
    type: str

realm_specific_endpoint_template_enabled:
    description:
    - Enable/Disable realm specific endpoint template for service client. By Default,
      realm specific endpoint template is disabled. If not set, then the value of the
      OCI_REALM_SPECIFIC_SERVICE_ENDPOINT_TEMPLATE_ENABLED variable, if any, is used.
    type: bool

Outputs

network_security_group_security_rule:
  contains:
    security_rules:
      contains:
        description:
          description:
          - An optional description of your choice for the rule.
          returned: on success
          sample: description_example
          type: str
        destination:
          description:
          - Conceptually, this is the range of IP addresses that a packet originating
            from the instance can go to.
          - 'Allowed values:'
          - ' * An IP address range in CIDR notation. For example: `192.168.1.0/24`
            or `2001:0db8:0123:45::/56` IPv6 addressing is supported for all commercial
            and government regions. See L(IPv6 Addresses,https://docs.cloud.oracle.com/iaas/Content/Network/Concepts/ipv6.htm).'
          - ' * The `cidrBlock` value for a L(Service,https://docs.cloud.oracle.com/en-us/iaas/api/#/en/iaas/latest/Service/),
            if you''re setting up a security rule for traffic destined for a particular
            `Service` through a service gateway. For example: `oci-phx-objectstorage`.'
          - ' * The L(OCID,https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm)
            of a L(NetworkSecurityGroup,https://docs.cloud.oracle.com/en-us/iaas/api/#/en/iaas/latest/NetworkSecurityGroup/)
            in the same VCN. The value can be the NSG that the rule belongs to if
            the rule''s intent is to control traffic between VNICs in the same NSG.'
          returned: on success
          sample: destination_example
          type: str
        destination_type:
          description:
          - Type of destination for the rule. Required if `direction` = `EGRESS`.
          - 'Allowed values:'
          - ' * `CIDR_BLOCK`: If the rule''s `destination` is an IP address range
            in CIDR notation.'
          - ' * `SERVICE_CIDR_BLOCK`: If the rule''s `destination` is the `cidrBlock`
            value for a L(Service,https://docs.cloud.oracle.com/en-us/iaas/api/#/en/iaas/latest/Service/)
            (the rule is for traffic destined for a particular `Service` through a
            service gateway).'
          - ' * `NETWORK_SECURITY_GROUP`: If the rule''s `destination` is the L(OCID,https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm)
            of a L(NetworkSecurityGroup,https://docs.cloud.oracle.com/en-us/iaas/api/#/en/iaas/latest/NetworkSecurityGroup/).'
          returned: on success
          sample: CIDR_BLOCK
          type: str
        direction:
          description:
          - Direction of the security rule. Set to `EGRESS` for rules to allow outbound
            IP packets, or `INGRESS` for rules to allow inbound IP packets.
          returned: on success
          sample: EGRESS
          type: str
        icmp_options:
          contains:
            code:
              description:
              - The ICMP code (optional).
              returned: on success
              sample: 56
              type: int
            type:
              description:
              - The ICMP type.
              returned: on success
              sample: 56
              type: int
          description:
          - ''
          returned: on success
          type: complex
        id:
          description:
          - An Oracle-assigned identifier for the security rule. You specify this
            ID when you want to update or delete the rule.
          - 'Example: `04ABEC`'
          returned: on success
          sample: ocid1.resource.oc1..xxxxxxEXAMPLExxxxxx
          type: str
        is_stateless:
          description:
          - A stateless rule allows traffic in one direction. Remember to add a corresponding
            stateless rule in the other direction if you need to support bidirectional
            traffic. For example, if egress traffic allows TCP destination port 80,
            there should be an ingress rule to allow TCP source port 80. Defaults
            to false, which means the rule is stateful and a corresponding rule is
            not necessary for bidirectional traffic.
          returned: on success
          sample: true
          type: bool
        is_valid:
          description:
          - Whether the rule is valid. The value is `True` when the rule is first
            created. If the rule's `source` or `destination` is a network security
            group, the value changes to `False` if that network security group is
            deleted.
          returned: on success
          sample: true
          type: bool
        protocol:
          description:
          - The transport protocol. Specify either `all` or an IPv4 protocol number
            as defined in L(Protocol Numbers,http://www.iana.org/assignments/protocol-numbers/protocol-numbers.xhtml).
            Options are supported only for ICMP ("1"), TCP ("6"), UDP ("17"), and
            ICMPv6 ("58").
          returned: on success
          sample: protocol_example
          type: str
        source:
          description:
          - Conceptually, this is the range of IP addresses that a packet coming into
            the instance can come from.
          - 'Allowed values:'
          - ' * An IP address range in CIDR notation. For example: `192.168.1.0/24`
            or `2001:0db8:0123:45::/56` IPv6 addressing is supported for all commercial
            and government regions. See L(IPv6 Addresses,https://docs.cloud.oracle.com/iaas/Content/Network/Concepts/ipv6.htm).'
          - ' * The `cidrBlock` value for a L(Service,https://docs.cloud.oracle.com/en-us/iaas/api/#/en/iaas/latest/Service/),
            if you''re setting up a security rule for traffic coming from a particular
            `Service` through a service gateway. For example: `oci-phx-objectstorage`.'
          - ' * The L(OCID,https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm)
            of a L(NetworkSecurityGroup,https://docs.cloud.oracle.com/en-us/iaas/api/#/en/iaas/latest/NetworkSecurityGroup/)
            in the same VCN. The value can be the NSG that the rule belongs to if
            the rule''s intent is to control traffic between VNICs in the same NSG.'
          returned: on success
          sample: source_example
          type: str
        source_type:
          description:
          - Type of source for the rule. Required if `direction` = `INGRESS`.
          - ' * `CIDR_BLOCK`: If the rule''s `source` is an IP address range in CIDR
            notation.'
          - ' * `SERVICE_CIDR_BLOCK`: If the rule''s `source` is the `cidrBlock` value
            for a L(Service,https://docs.cloud.oracle.com/en-us/iaas/api/#/en/iaas/latest/Service/)
            (the rule is for traffic coming from a particular `Service` through a
            service gateway).'
          - ' * `NETWORK_SECURITY_GROUP`: If the rule''s `source` is the L(OCID,https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm)
            of a L(NetworkSecurityGroup,https://docs.cloud.oracle.com/en-us/iaas/api/#/en/iaas/latest/NetworkSecurityGroup/).'
          returned: on success
          sample: CIDR_BLOCK
          type: str
        tcp_options:
          contains:
            destination_port_range:
              contains:
                max:
                  description:
                  - The maximum port number, which must not be less than the minimum
                    port number. To specify a single port number, set both the min
                    and max to the same value.
                  returned: on success
                  sample: 56
                  type: int
                min:
                  description:
                  - The minimum port number, which must not be greater than the maximum
                    port number.
                  returned: on success
                  sample: 56
                  type: int
              description:
              - ''
              returned: on success
              type: complex
            source_port_range:
              contains:
                max:
                  description:
                  - The maximum port number, which must not be less than the minimum
                    port number. To specify a single port number, set both the min
                    and max to the same value.
                  returned: on success
                  sample: 56
                  type: int
                min:
                  description:
                  - The minimum port number, which must not be greater than the maximum
                    port number.
                  returned: on success
                  sample: 56
                  type: int
              description:
              - ''
              returned: on success
              type: complex
          description:
          - ''
          returned: on success
          type: complex
        time_created:
          description:
          - The date and time the security rule was created. Format defined by L(RFC3339,https://tools.ietf.org/html/rfc3339).
          returned: on success
          sample: '2013-10-20T19:20:30+01:00'
          type: str
        udp_options:
          contains:
            destination_port_range:
              contains:
                max:
                  description:
                  - The maximum port number, which must not be less than the minimum
                    port number. To specify a single port number, set both the min
                    and max to the same value.
                  returned: on success
                  sample: 56
                  type: int
                min:
                  description:
                  - The minimum port number, which must not be greater than the maximum
                    port number.
                  returned: on success
                  sample: 56
                  type: int
              description:
              - ''
              returned: on success
              type: complex
            source_port_range:
              contains:
                max:
                  description:
                  - The maximum port number, which must not be less than the minimum
                    port number. To specify a single port number, set both the min
                    and max to the same value.
                  returned: on success
                  sample: 56
                  type: int
                min:
                  description:
                  - The minimum port number, which must not be greater than the maximum
                    port number.
                  returned: on success
                  sample: 56
                  type: int
              description:
              - ''
              returned: on success
              type: complex
          description:
          - ''
          returned: on success
          type: complex
      description:
      - The NSG security rules that were added.
      returned: on success
      type: complex
  description:
  - Details of the NetworkSecurityGroupSecurityRule resource acted upon by the current
    operation
  returned: on success
  sample:
    security_rules:
    - description: description_example
      destination: destination_example
      destination_type: CIDR_BLOCK
      direction: EGRESS
      icmp_options:
        code: 56
        type: 56
      id: ocid1.resource.oc1..xxxxxxEXAMPLExxxxxx
      is_stateless: true
      is_valid: true
      protocol: protocol_example
      source: source_example
      source_type: CIDR_BLOCK
      tcp_options:
        destination_port_range:
          max: 56
          min: 56
        source_port_range:
          max: 56
          min: 56
      time_created: '2013-10-20T19:20:30+01:00'
      udp_options:
        destination_port_range:
          max: 56
          min: 56
        source_port_range:
          max: 56
          min: 56
  type: complex