log_groups
Creates, updates, deletes or gets a log_group resource or lists log_groups in a region
Overview
| Name | log_groups |
| Type | Resource |
| Description | The 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: |
| Id | awscc.logs.log_groups |
Fields
- get (all properties)
- list (identifiers only)
| Name | Datatype | Description |
|---|---|---|
log_group_name | string | The name of the log group. If you don't specify a name, CFNlong generates a unique ID for the log group. |
kms_key_id | string | 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_policy | object | 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_policies | array | 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_class | string | Specifies the log group class for this log group. There are two classes:+ TheStandard 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_days | integer | 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. |
tags | array | An array of key-value pairs to apply to the log group.For more information, see Tag. |
arn | string | |
resource_policy_document | object | |
region | string | AWS region. |
| Name | Datatype | Description |
|---|---|---|
log_group_name | string | The name of the log group. If you don't specify a name, CFNlong generates a unique ID for the log group. |
region | string | AWS region. |
For more information, see AWS::Logs::LogGroup.
Methods
| Name | Resource | Accessible by | Required Params |
|---|---|---|---|
create_resource | log_groups | INSERT | region |
delete_resource | log_groups | DELETE | Identifier, region |
update_resource | log_groups | UPDATE | Identifier, PatchDocument, region |
list_resources | log_groups_list_only | SELECT | region |
get_resource | log_groups | SELECT | Identifier, region |
SELECT examples
- get (all properties)
- list (identifiers only)
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 }}';
Lists all log_groups in a region.
SELECT
region,
log_group_name
FROM awscc.logs.log_groups_list_only
WHERE
region = '{{ region }}';
INSERT example
Use the following StackQL query and manifest file to create a new log_group resource, using stack-deploy.
- Required Properties
- All Properties
- Manifest
/*+ 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
;
/*+ 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
;
version: 1
name: stack name
description: stack description
providers:
- aws
globals:
- name: region
value: '{{ vars.AWS_REGION }}'
resources:
- name: log_group
props:
- name: log_group_name
value: '{{ log_group_name }}'
- name: kms_key_id
value: '{{ kms_key_id }}'
- name: data_protection_policy
value: {}
- name: field_index_policies
value:
- {}
- name: log_group_class
value: '{{ log_group_class }}'
- name: retention_in_days
value: '{{ retention_in_days }}'
- name: tags
value:
- key: '{{ key }}'
value: '{{ value }}'
- name: resource_policy_document
value: {}
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:
| Parameter | Description |
|---|---|
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:
- Create
- Read
- Update
- Delete
- List
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
logs:DescribeLogGroups,
logs:ListTagsForResource,
logs:GetDataProtectionPolicy,
logs:DescribeIndexPolicies,
logs:DescribeResourcePolicies
logs:DescribeLogGroups,
logs:AssociateKmsKey,
logs:DisassociateKmsKey,
logs:PutRetentionPolicy,
logs:DeleteRetentionPolicy,
logs:TagResource,
logs:UntagResource,
logs:ListTagsForResource,
logs:GetDataProtectionPolicy,
logs:PutDataProtectionPolicy,
logs:CreateLogDelivery,
s3:REST.PUT.OBJECT,
firehose:TagDeliveryStream,
logs:PutIndexPolicy,
logs:DeleteIndexPolicy,
logs:PutResourcePolicy,
logs:DescribeResourcePolicies,
logs:DeleteResourcePolicy
logs:DescribeLogGroups,
logs:DeleteLogGroup,
logs:DeleteDataProtectionPolicy
logs:DescribeLogGroups,
logs:ListTagsForResource