amazon.cloud.cloudtrail_trail module – Creates and manages a trail that specifies the settings for delivery of log data to an Amazon S3 bucket.

Note

This module is part of the amazon.cloud collection (version 0.4.0).

It is not included in ansible-core. To check whether it is installed, run ansible-galaxy collection list.

To install it, use: ansible-galaxy collection install amazon.cloud. You need further requirements to be able to use this module, see Requirements for details.

To use it in a playbook, specify: amazon.cloud.cloudtrail_trail.

New in amazon.cloud 0.2.0

Synopsis

  • Creates and manages a trail that specifies the settings for delivery of log data to an Amazon S3 bucket.

Requirements

The below requirements are needed on the host that executes this module.

  • python >= 3.9

  • boto3 >= 1.25.0

  • botocore >= 1.28.0

  • jsonpatch

Parameters

Parameter

Comments

access_key

aliases: aws_access_key_id, aws_access_key, ec2_access_key

string

AWS access key ID.

See the AWS documentation for more information about access tokens https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html#access-keys-and-secret-access-keys.

The AWS_ACCESS_KEY_ID, AWS_ACCESS_KEY or EC2_ACCESS_KEY environment variables may also be used in decreasing order of preference.

The aws_access_key and profile options are mutually exclusive.

The aws_access_key_id alias was added in release 5.1.0 for consistency with the AWS botocore SDK.

The ec2_access_key alias has been deprecated and will be removed in a release after 2024-12-01.

Support for the EC2_ACCESS_KEY environment variable has been deprecated and will be removed in a release after 2024-12-01.

aws_ca_bundle

path

The location of a CA Bundle to use when validating SSL certificates.

The AWS_CA_BUNDLE environment variable may also be used.

aws_config

dictionary

A dictionary to modify the botocore configuration.

Parameters can be found in the AWS documentation https://botocore.amazonaws.com/v1/documentation/api/latest/reference/config.html#botocore.config.Config.

cloud_watch_logs_log_group_arn

string

Specifies a log group name using an Amazon Resource Name (ARN), a unique identifier that represents the log group to which CloudTrail logs will be delivered.

Not required unless you specify CloudWatchLogsRoleArn.

cloud_watch_logs_role_arn

string

Specifies the role for the CloudWatch Logs endpoint to assume to write to a users log group.

debug_botocore_endpoint_logs

boolean

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.

Choices:

  • false ← (default)

  • true

enable_log_file_validation

boolean

Specifies whether log file validation is enabled.

The default is false.

Choices:

  • false

  • true

endpoint_url

aliases: ec2_url, aws_endpoint_url, s3_url

string

URL to connect to instead of the default AWS endpoints. While this can be used to connection to other AWS-compatible services the amazon.aws and community.aws collections are only tested against AWS.

The AWS_URL or EC2_URL environment variables may also be used, in decreasing order of preference.

The ec2_url and s3_url aliases have been deprecated and will be removed in a release after 2024-12-01.

Support for the EC2_URL environment variable has been deprecated and will be removed in a release after 2024-12-01.

event_selectors

list / elements=dictionary

The type of email sending events to publish to the event destination.

data_resources

list / elements=dictionary

CloudTrail supports data event logging for Amazon S3 objects and AWS Lambda functions.

You can specify up to 250 resources for an individual event selector, but the total number of data resources cannot exceed 250 across all event selectors in a trail.

This limit does not apply if you configure resource logging for all data events.

type

string

The resource type in which you want to log data events.

You can specify AWS::S3::Object or AWS::Lambda::Function resources.

values

list / elements=string

An array of Amazon Resource Name (ARN) strings or partial ARN strings for the specified objects.

exclude_management_event_sources

list / elements=string

An optional list of service event sources from which you do not want management events to be logged on your trail.

In this release, the list can be empty (disables the filter), or it can filter out AWS Key Management Service events by containing kms.amazonaws.com.

By default, exclude_management_event_sources is empty, and AWS KMS events are included in events that are logged to your trail.

include_management_events

boolean

Specify if you want your event selector to include management events for your trail.

Choices:

  • false

  • true

read_write_type

string

Specify if you want your trail to log read-only events, write-only events, or all.

For example, the EC2 GetConsoleOutput is a read-only API operation and RunInstances is a write-only API operation.

Choices:

  • "All"

  • "ReadOnly"

  • "WriteOnly"

force

boolean

Cancel IN_PROGRESS and PENDING resource requestes.

Because you can only perform a single operation on a given resource at a time, there might be cases where you need to cancel the current resource operation to make the resource available so that another operation may be performed on it.

Choices:

  • false ← (default)

  • true

include_global_service_events

boolean

Specifies whether the trail is publishing events from global services such as IAM to the log files.

Choices:

  • false

  • true

insight_selectors

list / elements=dictionary

A string that contains insight types that are logged on a trail.

insight_type

string

The type of insight to log on a trail.

is_logging

boolean

Whether the CloudTrail is currently logging AWS API calls.

Choices:

  • false

  • true

is_multi_region_trail

boolean

Specifies whether the trail applies only to the current region or to all regions.

The default is false.

If the trail exists only in the current region and this value is set to true, shadow trails (replications of the trail) will be created in the other regions.

If the trail exists in all regions and this value is set to false, the trail will remain in the region where it was created, and its shadow trails in other regions will be deleted.

As a best practice, consider using trails that log events in all regions.

Choices:

  • false

  • true

is_organization_trail

boolean

Specifies whether the trail is created for all accounts in an organization in AWS Organizations, or only for the current AWS account.

The default is false, and cannot be true unless the call is made on behalf of an AWS account that is the master account for an organization in AWS Organizations.

Choices:

  • false

  • true

kms_key_id

string

Specifies the KMS key ID to use to encrypt the logs delivered by CloudTrail.

The value can be an alias name prefixed by alias/, a fully specified ARN to an alias, a fully specified ARN to a key, or a globally unique identifier.

profile

aliases: aws_profile

string

A named AWS profile to use for authentication.

See the AWS documentation for more information about named profiles https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-profiles.html.

The AWS_PROFILE environment variable may also be used.

The profile option is mutually exclusive with the aws_access_key, aws_secret_key and security_token options.

purge_tags

boolean

Remove tags not listed in tags.

Choices:

  • false

  • true ← (default)

region

aliases: aws_region, ec2_region

string

The AWS region to use.

For global services such as IAM, Route53 and CloudFront, region is ignored.

The AWS_REGION or EC2_REGION environment variables may also be used.

See the Amazon AWS documentation for more information http://docs.aws.amazon.com/general/latest/gr/rande.html#ec2_region.

The ec2_region alias has been deprecated and will be removed in a release after 2024-12-01

Support for the EC2_REGION environment variable has been deprecated and will be removed in a release after 2024-12-01.

s3_bucket_name

string

Specifies the name of the Amazon S3 bucket designated for publishing log files.

See Amazon S3 Bucket Naming Requirements.

s3_key_prefix

string

Specifies the Amazon S3 key prefix that comes after the name of the bucket you have designated for log file delivery.

For more information, see Finding Your CloudTrail Log Files.

The maximum length is 200 characters.

secret_key

aliases: aws_secret_access_key, aws_secret_key, ec2_secret_key

string

AWS secret access key.

See the AWS documentation for more information about access tokens https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html#access-keys-and-secret-access-keys.

The AWS_SECRET_ACCESS_KEY, AWS_SECRET_KEY, or EC2_SECRET_KEY environment variables may also be used in decreasing order of preference.

The secret_key and profile options are mutually exclusive.

The aws_secret_access_key alias was added in release 5.1.0 for consistency with the AWS botocore SDK.

The ec2_secret_key alias has been deprecated and will be removed in a release after 2024-12-01.

Support for the EC2_SECRET_KEY environment variable has been deprecated and will be removed in a release after 2024-12-01.

session_token

aliases: aws_session_token, security_token, aws_security_token, access_token

string

AWS STS session token for use with temporary credentials.

See the AWS documentation for more information about access tokens https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html#access-keys-and-secret-access-keys.

The AWS_SESSION_TOKEN, AWS_SECURITY_TOKEN or EC2_SECURITY_TOKEN environment variables may also be used in decreasing order of preference.

The security_token and profile options are mutually exclusive.

Aliases aws_session_token and session_token were added in release 3.2.0, with the parameter being renamed from security_token to session_token in release 6.0.0.

The security_token, aws_security_token, and access_token aliases have been deprecated and will be removed in a release after 2024-12-01.

Support for the EC2_SECRET_KEY and AWS_SECURITY_TOKEN environment variables has been deprecated and will be removed in a release after 2024-12-01.

sns_topic_name

string

Specifies the name of the Amazon SNS topic defined for notification of log file delivery.

The maximum length is 256 characters.

state

string

Goal state for resource.

state=present creates the resource if it doesn’t exist, or updates to the provided state if the resource already exists.

state=absent ensures an existing instance is deleted.

state=list get all the existing resources.

state=describe or state=get retrieves information on an existing resource.

Choices:

  • "present" ← (default)

  • "absent"

  • "list"

  • "describe"

  • "get"

tags

aliases: resource_tags

dictionary

A dict of tags to apply to the resource.

To remove all tags set tags={} and purge_tags=true.

trail_name

string

Not Provived.

validate_certs

boolean

When set to false, SSL certificates will not be validated for communication with the AWS APIs.

Setting validate_certs=false is strongly discouraged, as an alternative, consider setting aws_ca_bundle instead.

Choices:

  • false

  • true ← (default)

wait

boolean

Wait for operation to complete before returning.

Choices:

  • false ← (default)

  • true

wait_timeout

integer

How many seconds to wait for an operation to complete before timing out.

Default: 320

Notes

Note

  • Caution: For modules, environment variables and configuration files are read from the Ansible ‘host’ context and not the ‘controller’ context. As such, files may need to be explicitly copied to the ‘host’. For lookup and connection plugins, environment variables and configuration files are read from the Ansible ‘controller’ context and not the ‘host’ context.

  • The AWS SDK (boto3) that Ansible uses may also read defaults for credentials and other settings, such as the region, from its configuration files in the Ansible ‘host’ context (typically ~/.aws/credentials). See https://boto3.amazonaws.com/v1/documentation/api/latest/guide/credentials.html for more information.

Examples


Return Values

Common return values are documented here, the following are the fields unique to this module:

Key

Description

result

complex

When state=list, it is a list containing dictionaries of resource information.

Otherwise, it is a dictionary of resource information.

When state=absent, it is an empty dictionary.

Returned: always

identifier

string

The unique identifier of the resource.

Returned: success

properties

dictionary

The resource properties.

Returned: success

Authors

  • Ansible Cloud Team (@ansible-collections)