Skip to main content

log_groups

Creates, updates, deletes or gets a log_group resource or lists log_groups in a region

Overview

Namelog_groups
TypeResource
Description
The AWS::Logs::LogGroup resource specifies a log group. A log group defines common properties for log streams, such as their retention and access control rules. Each log stream must belong to one log group.You can create up to 1,000,000 log groups per Region per account. You must use the following guidelines when naming a log group:
+ Log group names must be unique within a Region for an AWS account.
+ Log group names can be between 1 and 512 characters long.
+ Log group names consist of the following characters: a-z, A-Z, 0-9, '_' (underscore), '-' (hyphen), '/' (forward slash), and '.' (period).
Idawscc.logs.log_groups

Fields

NameDatatypeDescription
log_group_namestringThe name of the log group. If you don't specify a name, CFNlong generates a unique ID for the log group.
kms_key_idstring
The Amazon Resource Name (ARN) of the KMS key to use when encrypting log data.To associate an KMS key with the log group, specify the ARN of that KMS key here. If you do so, ingested data is encrypted using this key. This association is stored as long as the data encrypted with the KMS key is still within CWL. This enables CWL to decrypt this data whenever it is requested.
If you attempt to associate a KMS key with the log group but the KMS key doesn't exist or is deactivated, you will receive an InvalidParameterException error.
Log group data is always encrypted in CWL. If you omit this key, the encryption does not use KMS. For more information, see Encrypt log data in using
data_protection_policyobject
Creates a data protection policy and assigns it to the log group. A data protection policy can help safeguard sensitive data that's ingested by the log group by auditing and masking the sensitive log data. When a user who does not have permission to view masked data views a log event that includes masked data, the sensitive data is replaced by asterisks.For more information, including a list of types of data that can be audited and masked, see Protect sensitive log data with masking.
field_index_policiesarray
Creates or updates a field index policy for the specified log group. Only log groups in the Standard log class support field index policies. For more information about log classes, see Log classes.You can use field index policies to create field indexes on fields found in log events in the log group. Creating field indexes lowers the costs for CWL Insights queries that reference those field indexes, because these queries attempt to skip the processing of log events that are known to not match the indexed field. Good fields to index are fields that you often need to query for and fields that have high cardinality of values Common examples of indexes include request ID, session ID, userID, and instance IDs. For more information, see Create field indexes to improve query performance and reduce costs.
Currently, this array supports only one field index policy object.
log_group_classstring
Specifies the log group class for this log group. There are two classes:+ The Standard log class supports all CWL features.
+ The Infrequent Access log class supports a subset of CWL features and incurs lower costs.
For details about the features supported by each class, see Log classes
retention_in_daysinteger
The number of days to retain the log events in the specified log group. Possible values are: 1, 3, 5, 7, 14, 30, 60, 90, 120, 150, 180, 365, 400, 545, 731, 1096, 1827, 2192, 2557, 2922, 3288, and 3653.To set a log group so that its log events do not expire, use DeleteRetentionPolicy.
tagsarray
An array of key-value pairs to apply to the log group.For more information, see Tag.
arnstring
resource_policy_documentobject
regionstringAWS region.

For more information, see AWS::Logs::LogGroup.

Methods

NameResourceAccessible byRequired Params
create_resourcelog_groupsINSERTregion
delete_resourcelog_groupsDELETEIdentifier, region
update_resourcelog_groupsUPDATEIdentifier, PatchDocument, region
list_resourceslog_groups_list_onlySELECTregion
get_resourcelog_groupsSELECTIdentifier, region

SELECT examples

Gets all properties from an individual log_group.

SELECT
region,
log_group_name,
kms_key_id,
data_protection_policy,
field_index_policies,
log_group_class,
retention_in_days,
tags,
arn,
resource_policy_document
FROM awscc.logs.log_groups
WHERE
region = '{{ region }}' AND
Identifier = '{{ log_group_name }}';

INSERT example

Use the following StackQL query and manifest file to create a new log_group resource, using stack-deploy.

/*+ create */
INSERT INTO awscc.logs.log_groups (
LogGroupName,
KmsKeyId,
DataProtectionPolicy,
FieldIndexPolicies,
LogGroupClass,
RetentionInDays,
Tags,
ResourcePolicyDocument,
region
)
SELECT
'{{ log_group_name }}',
'{{ kms_key_id }}',
'{{ data_protection_policy }}',
'{{ field_index_policies }}',
'{{ log_group_class }}',
'{{ retention_in_days }}',
'{{ tags }}',
'{{ resource_policy_document }}',
'{{ region }}'
RETURNING
ErrorCode,
EventTime,
Identifier,
Operation,
OperationStatus,
RequestToken,
ResourceModel,
RetryAfter,
StatusMessage,
TypeName
;

UPDATE example

Use the following StackQL query and manifest file to update a log_group resource, using stack-deploy.

/*+ update */
UPDATE awscc.logs.log_groups
SET PatchDocument = string('{{ {
"KmsKeyId": kms_key_id,
"DataProtectionPolicy": data_protection_policy,
"FieldIndexPolicies": field_index_policies,
"LogGroupClass": log_group_class,
"RetentionInDays": retention_in_days,
"Tags": tags,
"ResourcePolicyDocument": resource_policy_document
} | generate_patch_document }}')
WHERE
region = '{{ region }}' AND
Identifier = '{{ log_group_name }}'
RETURNING
ErrorCode,
EventTime,
Identifier,
Operation,
OperationStatus,
RequestToken,
ResourceModel,
RetryAfter,
StatusMessage,
TypeName
;

DELETE example

/*+ delete */
DELETE FROM awscc.logs.log_groups
WHERE
Identifier = '{{ log_group_name }}' AND
region = '{{ region }}'
RETURNING
ErrorCode,
EventTime,
Identifier,
Operation,
OperationStatus,
RequestToken,
ResourceModel,
RetryAfter,
StatusMessage,
TypeName
;

Additional Parameters

Mutable resources in the Cloud Control provider support additional optional parameters which can be supplied with INSERT, UPDATE, or DELETE operations. These include:

ParameterDescription
ClientToken
A unique identifier to ensure the idempotency of the resource request.This allows the provider to accurately distinguish between retries and new requests.
A client token is valid for 36 hours once used.
After that, a resource request with the same client token is treated as a new request.
If you do not specify a client token, one is generated for inclusion in the request.
RoleArn
The ARN of the IAM role used to perform this resource operation.The role specified must have the permissions required for this operation.
If you do not specify a role, a temporary session is created using your AWS user credentials.
TypeVersionId
For private resource types, the type version to use in this resource operation.If you do not specify a resource version, the default version is used.

Permissions

To operate on the log_groups resource, the following permissions are required:

logs:DescribeLogGroups,
logs:CreateLogGroup,
logs:PutRetentionPolicy,
logs:TagResource,
logs:GetDataProtectionPolicy,
logs:PutDataProtectionPolicy,
logs:CreateLogDelivery,
s3:REST.PUT.OBJECT,
firehose:TagDeliveryStream,
logs:PutResourcePolicy,
logs:DescribeResourcePolicies,
logs:PutIndexPolicy,
logs:DescribeIndexPolicies