本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
啟用稽核記錄
您可以使用稽核日誌來擷取 Amazon WorkMail 組織用量的詳細資訊。稽核日誌可用來監控使用者對信箱的存取、稽核可疑活動,以及偵錯存取控制和可用性提供者組態。
AmazonWorkMailFullAccess 受管政策不包含管理日誌交付所需的所有必要許可。如果您使用此政策來管理 WorkMail,請確定用於設定日誌交付的委託人 (例如,擔任的角色) 也具有所有必要的許可。
Amazon WorkMail 支援稽核日誌的三個交付目的地:CloudWatch Logs、Amazon S3 和 Amazon Data Firehose。如需詳細資訊,請參閱《Amazon CloudWatch Logs 使用者指南》中的需要額外許可 【V2】 的記錄。
除了在需要其他許可 【V2】 的記錄下列出的許可之外,Amazon WorkMail 還需要額外的許可來設定日誌交付:workmail:AllowVendedLogDeliveryForResource。
工作日誌交付包含三個元素:
若要設定 Amazon WorkMail 與目的地之間的日誌交付,您可以執行下列動作:
下列各節提供您在登入時必須擁有的許可詳細資訊,以設定將日誌交付至每種類型的目的地。您可以將這些許可授予您登入的 IAM 角色。
若要在刪除日誌產生資源後移除日誌交付資源,請遵循下列步驟。
使用 Amazon WorkMail 主控台設定稽核記錄
您可以在 Amazon WorkMail 主控台中設定稽核記錄:
傳送至 CloudWatch Logs 的日誌
使用者許可
若要啟用傳送日誌至 CloudWatch Logs,您登入時必須具有以下許可。
- JSON
-
-
{
"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:us-east-1:111122223333:delivery:*",
"arn:aws:logs:us-east-1:111122223333:delivery-source:*",
"arn:aws:logs:us-east-1:111122223333: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:us-east-1:111122223333:*"
]
},
{
"Sid": "AllowLogDeliveryForWorkMail",
"Effect": "Allow",
"Action": [
"workmail:AllowVendedLogDeliveryForResource"
],
"Resource": [
"arn:aws:workmail:us-east-1:111122223333:organization/organization-id"
]
}
]
}
日誌群組和資源政策
日誌送往的日誌群組必須具有包含特定許可的資源政策。如果日誌群組目前沒有資源政策,且設定日誌的使用者具有日誌群組的 logs:PutResourcePolicy、 logs:DescribeResourcePolicies和 logs:DescribeLogGroups許可,則 AWS會在您開始將日誌傳送至 CloudWatch Logs 時自動為其建立下列政策。
- JSON
-
-
{
"Version":"2012-10-17",
"Statement": [
{
"Sid": "AWSLogDeliveryWrite20150319",
"Effect": "Allow",
"Principal": {
"Service": [
"delivery.logs.amazonaws.com"
]
},
"Action": [
"logs:CreateLogStream",
"logs:PutLogEvents"
],
"Resource": [
"arn:aws:logs:us-east-1:111122223333:log-group:my-log-group:log-stream:*"
],
"Condition": {
"StringEquals": {
"aws:SourceAccount": [
"111122223333"
]
},
"ArnLike": {
"aws:SourceArn": [
"arn:aws:logs:us-east-1:111122223333:*"
]
}
}
}
]
}
日誌群組資源政策大小限制考量
這些服務必須在資源政策中列出其將日誌傳送至其中的每個日誌群組。CloudWatch Logs 資源政策限制為 5,120 個字元。將日誌傳送至大量日誌群組的服務可能會達到此限制。
為了緩解這種情況,CloudWatch Logs 會監控傳送日誌的 服務所使用的資源政策大小。當偵測到政策接近 5,120 個字元的大小限制時,CloudWatch Logs 會在該服務的資源政策/aws/vendedlogs/*中自動啟用 。然後,您就可以開始使用名稱開頭為 /aws/vendedlogs/ 的日誌群組,作為這些服務的日誌目的地。
傳送至 Amazon S3 的日誌
使用者許可
若要啟用傳送日誌至 Amazon S3,您登入時必須具有以下許可。
- JSON
-
-
{
"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:us-east-1:111122223333:delivery:*",
"arn:aws:logs:us-east-1:111122223333:delivery-source:*",
"arn:aws:logs:us-east-1:111122223333: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:us-east-1:111122223333:organization/organization-id"
]
}
]
}
日誌送往的 S3 儲存貯體必須具有包含特定許可的資源政策。如果儲存貯體目前沒有資源政策,且設定記錄的使用者具有儲存貯體的 S3:GetBucketPolicy和 S3:PutBucketPolicy許可,則AWS 會在您開始將日誌傳送至 Amazon S3 時自動為其建立下列政策。
- JSON
-
-
{
"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:us-east-1:111122223333:delivery-source:*"
]
}
}
},
{
"Sid": "AWSLogDeliveryWrite",
"Effect": "Allow",
"Principal": {
"Service": "delivery.logs.amazonaws.com"
},
"Action": "s3:PutObject",
"Resource": "arn:aws:s3:::my-bucket/AWSLogs/111122223333/*",
"Condition": {
"StringEquals": {
"s3:x-amz-acl": "bucket-owner-full-control",
"aws:SourceAccount": [
"account-id"
]
},
"ArnLike": {
"aws:SourceArn": [
"arn:aws:logs:us-east-1:111122223333:delivery-source:*"
]
}
}
}
]
}
在先前的政策中,針對 aws:SourceAccount,指定要交付日誌至此儲存貯體的帳戶 IDs 清單。對於 aws:SourceArn,指定產生日誌之資源的 ARN 清單,格式為 arn:aws:logs:source-region:source-account-id:*。
如果儲存貯體具有資源政策,但該政策不包含先前政策中顯示的陳述式,且設定記錄的使用者具有儲存貯體的 S3:GetBucketPolicy和 S3:PutBucketPolicy許可,則該陳述式會附加到儲存貯體的資源政策。
在某些情況下,AWS CloudTrail如果s3:ListBucket許可尚未授予 ,您可能會在 中看到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-managed金鑰 (SSE-S3) 啟用伺服器端加密,或使用存放在 AWS Key Management Service(SSE-KMS) 中的AWS KMS金鑰啟用伺服器端加密,來保護 Amazon S3 儲存貯體中的資料。如需詳細資訊,請參閱使用伺服器端加密保護資料。
如果您選擇 SSE-S3,則不需要其他組態。Amazon S3 會處理加密金鑰。
如果您選擇 SSE-KMS,您必須使用客戶受管金鑰,因為此案例AWS 受管金鑰不支援使用 。如果您使用 AWS受管金鑰設定加密,日誌將以無法讀取的格式交付。
當您使用客戶受管AWS KMS金鑰時,您可以在啟用儲存貯體加密時指定客戶受管金鑰的 Amazon Resource Name (ARN)。將以下內容新增至客戶受管金鑰的金鑰政策 (而非 S3 儲存貯體的儲存貯體政策),以便日誌交付帳戶可以寫入 S3 儲存貯體。
如果您選擇 SSE-KMS,您必須使用客戶受管金鑰,因為此案例不支援使用AWS受管金鑰。當您使用客戶受管AWS KMS金鑰時,您可以在啟用儲存貯體加密時指定客戶受管金鑰的 Amazon Resource Name (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,指定要交付日誌至此儲存貯體的帳戶 IDs 清單。對於 aws:SourceArn,指定產生日誌之資源的 ARN 清單,格式為 arn:aws:logs:source-region:source-account-id:*。
傳送至 Firehose 的日誌
使用者許可
若要啟用傳送日誌至 Firehose,您必須使用以下許可登入。
- JSON
-
-
{
"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:us-east-1:111122223333:delivery:*",
"arn:aws:logs:us-east-1:111122223333:delivery-source:*",
"arn:aws:logs:us-east-1:111122223333: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:us-east-1:111122223333:deliverystream/*"
]
},
{
"Sid": "CreateServiceLinkedRole",
"Effect": "Allow",
"Action": [
"iam:CreateServiceLinkedRole"
],
"Resource": "arn:aws:iam::111122223333:role/aws-service-role/delivery.logs.amazonaws.com/AWSServiceRoleForLogDelivery"
},
{
"Sid": "AllowLogDeliveryForWorkMail",
"Effect": "Allow",
"Action": [
"workmail:AllowVendedLogDeliveryForResource"
],
"Resource": [
"arn:aws:workmail:us-east-1:111122223333:organization/organization-id"
]
}
]
}
用於資源許可的 IAM 角色
由於 Firehose 不使用資源政策,因此 會在設定將這些日誌傳送至 Firehose AWS時使用 IAM 角色。 會AWS建立名為 的服務連結角色AWSServiceRoleForLogDelivery。此服務連結角色包含下列許可。
此服務連結角色會針對LogDeliveryEnabled標籤設為 的所有 Firehose 交付串流授予許可true。當您設定記錄時,會將此標籤AWS提供給目的地交付串流。
此服務連結角色也有信任政策,以允許 delivery.logs.amazonaws.com 服務委託人擔任所需的服務連結角色。該信任政策如下:
- JSON
-
-
{
"Version":"2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": "delivery.logs.amazonaws.com"
},
"Action": "sts:AssumeRole"
}
]
}
主控台特定許可
除了先前章節中列出的許可之外,如果您使用主控台而非 APIs設定日誌交付,您也需要下列許可:
- JSON
-
-
{
"Version":"2012-10-17",
"Statement": [
{
"Sid": "AllowLogDeliveryActions",
"Effect": "Allow",
"Action": [
"firehose:DescribeDeliveryStream",
"s3:ListBucket",
"s3:GetBucketLocation"
],
"Resource": [
"arn:aws:logs:us-east-1:111122223333:log-group:*",
"arn:aws:firehose:us-east-1:111122223333:deliverystream/*",
"arn:aws:s3:::*"
]
},
{
"Sid": "ListAccessForDeliveryDestinations",
"Effect": "Allow",
"Action": [
"logs:DescribeLogGroups",
"firehose:ListDeliveryStreams",
"s3:ListAllMyBuckets"
],
"Resource": "*"
}
]
}