감사 로깅 활성화 - Amazon WorkMail

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

감사 로깅 활성화

감사 로그를 사용하여 Amazon WorkMail 조직 사용에 대한 자세한 정보를 캡처할 수 있습니다. 감사 로그를 사용하여 사서함에 대한 사용자의 액세스를 모니터링하고, 의심스러운 활동을 감사하고, 액세스 제어 및 가용성 공급자 구성을 디버깅할 수 있습니다.

참고

AmazonWorkMailFullAccess 관리형 정책에는 로그 전송을 관리하는 데 필요한 모든 권한이 포함되어 있지는 않습니다. 이 정책을 사용하여 를 관리하는 경우 로그 전송을 구성하는 데 사용되는 보안 주체(예: 가정된 역할)에도 필요한 모든 권한이 있는지 WorkMail확인합니다.

Amazon은 감사 로그에 대해 CloudWatch 로그, Amazon S3 및 Amazon Data Firehose의 세 가지 전송 대상을 WorkMail 지원합니다. 자세한 내용은 Amazon CloudWatch Logs 사용 설명서추가 권한 [V2]이 필요한 로깅을 참조하세요.

추가 권한 [V2]이 필요한 로깅 아래에 나열된 권한 외에도 Amazon은 로그 전송을 구성하기 위한 추가 권한이 WorkMail 필요합니다workmail:AllowVendedLogDeliveryForResource.

작동하는 로그 전송은 다음 세 가지 요소로 구성됩니다.

  • DeliverySource로그를 전송하는 리소스 또는 리소스를 나타내는 논리적 객체입니다. Amazon 의 경우 Amazon WorkMail Organization WorkMail입니다.

  • 실제 전송 대상을 나타내는 논리적 객체인 DeliveryDestination입니다.

  • 전송 소스를 전송 대상에 연결하는 전송 입니다.

Amazon WorkMail 과 대상 간에 로그 전송을 구성하려면 다음을 수행할 수 있습니다.

  • 를 사용하여 전송 소스를 생성합니다PutDeliverySource.

  • 를 사용하여 전송 대상을 생성합니다PutDeliveryDestination.

  • 교차 계정을 로그로 전송하는 경우 대상 계정PutDeliveryDestinationPolicy에서 를 사용하여 대상에 IAM 정책을 할당해야 합니다. 이 정책은 계정 A의 전송 소스에서 계정 B의 전송 대상으로의 전송을 생성할 수 있는 권한을 부여합니다.

  • 를 사용하여 정확히 하나의 전송 소스와 하나의 전송 대상을 페어링하여 전송을 생성합니다CreateDelivery.

다음 섹션에서는 로그인 시 각 유형의 대상으로 로그 전송을 설정하기 위해 보유해야 하는 권한에 대한 세부 정보를 제공합니다. 이러한 권한은 로그인한 IAM 역할에 부여할 수 있습니다.

중요

로그 생성 리소스를 삭제한 후 로그 전송 리소스를 제거하는 것은 사용자의 책임입니다.

로그 생성 리소스를 삭제한 후 로그 전송 리소스를 제거하려면 다음 단계를 따르세요.

  1. DeleteDelivery 작업을 사용하여 전송을 삭제합니다.

  2. DeleteDeliverySource 작업을 DeliverySource 사용하여 를 삭제합니다.

  3. 방금 삭제DeliverySource한 와 DeliveryDestination 연결된 이 이 이 특정 에만 사용되는 경우 DeleteDeliveryDestinations 작업을 사용하여 제거할 DeliverySource수 있습니다.

Amazon WorkMail 콘솔을 사용하여 감사 로깅 구성

Amazon WorkMail 콘솔에서 감사 로깅을 구성할 수 있습니다.

  1. 에서 Amazon WorkMail 콘솔을 엽니다https://console.aws.amazon.com/workmail/.

    필요한 경우 AWS 리전을 변경합니다. 콘솔 창 상단의 막대에서 리전 선택 목록을 열고 리전을 선택합니다. 자세한 내용은Amazon Web Services 일반 참조 Regions and endpoints를 참조하세요.

  2. 탐색 창에서 조직을 선택한 다음 조직의 이름을 선택합니다.

  3. 로깅 설정 을 선택합니다.

  4. 감사 로그 설정 탭을 선택합니다.

  5. 적절한 위젯을 사용하여 필요한 로그 유형에 대한 전송을 구성합니다.

  6. 저장(Save)을 선택합니다.

로그로 전송된 CloudWatch 로그

사용자 권한

CloudWatch 로그로 로그 전송을 활성화하려면 다음 권한으로 로그인해야 합니다.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ReadWriteAccessForLogDeliveryActions", "Effect": "Allow", "Action": [ "logs:GetDelivery", "logs:GetDeliverySource", "logs:PutDeliveryDestination", "logs:GetDeliveryDestinationPolicy", "logs:DeleteDeliverySource", "logs:PutDeliveryDestinationPolicy", "logs:CreateDelivery", "logs:GetDeliveryDestination", "logs:PutDeliverySource", "logs:DeleteDeliveryDestination", "logs:DeleteDeliveryDestinationPolicy", "logs:DeleteDelivery" ], "Resource": [ "arn:aws:logs:region:account-id:delivery:*", "arn:aws:logs:region:account-id:delivery-source:*", "arn:aws:logs:region:account-id:delivery-destination:*" ] }, { "Sid": "ListAccessForLogDeliveryActions", "Effect": "Allow", "Action": [ "logs:DescribeDeliveryDestinations", "logs:DescribeDeliverySources", "logs:DescribeDeliveries", "logs:DescribeLogGroups" ], "Resource": "*" }, { "Sid": "AllowUpdatesToResourcePolicyCWL", "Effect": "Allow", "Action": [ "logs:PutResourcePolicy", "logs:DescribeResourcePolicies", "logs:DescribeLogGroups" ], "Resource": [ "arn:aws:logs:region:account-id:*" ] } { "Sid":"AllowLogDeliveryForWorkMail", "Effect":"Allow", "Action":[ "workmail:AllowVendedLogDeliveryForResource" ], "Resource":[ "arn:aws:workmail:region:account-id:organization/organization-id" ] } ] }

로그 그룹 리소스 정책

로그를 보내는 로그 그룹에는 특정 권한이 포함된 리소스 정책이 있어야 합니다. 로그 그룹에 현재 리소스 정책이 없고 로깅을 설정한 사용자에게 로그 그룹에 대한 logs:PutResourcePolicy, logs:DescribeResourcePolicieslogs:DescribeLogGroups 권한이 있는 경우 로그로 로그 전송을 시작할 때 는 AWS 자동으로 다음 정책을 생성합니다 CloudWatch .

{ "Version":"2012-10-17", "Statement":[ { "Sid":"AWSLogDeliveryWrite20150319", "Effect":"Allow", "Principal":{ "Service":[ "delivery.logs.amazonaws.com" ] }, "Action":[ "logs:CreateLogStream", "logs:PutLogEvents" ], "Resource":[ "arn:aws:logs:region:account-id:log-group:my-log-group:log-stream:*" ], "Condition":{ "StringEquals":{ "aws:SourceAccount":[ "account-id" ] }, "ArnLike":{ "aws:SourceArn":[ "arn:aws:logs:region:account-id:*" ] } } } ] }

로그 그룹 리소스 정책 크기 제한 고려 사항

이러한 서비스는 리소스 정책에 로그를 보내는 각 로그 그룹을 나열해야 합니다. CloudWatch 로그 리소스 정책은 5,120자로 제한됩니다. 많은 수의 로그 그룹에 로그를 전송하는 서비스는 이 제한에 도달할 수 있습니다.

이를 완화하기 위해 CloudWatch Logs는 로그를 보내는 서비스에서 사용하는 리소스 정책의 크기를 모니터링합니다. 정책이 5,120자의 크기 제한에 도달하는 것을 감지하면 CloudWatch Logs는 해당 서비스의 리소스 정책/aws/vendedlogs/*에서 를 자동으로 활성화합니다. 그런 다음 /aws/vendedlogs/로 시작하는 이름을 가진 로그 그룹을 이러한 서비스의 로그 대상으로 사용하기 시작할 수 있습니다.

Amazon S3 로 보낸 로그

사용자 권한

Amazon S3로 로그를 전송하려면 다음 권한으로 로그인해야 합니다.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ReadWriteAccessForLogDeliveryActions", "Effect": "Allow", "Action": [ "logs:GetDelivery", "logs:GetDeliverySource", "logs:PutDeliveryDestination", "logs:GetDeliveryDestinationPolicy", "logs:DeleteDeliverySource", "logs:PutDeliveryDestinationPolicy", "logs:CreateDelivery", "logs:GetDeliveryDestination", "logs:PutDeliverySource", "logs:DeleteDeliveryDestination", "logs:DeleteDeliveryDestinationPolicy", "logs:DeleteDelivery" ], "Resource": [ "arn:aws:logs:region:account-id:delivery:*", "arn:aws:logs:region:account-id:delivery-source:*", "arn:aws:logs:region:account-id:delivery-destination:*" ] }, { "Sid": "ListAccessForLogDeliveryActions", "Effect": "Allow", "Action": [ "logs:DescribeDeliveryDestinations", "logs:DescribeDeliverySources", "logs:DescribeDeliveries", "logs:DescribeLogGroups" ], "Resource": "*" }, { "Sid": "AllowUpdatesToResourcePolicyS3", "Effect": "Allow", "Action": [ "s3:PutBucketPolicy", "s3:GetBucketPolicy" ], "Resource": "arn:aws:s3:::bucket-name" } { "Sid":"AllowLogDeliveryForWorkMail", "Effect":"Allow", "Action":[ "workmail:AllowVendedLogDeliveryForResource" ], "Resource":[ "arn:aws:workmail:region:account-id:organization/organization-id" ] } ] }

로그가 전송되는 S3 버킷에는 특정 권한을 포함하는 리소스 정책이 있어야 합니다. 현재 버킷에 리소스 정책이 없고 로깅을 설정한 사용자에게 버킷에 대한 S3:GetBucketPolicyS3:PutBucketPolicy 권한이 있는 경우 AWS 는 Amazon S3로 로그 전송을 시작할 때 자동으로 다음 정책을 생성합니다.

{ "Version":"2012-10-17", "Id":"AWSLogDeliveryWrite20150319", "Statement":[ { "Sid":"AWSLogDeliveryAclCheck", "Effect":"Allow", "Principal":{ "Service":"delivery.logs.amazonaws.com" }, "Action":"s3:GetBucketAcl", "Resource":"arn:aws:s3:::my-bucket", "Condition":{ "StringEquals":{ "aws:SourceAccount":[ "account-id" ] }, "ArnLike":{ "aws:SourceArn":[ "arn:aws:logs:region:account-id:delivery-source:*" ] } } }, { "Sid":"AWSLogDeliveryWrite", "Effect":"Allow", "Principal":{ "Service":"delivery.logs.amazonaws.com" }, "Action":"s3:PutObject", "Resource":"arn:aws:s3:::my-bucket/AWSLogs/account-id/*", "Condition":{ "StringEquals":{ "s3:x-amz-acl":"bucket-owner-full-control", "aws:SourceAccount":[ "account-id" ] }, "ArnLike":{ "aws:SourceArn":[ "arn:aws:logs:region:account-id:delivery-source:*" ] } } } ] }

이전 정책의 에 IDs 대해 이 버킷에 로그가 전달되는 계정 목록을 aws:SourceAccount지정합니다. 의 경우 로그를 생성하는 리소스 ARNs 목록을 형식으로 aws:SourceArn지정합니다arn:aws:logs:source-region:source-account-id:*.

버킷에 리소스 정책이 있지만 해당 정책에 이전 정책에 표시된 문이 포함되어 있지 않고 로깅을 설정한 사용자에게 버킷에 대한 S3:GetBucketPolicyS3:PutBucketPolicy 권한이 있는 경우 해당 문이 버킷의 리소스 정책에 추가됩니다.

참고

경우에 따라 에 s3:ListBucket 권한이 부여되지 않은 AWS CloudTrail 경우 에 AccessDenied 오류가 발생할 수 있습니다delivery.logs.amazonaws.com. 로그에서 CloudTrail 이러한 오류를 방지하려면 에 s3:ListBucket 권한을 부여해야 합니다delivery.logs.amazonaws.com. 또한 이전 버킷 정책에 설정된 s3:GetBucketAcl 권한과 함께 표시된 Condition 파라미터를 포함해야 합니다. 이를 간소화하기 위해 새 를 생성하는 대신 를 AWSLogDeliveryAclCheck로 직접 업데이트할 Statement수 있습니다“Action”: [“s3:GetBucketAcl”, “s3:ListBucket”].

Amazon S3 버킷 서버 측 암호화

Amazon S3 관리형 키(-S3)를 사용한 서버 측 암호화 또는 AWS Key Management Service (-)에 저장된 AWS KMS 키를 사용한 서버 측 암호화를 활성화하여 Amazon S3-managedSSE-S3 버킷의 데이터를 보호할 수 있습니다SSEKMS. 자세한 내용은 서버 측 암호화를 사용하여 데이터 보호를 참조하세요.

SSE-S3를 선택하면 추가 구성이 필요하지 않습니다. Amazon S3는 암호화 키를 처리합니다.

주의

SSE-를 선택하는 경우 AWS 관리형 키 이 시나리오에서는 를 사용할 KMS수 없으므로 고객 관리형 키를 사용해야 합니다. AWS 관리형 키를 사용하여 암호화를 설정하면 로그가 읽을 수 없는 형식으로 전송됩니다.

고객 관리형 AWS KMS 키를 사용하는 경우 버킷 암호화를 활성화할 때 고객 관리형 키의 Amazon 리소스 이름(ARN)을 지정할 수 있습니다. 로그 전송 계정이 S3S3 버킷에 쓸 수 있도록 고객 관리형 키의 키 정책(S3 버킷의 버킷 정책이 아님)에 다음을 추가합니다.

SSE-를 선택하는 경우 이 시나리오에서는 관리형 키 사용이 지원되지 않으므로 고객 AWS 관리형 키를 사용해야 KMS합니다. 고객 관리형 AWS KMS 키를 사용하는 경우 버킷 암호화를 활성화할 때 고객 관리형 키의 Amazon 리소스 이름(ARN)을 지정할 수 있습니다. 로그 전송 계정이 S3S3 버킷에 쓸 수 있도록 고객 관리형 키의 키 정책(S3 버킷의 버킷 정책이 아님)에 다음을 추가합니다.

{ "Sid":"Allow Logs Delivery to use the key", "Effect":"Allow", "Principal":{ "Service":[ "delivery.logs.amazonaws.com" ] }, "Action":[ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:DescribeKey" ], "Resource":"*", "Condition":{ "StringEquals":{ "aws:SourceAccount":[ "account-id" ] }, "ArnLike":{ "aws:SourceArn":[ "arn:aws:logs:region:account-id:delivery-source:*" ] } } }

의 경우 로그가 이 버킷IDs에 전달되는 계정 목록을 aws:SourceAccount지정합니다. 의 경우 로그를 생성하는 리소스 ARNs 목록을 형식으로 aws:SourceArn지정합니다arn:aws:logs:source-region:source-account-id:*.

Firehose에 전송된 로그

사용자 권한

Firehose로 로그 전송을 활성화하려면 다음 권한으로 로그인해야 합니다.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ReadWriteAccessForLogDeliveryActions", "Effect": "Allow", "Action": [ "logs:GetDelivery", "logs:GetDeliverySource", "logs:PutDeliveryDestination", "logs:GetDeliveryDestinationPolicy", "logs:DeleteDeliverySource", "logs:PutDeliveryDestinationPolicy", "logs:CreateDelivery", "logs:GetDeliveryDestination", "logs:PutDeliverySource", "logs:DeleteDeliveryDestination", "logs:DeleteDeliveryDestinationPolicy", "logs:DeleteDelivery" ], "Resource": [ "arn:aws:logs:region:account-id:delivery:*", "arn:aws:logs:region:account-id:delivery-source:*", "arn:aws:logs:region:account-id:delivery-destination:*" ] }, { "Sid": "ListAccessForLogDeliveryActions", "Effect": "Allow", "Action": [ "logs:DescribeDeliveryDestinations", "logs:DescribeDeliverySources", "logs:DescribeDeliveries", "logs:DescribeLogGroups" ], "Resource": "*" }, { "Sid": "AllowUpdatesToResourcePolicyFH", "Effect": "Allow", "Action": [ "firehose:TagDeliveryStream" ], "Resource": [ "arn:aws:firehose:region:account-id:deliverystream/*" ] }, { "Sid": "CreateServiceLinkedRole", "Effect": "Allow", "Action": [ "iam:CreateServiceLinkedRole" ], "Resource": "arn:aws:iam::account-id:role/aws-service-role/delivery.logs.amazonaws.com/AWSServiceRoleForLogDelivery" } { "Sid":"AllowLogDeliveryForWorkMail", "Effect":"Allow", "Action":[ "workmail:AllowVendedLogDeliveryForResource" ], "Resource":[ "arn:aws:workmail:region:account-id:organization/organization-id" ] } ] }

IAM 리소스 권한에 사용되는 역할

Firehose는 리소스 정책을 사용하지 않기 때문에 이러한 로그를 Firehose로 전송하도록 설정할 때 IAM 역할을 AWS 사용합니다. 는 라는 서비스 연결 역할을 AWS 생성합니다. AWSServiceRoleForLogDelivery. 이 서비스 연결 역할에는 다음 권한이 포함됩니다.

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "firehose:PutRecord", "firehose:PutRecordBatch", "firehose:ListTagsForDeliveryStream" ], "Resource": "*", "Condition": { "StringEquals": { "aws:ResourceTag/LogDeliveryEnabled": "true" } }, "Effect": "Allow" } ] }

이 서비스 연결 역할은 LogDeliveryEnabled 태그가 로 설정된 모든 Firehose 전송 스트림에 대한 권한을 부여합니다true. 로깅을 설정할 때 이 태그를 대상 전송 스트림에 AWS 제공합니다.

또한 이 서비스 연결 역할에는 delivery.logs.amazonaws.com 서비스 보안 주체가 필요한 서비스 연결 역할을 맡도록 허용하는 신뢰 정책이 있습니다. 이러한 신뢰 정책은 다음과 같습니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "delivery.logs.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }

콘솔별 권한

이전 섹션에 나열된 권한 외에도 대신 콘솔을 사용하여 로그 전송을 설정하는 경우 다음 권한APIs도 필요합니다.

{ "Version":"2012-10-17", "Statement":[ { "Sid":"AllowLogDeliveryActions", "Effect":"Allow", "Action":[ "firehose:DescribeDeliveryStream", "s3:ListBucket", "s3:GetBucketLocation" ], "Resource":[ "arn:aws:logs:region:account-id:log-group:*", "arn:aws:firehose:region:account-id:deliverystream/*", "arn:aws:s3:::*" ] }, { "Sid":"ListAccessForDeliveryDestinations", "Effect":"Allow", "Action":[ "logs:DescribeLogGroups", "firehose:ListDeliveryStreams", "s3:ListAllMyBuckets" ], "Resource":"*" } ] }