本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
啟用稽核記錄
您可以使用稽核日誌擷取有關 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 角色。
重要
您有責任在刪除記錄產生資源之後移除記錄傳遞資源。
若要在刪除記錄產生資源之後移除記錄傳遞資源,請依照下列步驟執行。
-
使用DeleteDelivery作業刪除傳送。
-
使用DeliverySource作DeleteDeliverySource業刪除。
-
如果DeliveryDestination與您剛剛刪除的DeliverySource相關聯僅用於此特定內容 DeliverySource,則可以使用該DeleteDeliveryDestinations操作將其刪除。
使用 Amazon WorkMail 主控台設定稽核記錄
您可以在 Amazon WorkMail 主控台中設定稽核記錄:
-
在 https://console.aws.amazon.com/workmail/
打開 Amazon WorkMail 控制台。 如有必要,請變更「 AWS 區域」。在主控台視窗頂端的列中,開啟 [選取地區] 清單,然後選取 [區域]。如需詳細資訊,請參閱 Amazon Web Services 一般參考 中的 區域與端點。
-
在導覽窗格中,選擇「組 Organ izations」,然後選擇組織的名稱。
選擇 [記錄設定]。
選擇 [稽核記錄設定] 索引標籤。
使用適當的 Widget 設定所需記錄類型的傳送。
-
選擇儲存。
傳送至記錄 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
權限,則當您開始將記錄檔傳送至記 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: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:*" ] } } } ] }
在先前的策略中aws:SourceAccount
,針對指定要傳送至此儲存貯體的記錄檔之帳號 ID 清單。對於 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 受管金鑰 (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":"*" } ] }