기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
감사 로그를 사용하여 Amazon WorkMail 조직 사용에 대한 자세한 정보를 캡처할 수 있습니다. 감사 로그를 사용하여 사서함에 대한 사용자의 액세스를 모니터링하고, 의심스러운 활동을 감사하고, 액세스 제어 및 가용성 공급자 구성을 디버깅할 수 있습니다.
참고
AmazonWorkMailFullAccess 관리형 정책에는 로그 전송을 관리하는 데 필요한 모든 권한이 포함되어 있지 않습니다. 이 정책을 사용하여 WorkMail을 관리하는 경우 로그 전송을 구성하는 데 사용되는 보안 주체(예: 수임된 역할)에도 필요한 모든 권한이 있는지 확인합니다.
Amazon WorkMail은 감사 로그에 대해 CloudWatch Logs, Amazon S3 및 Amazon Data Firehose의 세 가지 전송 대상을 지원합니다. 자세한 내용은 Amazon CloudWatch Logs 사용 설명서의 추가 권한이 필요한 로깅[V2]을 참조하세요.
추가 권한 [V2]이 필요한 로깅 아래에 나열된 권한 외에도 Amazon WorkMail은 로그 전송을 구성하기 위한 추가 권한이 필요합니다workmail:AllowVendedLogDeliveryForResource
.
작동하는 로그 전송은 다음 세 가지 요소로 구성됩니다.
-
DeliverySource: 로그를 전송하는 리소스 또는 리소스를 나타내는 논리적 객체입니다. Amazon WorkMail의 경우 Amazon WorkMail 조직입니다.
-
실제 전송 대상을 나타내는 논리적 객체인 DeliveryDestination입니다.
-
전송 소스와 전송 대상을 연결하는 전송입니다.
Amazon WorkMail과 대상 간에 로그 전송을 구성하려면 다음을 수행할 수 있습니다.
-
PutDeliverySource를 사용하여 전송 소스를 생성합니다.
-
PutDeliveryDestination을 사용하여 전송 대상을 생성합니다.
-
교차 계정을 로그로 전송하는 경우 대상 계정의 PutDeliveryDestinationPolicy를 사용하여 대상에 IAM 정책을 할당해야 합니다. 이 정책은 계정 A의 전송 소스에서 계정 B의 전송 대상으로의 전송을 생성할 수 있는 권한을 부여합니다.
-
CreateDelivery를 사용하여 정확히 하나의 전송 소스와 하나의 전송 대상을 페어링하여 전송을 생성합니다.
다음 섹션에서는 로그인 시 각 대상 유형에 대한 로그 전송을 설정하기 위해 보유해야 하는 권한의 세부 정보를 제공합니다. 이러한 권한은 로그인한 IAM 역할에 부여할 수 있습니다.
중요
로그 생성 리소스를 삭제한 후 로그 전송 리소스를 제거하는 것은 사용자의 책임입니다.
로그 생성 리소스를 삭제한 후 로그 전송 리소스를 제거하려면 다음 단계를 따르세요.
-
DeleteDelivery 작업을 사용하여 전송을 삭제합니다.
-
DeliverySource 작업을 사용하여 DeliverySource를 삭제합니다. DeleteDeliverySource
-
방금 삭제한 DeliverySource와 연결된 DeliveryDestination이이 특정 DeliverySource에만 사용되는 경우 DeleteDeliveryDestinations 작업을 사용하여 제거할 수 있습니다.
Amazon WorkMail 콘솔을 사용하여 감사 로깅 구성
Amazon WorkMail 콘솔에서 감사 로깅을 구성할 수 있습니다.
-
https://console.aws.amazon.com/workmail/
에서 Amazon WorkMail 콘솔을 엽니다. 필요한 경우 AWS 리전을 변경합니다. 콘솔 창 상단의 막대에서 리전 선택 목록을 열고 리전을 선택합니다. 자세한 내용은Amazon Web Services 일반 참조의 Regions and endpoints를 참조하세요.
-
탐색 창에서 조직을 선택한 다음 조직의 이름을 선택합니다.
로깅 설정을 선택합니다.
감사 로그 설정 탭을 선택합니다.
적절한 위젯을 사용하여 필요한 로그 유형에 대한 전송을 구성합니다.
-
저장(Save)을 선택합니다.
CloudWatch Logs로 전송된 로그
사용자 권한
CloudWatch Logs로 로그를 전송하려면 다음 권한으로 로그인해야 합니다.
{
"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
권한이 있는 경우는 로그를 CloudWatch Logs로 보내기 시작할 때 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 Logs 리소스 정책은 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:GetBucketPolicy
및 S3: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
지정합니다. 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
파라미터를 포함해야 합니다. 이를 간소화하기 위해 새를 생성하는 대신를 AWSLogDeliveryAclCheck
로 직접 업데이트할 Statement
수 있습니다“Action”: [“s3:GetBucketAcl”, “s3:ListBucket”]
.
Amazon S3 버킷 서버 측 암호화
Amazon S3 관리형 키를 사용한 서버 측 암호화(SSE-S3) 또는에 저장된 AWS KMS 키를 사용한 서버 측 암호화 AWS Key Management Service (SSE-KMS)를 활성화하여 Amazon S3-managed3 버킷의 데이터를 보호할 수 있습니다. 자세한 내용은 서버 측 암호화를 사용하여 데이터 보호를 참조하세요.
SSE-S3를 선택하면 추가 구성이 필요하지 않습니다. Amazon S3는 암호화 키를 처리합니다.
주의
SSE-KMS를 선택하는 경우 AWS 관리형 키 이 시나리오에서는를 사용할 수 없으므로 고객 관리형 키를 사용해야 합니다. AWS 관리형 키를 사용하여 암호화를 설정하면 로그가 읽을 수 없는 형식으로 전송됩니다.
고객 관리형 AWS KMS 키를 사용하는 경우 버킷 암호화를 활성화할 때 고객 관리형 키의 Amazon 리소스 이름(ARN)을 지정할 수 있습니다. 로그 전송 계정이 S3S3 버킷에 쓸 수 있도록 고객 관리형 키의 키 정책(S3 버킷의 버킷 정책 아님)에 다음을 추가합니다.
SSE-KMS를 선택하는 경우이 시나리오에서는 관리형 키 사용이 지원되지 않으므로 고객 AWS 관리형 키를 사용해야 합니다. 고객 관리형 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
지정합니다. 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"
}
]
}
이 서비스 연결 역할은 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":"*"
}
]
}