啟用稽核記錄 - Amazon WorkMail

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

啟用稽核記錄

您可以使用稽核日誌擷取有關 Amazon WorkMail 組織使用情況的詳細資訊。稽核記錄檔可用來監視使用者對信箱的存取、稽核可疑活動,以及偵錯存取控制和可用性提供者組態。

注意

AmazonWorkMailFullAccess受管理的策略不包括管理日誌傳遞的所有必要權限。如果您使用此原則來管理 WorkMail,請確定用來設定記錄傳送的主參與者 (例如,假設的角色) 也具有所有必要的權限。

Amazon WorkMail 支援稽核日誌的三個交付目的地: CloudWatch 日誌、Amazon S3 和 Amazon 資料 Firehose。如需詳細資訊,請參閱 Amazon CloudWatch 日誌使用者指南中的需要其他許可的記錄 [V2]

除了需要額外許可 [V2] 的記錄下列出的許可外,Amazon 還 WorkMail 需要額外的權限才能設定日誌傳遞:workmail:AllowVendedLogDeliveryForResource

工作記錄傳送包含三個元素:

  • DeliverySource,代表傳送記錄的資源或資源的邏輯物件。對於 Amazon 來說 WorkMail,這是 Amazon WorkMail 組織。

  • A DeliveryDestination,這是代表實際傳遞目的地的邏輯物件。

  • ,將傳送來源連接至傳送目的地。

若要設定 Amazon WorkMail 和目的地之間的日誌傳遞,您可以執行下列動作:

  • 使用建立傳送來源PutDeliverySource

  • 使用建立傳送目的地PutDeliveryDestination

  • 如果您要跨帳戶交付記錄,則必須PutDeliveryDestinationPolicy在目標帳戶中使用,將 IAM 政策指派給目的地。此原則授權從帳戶 A 中的傳遞來源建立傳遞至帳戶 B 中的傳送目的地。

  • 使用將一個傳送來源和一個傳送目的地完全配對,以建立傳送CreateDelivery

以下各節提供登入時必須擁有的權限詳細資料,以便設定每種目的地類型的記錄傳遞。您可以將這些權限授與您登入的 IAM 角色。

重要

您有責任在刪除記錄產生資源之後移除記錄傳遞資源。

若要在刪除記錄產生資源之後移除記錄傳遞資源,請依照下列步驟執行。

  1. 使用DeleteDelivery作業刪除傳送

  2. 使用DeliverySourceDeleteDeliverySource業刪除。

  3. 如果DeliveryDestination與您剛剛刪除的DeliverySource相關聯僅用於此特定內容 DeliverySource,則可以使用該DeleteDeliveryDestinations操作將其刪除。

使用 Amazon WorkMail 主控台設定稽核記錄

您可以在 Amazon WorkMail 主控台中設定稽核記錄:

  1. https://console.aws.amazon.com/workmail/ 打開 Amazon WorkMail 控制台。

    如有必要,請變更「 AWS 區域」。在主控台視窗頂端的列中,開啟 [選取地區] 清單,然後選取 [區域]。如需詳細資訊,請參閱 Amazon Web Services 一般參考 中的 區域與端點

  2. 在導覽窗格中,選擇「組 Organ izations」,然後選擇組織的名稱。

  3. 選擇 [記錄設定]

  4. 選擇 [稽核記錄設定] 索引標籤。

  5. 使用適當的 Widget 設定所需記錄類型的傳送。

  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:PutResourcePolicylogs:DescribeResourcePolicies、和logs:DescribeLogGroups權限,則當您開始將記錄檔傳送至記 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 個字元。將記錄檔傳送至大量記錄群組的服務可能會遇到此限制。

為了減輕此問題, CloudWatch Logs 會監視傳送記錄檔之服務所使用的資源策略大小。當偵測到原則接近 5,120 個字元的大小限制時, CloudWatch 記錄檔會自動/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:*" ] } } } ] }

在先前的策略中aws:SourceAccount,針對指定要傳送至此儲存貯體的記錄檔之帳號 ID 清單。對於 aws:SourceArn,指定產生日誌之資源的 ARN 清單,格式為 arn:aws:logs:source-region:source-account-id:*

如果值區具有資源策略,但該政策未包含先前政策中顯示的陳述式,且設定記錄的使用者擁有值區的S3:GetBucketPolicyS3:PutBucketPolicy權限,則該陳述式會附加至值區的資源策略。

注意

在某些情況下, AWS CloudTrail 如果未授予s3:ListBucket權限,您可能會在中看到AccessDenied錯誤訊息delivery.logs.amazonaws.com。若要避免 CloudTrail記錄中出現這些錯誤,您必須將s3:ListBucket權限授與delivery.logs.amazonaws.com。此外,您還必須包含與上述儲存貯體策略中設定s3:GetBucketAcl權限一起顯示的Condition參數。為了簡化此操作,您可以直接將其更新AWSLogDeliveryAclCheckStatement,而不是創建新的“Action”: [“s3:GetBucketAcl”, “s3:ListBucket”]

Amazon S3 儲存貯體伺服器端加密

您可以使用 Amazon S3 受管金鑰 (SSE-S3) 啟用伺服器端加密,或使用存放在 (SSE-KMS) 的伺服器端加密來保護 Amazon S3 儲存貯體中的資 AWS Key Management Service 料。 AWS KMS 如需詳細資訊,請參閱使用伺服器端加密保護資料

如果您選擇 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 不使用資源政策, AWS 因此在設定這些記錄檔以傳送至 Firehose 時,會使用 IAM 角色。 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" } ] }

主機特定權限

除了上一節所列的權限之外,如果您要使用主控台而非 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":"*" } ] }