감사 로깅 활성화 - 아마존 WorkMail

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

감사 로깅 활성화

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

참고

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

Amazon은 감사 로그의 세 가지 전송 목적지, 즉 CloudWatch 로그, Amazon S3 및 Amazon Data Firehose를 WorkMail 지원합니다. 자세한 내용은 Amazon CloudWatch Logs 사용 설명서의 추가 권한이 필요한 로깅 [V2] 를 참조하십시오.

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

작업 로그 전달은 세 가지 요소로 구성됩니다.

  • DeliverySource, 로그를 보내는 리소스 또는 리소스를 나타내는 논리적 객체입니다. 아마존의 WorkMail 경우 아마존 WorkMail 조직입니다.

  • A는 DeliveryDestination실제 배송지를 나타내는 논리적 객체입니다.

  • 배달: 배달 소스를 배달 목적지에 연결합니다.

WorkMail Amazon과 목적지 간의 로그 전송을 구성하려면 다음과 같이 하면 됩니다.

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

  • 를 사용하여 배송지를 생성합니다 PutDeliveryDestination.

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

  • 를 사용하여 정확히 하나의 배송처와 하나의 배송지를 페어링하여 배송을 생성합니다. CreateDelivery

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

중요

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

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

  1. 작업을 사용하여 배달을 삭제합니다. DeleteDelivery

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

  3. 방금 삭제한 DeliveryDestinationDeliverySource항목과 관련된 항목이 이 특정 DeliverySource항목에만 사용되는 경우 DeleteDeliveryDestinations작업을 사용하여 제거할 수 있습니다.

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

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

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

    필요한 경우 AWS 지역을 변경하십시오. 콘솔 창 상단의 표시줄에서 지역 선택 목록을 열고 지역을 선택합니다. 자세한 내용은Amazon Web Services 일반 참조 Regions and endpoints를 참조하세요.

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

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

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

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

  6. 저장을 선택합니다.

로그로 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:DescribeResourcePolicies, 및 logs:DescribeLogGroups 권한이 있는 경우 로그를 Logs로 CloudWatch 보내기 시작하면 다음과 같은 정책이 AWS 자동으로 생성됩니다.

{ "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자로 제한됩니다. 다수의 로그 그룹에 로그를 전송하는 서비스는 이 한도에 도달할 수 있습니다.

이를 완화하기 위해 Logs는 CloudWatch 로그를 보내는 서비스가 사용하는 리소스 정책의 크기를 모니터링합니다. 정책의 크기 제한인 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 권한이 있는 경우 Amazon S3로 로그를 보내기 시작하면 해당 버킷에 대한 다음 정책을 AWS 자동으로 생성합니다.

{ "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:*" ] } } } ] }

이전 정책에서는 로그가 이 버킷으로 전송되는 계정 ID 목록을 지정했습니다. aws:SourceAccount aws:SourceArn에 대해 로그를 생성하는 리소스의 ARN 목록을 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 파라미터를 포함해야 합니다. 이를 간소화하기 위해 새로 만드는 대신 를 Statement BE로 직접 업데이트할 수 있습니다. AWSLogDeliveryAclCheck “Action”: [“s3:GetBucketAcl”, “s3:ListBucket”]

Amazon S3 버킷 서버 측 암호화

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

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

주의

SSE-KMS를 선택하는 경우 고객 관리 키를 사용해야 합니다. 이 시나리오에서는 키 사용이 지원되지 않기 때문입니다. AWS 관리형 키 AWS 관리 키를 사용하여 암호화를 설정하는 경우 로그는 읽을 수 없는 형식으로 전달됩니다.

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

SSE-KMS를 선택하는 경우 고객 관리 키를 사용해야 합니다. 이 시나리오에서는 AWS 관리 키 사용이 지원되지 않기 때문입니다. 고객 관리 AWS KMS 키를 사용하는 경우 버킷 암호화를 활성화할 때 고객 관리 키의 Amazon 리소스 이름 (ARN) 을 지정할 수 있습니다. 다음을 고객 관리 키의 키 정책 (S3 버킷의 버킷 정책이 아님) 에 추가하여 로그 전송 계정이 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:*" ] } } }

의 경우aws:SourceAccount, 로그가 이 버킷으로 전송되는 계정 ID 목록을 지정하십시오. aws:SourceArn에 대해 로그를 생성하는 리소스의 ARN 목록을 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" } ] }

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

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

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

콘솔별 권한

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

{ "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":"*" } ] }