community.aws.aws_s3_bucket_info (4.3.0) — module

lists S3 buckets in AWS

| "added in version" 1.0.0 of community.aws"

Authors: Gerben Geijteman (@hyperized)

Install collection

Install with ansible-galaxy collection install community.aws:==4.3.0


Add to requirements.yml

  collections:
    - name: community.aws
      version: 4.3.0

Description

Lists S3 buckets and details about those buckets.


Requirements

Usage examples

  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
# Note: These examples do not set authentication details, see the AWS Guide for details.

# Note: Only AWS S3 is currently supported

# Lists all s3 buckets
- community.aws.aws_s3_bucket_info:
  register: result
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
# Retrieve detailed bucket information
- community.aws.aws_s3_bucket_info:
    # Show only buckets with name matching
    name_filter: your.testing
    # Choose facts to retrieve
    bucket_facts:
      # bucket_accelerate_configuration: true
      bucket_acl: true
      bucket_cors: true
      bucket_encryption: true
      # bucket_lifecycle_configuration: true
      bucket_location: true
      # bucket_logging: true
      # bucket_notification_configuration: true
      # bucket_ownership_controls: true
      # bucket_policy: true
      # bucket_policy_status: true
      # bucket_replication: true
      # bucket_request_payment: true
      # bucket_tagging: true
      # bucket_website: true
      # public_access_block: true
    transform_location: true
    register: result
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
# Print out result
- name: List buckets
  ansible.builtin.debug:
    msg: "{{ result['buckets'] }}"

Inputs

    
name:
    default: ''
    description:
    - Name of bucket to query.
    type: str
    version_added: 1.4.0
    version_added_collection: community.aws

region:
    aliases:
    - aws_region
    - ec2_region
    description:
    - The AWS region to use. If not specified then the value of the AWS_REGION or EC2_REGION
      environment variable, if any, is used. See U(http://docs.aws.amazon.com/general/latest/gr/rande.html#ec2_region)
    type: str

ec2_url:
    aliases:
    - aws_endpoint_url
    - endpoint_url
    description:
    - Url to use to connect to EC2 or your Eucalyptus cloud (by default the module will
      use EC2 endpoints). Ignored for modules where region is required. Must be specified
      for all other modules if region is not used. If not set then the value of the EC2_URL
      environment variable, if any, is used.
    type: str

profile:
    aliases:
    - aws_profile
    description:
    - Uses a boto profile. Only works with boto >= 2.24.0.
    - Using I(profile) will override I(aws_access_key), I(aws_secret_key) and I(security_token)
      and support for passing them at the same time as I(profile) has been deprecated.
    - I(aws_access_key), I(aws_secret_key) and I(security_token) will be made mutually
      exclusive with I(profile) after 2022-06-01.
    type: str

aws_config:
    description:
    - A dictionary to modify the botocore configuration.
    - Parameters can be found at U(https://botocore.amazonaws.com/v1/documentation/api/latest/reference/config.html#botocore.config.Config).
    - Only the 'user_agent' key is used for boto modules. See U(http://boto.cloudhackers.com/en/latest/boto_config_tut.html#boto)
      for more boto configuration.
    type: dict

name_filter:
    default: ''
    description:
    - Limits buckets to only buckets who's name contain the string in I(name_filter).
    type: str
    version_added: 1.4.0
    version_added_collection: community.aws

bucket_facts:
    description:
    - Retrieve requested S3 bucket detailed information
    - Each bucket_X option executes one API call, hence many options being set to C(true)
      will cause slower module execution.
    - You can limit buckets by using the I(name) or I(name_filter) option.
    suboptions:
      bucket_accelerate_configuration:
        default: false
        description: Retrive S3 accelerate configuration.
        type: bool
      bucket_acl:
        default: false
        description: Retrive S3 bucket ACLs.
        type: bool
      bucket_cors:
        default: false
        description: Retrive S3 bucket CORS configuration.
        type: bool
      bucket_encryption:
        default: false
        description: Retrive S3 bucket encryption.
        type: bool
      bucket_lifecycle_configuration:
        default: false
        description: Retrive S3 bucket lifecycle configuration.
        type: bool
      bucket_location:
        default: false
        description: Retrive S3 bucket location.
        type: bool
      bucket_logging:
        default: false
        description: Retrive S3 bucket logging.
        type: bool
      bucket_notification_configuration:
        default: false
        description: Retrive S3 bucket notification configuration.
        type: bool
      bucket_ownership_controls:
        default: false
        description:
        - Retrive S3 ownership controls.
        type: bool
      bucket_policy:
        default: false
        description: Retrive S3 bucket policy.
        type: bool
      bucket_policy_status:
        default: false
        description: Retrive S3 bucket policy status.
        type: bool
      bucket_replication:
        default: false
        description: Retrive S3 bucket replication.
        type: bool
      bucket_request_payment:
        default: false
        description: Retrive S3 bucket request payment.
        type: bool
      bucket_tagging:
        default: false
        description: Retrive S3 bucket tagging.
        type: bool
      bucket_website:
        default: false
        description: Retrive S3 bucket website.
        type: bool
      public_access_block:
        default: false
        description: Retrive S3 bucket public access block.
        type: bool
    type: dict
    version_added: 1.4.0
    version_added_collection: community.aws

aws_ca_bundle:
    description:
    - The location of a CA Bundle to use when validating SSL certificates.
    - Only used for boto3 based modules.
    - 'Note: The CA Bundle is read ''module'' side and may need to be explicitly copied
      from the controller if not run locally.'
    type: path

aws_access_key:
    aliases:
    - ec2_access_key
    - access_key
    description:
    - AWS access key. If not set then the value of the AWS_ACCESS_KEY_ID, AWS_ACCESS_KEY
      or EC2_ACCESS_KEY environment variable is used.
    - If I(profile) is set this parameter is ignored.
    - Passing the I(aws_access_key) and I(profile) options at the same time has been deprecated
      and the options will be made mutually exclusive after 2022-06-01.
    type: str

aws_secret_key:
    aliases:
    - ec2_secret_key
    - secret_key
    description:
    - AWS secret key. If not set then the value of the AWS_SECRET_ACCESS_KEY, AWS_SECRET_KEY,
      or EC2_SECRET_KEY environment variable is used.
    - If I(profile) is set this parameter is ignored.
    - Passing the I(aws_secret_key) and I(profile) options at the same time has been deprecated
      and the options will be made mutually exclusive after 2022-06-01.
    type: str

security_token:
    aliases:
    - aws_security_token
    - access_token
    description:
    - AWS STS security token. If not set then the value of the AWS_SECURITY_TOKEN or EC2_SECURITY_TOKEN
      environment variable is used.
    - If I(profile) is set this parameter is ignored.
    - Passing the I(security_token) and I(profile) options at the same time has been deprecated
      and the options will be made mutually exclusive after 2022-06-01.
    type: str

validate_certs:
    default: true
    description:
    - When set to "no", SSL certificates will not be validated for boto versions >= 2.6.0.
    type: bool

transform_location:
    default: false
    description:
    - S3 bucket location for default us-east-1 is normally reported as C(null).
    - Setting this option to C(true) will return C(us-east-1) instead.
    - Affects only queries with I(bucket_facts=true) and I(bucket_location=true).
    type: bool
    version_added: 1.4.0
    version_added_collection: community.aws

debug_botocore_endpoint_logs:
    default: 'no'
    description:
    - Use a botocore.endpoint logger to parse the unique (rather than total) "resource:action"
      API calls made during a task, outputing the set to the resource_actions key in the
      task results. Use the aws_resource_action callback to output to total list made
      during a playbook. The ANSIBLE_DEBUG_BOTOCORE_LOGS environment variable may also
      be used.
    type: bool

Outputs

bucket_list:
  contains:
    bucket_acl:
      contains:
        Grants:
          description: List of ACL grants.
          sample: []
          type: list
        Owner:
          contains:
            DisplayName:
              description: Bucket owner user display name.
              returned: always
              sample: username
              type: str
            ID:
              description: Bucket owner user ID.
              returned: always
              sample: 123894e509349etc
              type: str
          description: Bucket owner information.
          type: complex
      description: Bucket ACL configuration.
      returned: when I(bucket_facts=true) and I(bucket_acl=true)
      type: complex
    bucket_cors:
      contains:
        CORSRules:
          description: Bucket CORS configuration.
          returned: when CORS rules are defined for the bucket
          sample: []
          type: list
      description: Bucket CORS configuration.
      returned: when I(bucket_facts=true) and I(bucket_cors=true)
      type: complex
    bucket_encryption:
      contains:
        ServerSideEncryptionConfiguration:
          contains:
            Rules:
              description: List of applied encryptio rules.
              returned: when encryption is enabled on the bucket
              sample:
                ApplyServerSideEncryptionByDefault:
                  SSEAlgorithm: AES256
                BucketKeyEnabled: false
              type: list
          description: ServerSideEncryptionConfiguration configuration.
          returned: when encryption is enabled on the bucket
          type: complex
      description: Bucket encryption configuration.
      returned: when I(bucket_facts=true) and I(bucket_encryption=true)
      type: complex
    bucket_lifecycle_configuration:
      contains:
        Rules:
          description: List of lifecycle management rules.
          returned: when lifecycle configuration is present
          sample:
          - ID: example-rule
            Status: Enabled
          type: list
      description: Bucket lifecycle configuration settings.
      returned: when I(bucket_facts=true) and I(bucket_lifecycle_configuration=true)
      type: complex
    bucket_location:
      contains:
        LocationConstraint:
          description: AWS region.
          returned: always
          sample: us-east-2
          type: str
      description: Bucket location.
      returned: when I(bucket_facts=true) and I(bucket_location=true)
      type: complex
    bucket_logging:
      contains:
        LoggingEnabled:
          contains:
            TargetBucket:
              description: Target bucket name.
              returned: always
              sample: logging-bucket-name
              type: str
            TargetPrefix:
              description: Prefix in target bucket.
              returned: always
              sample: ''
              type: str
          description: Server access logging configuration.
          returned: when server access logging is defined for the bucket
          type: complex
      description: Server access logging configuration.
      returned: when I(bucket_facts=true) and I(bucket_logging=true)
      type: complex
    bucket_name_filter:
      description: String used to limit buckets. See I(name_filter).
      returned: when I(name_filter) is defined
      sample: filter-by-this-string
      type: str
    bucket_notification_configuration:
      contains:
        TopicConfigurations:
          description: List of notification events configurations.
          returned: when at least one notification is configured
          sample: []
          type: list
      description: Bucket notification settings.
      returned: when I(bucket_facts=true) and I(bucket_notification_configuration=true)
      type: complex
    bucket_ownership_controls:
      contains:
        OwnershipControls:
          contains:
            Rules:
              description: List of ownership rules.
              returned: when ownership rule is defined
              sample:
              - 'ObjectOwnership:': ObjectWriter
              type: list
          description: Object ownership settings.
          returned: when ownership controls are defined for the bucket
          type: complex
      description: Preffered object ownership settings.
      returned: when I(bucket_facts=true) and I(bucket_ownership_controls=true)
      type: complex
    bucket_policy:
      description: Bucket policy contents.
      returned: when I(bucket_facts=true) and I(bucket_policy=true)
      sample: '{"Version":"2012-10-17","Statement":[{"Sid":"AddCannedAcl","Effect":"Allow",..}}]}'
      type: str
    bucket_policy_status:
      contains:
        PolicyStatus:
          contains:
            IsPublic:
              description: Report bucket policy public status.
              returned: when bucket policy is present
              sample: true
              type: bool
          description: Status of bucket policy.
          returned: when bucket policy is present
          type: complex
      description: Status of bucket policy.
      returned: when I(bucket_facts=true) and I(bucket_policy_status=true)
      type: complex
    bucket_replication:
      contains:
        Role:
          description: IAM role used for replication.
          returned: when replication rule is defined
          sample: arn:aws:iam::123:role/example-role
          type: str
        Rules:
          description: List of replication rules.
          returned: when replication rule is defined
          sample:
          - Filter: '{}'
            ID: rule-1
          type: list
      description: Replication configuration settings.
      returned: when I(bucket_facts=true) and I(bucket_replication=true)
      type: complex
    bucket_request_payment:
      contains:
        Payer:
          description: Current payer.
          returned: always
          sample: BucketOwner
          type: str
      description: Requester pays setting.
      returned: when I(bucket_facts=true) and I(bucket_request_payment=true)
      type: complex
    bucket_tagging:
      description: Bucket tags.
      returned: when I(bucket_facts=true) and I(bucket_tagging=true)
      sample:
        Tag1: Value1
        Tag2: Value2
      type: dict
    bucket_website:
      contains:
        ErrorDocument:
          description: Object serving as HTTP error page.
          returned: when static website hosting is enabled
          sample:
            Key: error.html
          type: dict
        IndexDocument:
          description: Object serving as HTTP index page.
          returned: when static website hosting is enabled
          sample:
            Suffix: error.html
          type: dict
        RedirectAllRequestsTo:
          contains:
            HostName:
              description: Hostname to redirect.
              returned: always
              sample: www.example.com
              type: str
            Protocol:
              description: Protocol used for redirect.
              returned: always
              sample: https
              type: str
          description: Website redict settings.
          returned: when redirect requests is configured
          type: complex
      description: Static website hosting.
      returned: when I(bucket_facts=true) and I(bucket_website=true)
      type: complex
    creation_date:
      description: Bucket creation date timestamp.
      returned: always
      sample: '2021-01-21T12:44:10+00:00'
      type: str
    name:
      description: Bucket name.
      returned: always
      sample: a-testing-bucket-name
      type: str
    public_access_block:
      contains:
        PublicAccessBlockConfiguration:
          contains:
            BlockPublicAcls:
              description: BlockPublicAcls setting value.
              sample: true
              type: bool
            BlockPublicPolicy:
              description: BlockPublicPolicy setting value.
              sample: true
              type: bool
            IgnorePublicAcls:
              description: IgnorePublicAcls setting value.
              sample: true
              type: bool
            RestrictPublicBuckets:
              description: RestrictPublicBuckets setting value.
              sample: true
              type: bool
          description: PublicAccessBlockConfiguration data.
          returned: when PublicAccessBlockConfiguration is defined for the bucket
          type: complex
      description: Bucket public access block configuration.
      returned: when I(bucket_facts=true) and I(public_access_block=true)
      type: complex
  description: List of buckets
  returned: always
  type: complex