기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
감사 로깅 활성화
감사 로그를 사용하여 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 역할에 부여할 수 있습니다.
중요
로그 생성 리소스를 삭제한 후 로그 전송 리소스를 제거하는 것은 사용자의 책임입니다.
로그 생성 리소스를 삭제한 후 로그 전송 리소스를 제거하려면 다음 단계를 따르세요.
-
작업을 사용하여 배달을 삭제합니다. DeleteDelivery
-
DeleteDeliverySource작업을 DeliverySource사용하여 삭제합니다.
-
방금 삭제한 DeliveryDestinationDeliverySource항목과 관련된 항목이 이 특정 DeliverySource항목에만 사용되는 경우 DeleteDeliveryDestinations작업을 사용하여 제거할 수 있습니다.
Amazon WorkMail 콘솔을 사용하여 감사 로깅 구성
Amazon WorkMail 콘솔에서 감사 로깅을 구성할 수 있습니다.
-
https://console.aws.amazon.com/workmail/
에서 아마존 WorkMail 콘솔을 엽니다. 필요한 경우 AWS 지역을 변경하십시오. 콘솔 창 상단의 표시줄에서 지역 선택 목록을 열고 지역을 선택합니다. 자세한 내용은Amazon Web Services 일반 참조의 Regions and endpoints를 참조하세요.
-
탐색 창에서 조직을 선택한 다음 조직의 이름을 선택합니다.
로깅 설정을 선택합니다.
감사 로그 설정 탭을 선택합니다.
적절한 위젯을 사용하여 필요한 로그 유형에 대한 전달을 구성합니다.
-
저장을 선택합니다.
로그로 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:GetBucketPolicy
및 S3: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:GetBucketPolicy
및 S3: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":"*" } ] }