監査ログを有効にする - Amazon WorkMail

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

監査ログを有効にする

監査ログを使用して、Amazon WorkMail 組織の使用状況に関する詳細情報を取得できます。監査ログは、メールボックスへのユーザーのアクセスの監視、不審なアクティビティの監査、アクセス制御と可用性プロバイダーの構成のデバッグに使用できます。

注記

AmazonWorkMailFullAccess管理ポリシーには、ログ配信の管理に必要な権限がすべて含まれているわけではありません。このポリシーを使用して管理する場合は WorkMail、ログ配信の設定に使用するプリンシパル (引き受けたロールなど) にも必要な権限がすべてあることを確認してください。

Amazon WorkMail では、監査ログの配信先として、 CloudWatch ログ、Amazon S3、Amazon Data Firehose という 3 つの宛先をサポートしています。詳細については、Amazon CloudWatch Logs ユーザーガイドの追加の権限を必要とするロギング [V2]」を参照してください。

追加の権限を必要とする [V2] の「ロギング」に記載されている権限に加えて、Amazon WorkMail ではログ配信を設定するための追加の権限が必要です。workmail:AllowVendedLogDeliveryForResource

作業ログ配信は次の 3 つの要素で構成されます。

  • DeliverySource、ログを送信する 1 つまたは複数のリソースを表す論理オブジェクト。Amazon にとっては WorkMail、Amazon WorkMail 組織です。

  • A はDeliveryDestination、実際の配送先を表す論理オブジェクトです。

  • デリバリー:配信元と配信先を接続します。

Amazon WorkMail と送信先間のログ配信を設定するには、次の操作を行います。

  • で配信元を作成しますPutDeliverySource

  • で配信先を作成しますPutDeliveryDestination

  • ログをクロスアカウントに配信する場合は、PutDeliveryDestinationPolicy宛先アカウントでを使用して IAM ポリシーを宛先に割り当てる必要があります。このポリシーは、アカウント A の配信元からアカウント B の配信先への配信の作成を許可します。

  • を使用してCreateDelivery、1 つの配信元と 1 つの配信先だけを組み合わせて配信を作成します。

以下のセクションでは、各送信先へのログ配信を設定するためにサインインするときに必要な権限の詳細を説明します。これらの権限は、サインインに使用する IAM ロールに付与できます。

重要

ログ生成リソースを削除した後は、ログ配信リソースを削除する責任があります。

ログ生成リソースを削除した後でログ配信リソースを削除するには、次の手順に従います。

  1. オペレーションを使用してデリバリーを削除しますDeleteDelivery

  2. DeliverySourceDeleteDeliverySourceオペレーションを使用して削除します。

  3. DeliveryDestinationDeliverySource削除したばかりの関連付けがこの特定の目的にのみ使用されている場合はDeliverySourceDeleteDeliveryDestinationsオペレーションを使用して削除できます。

Amazon WorkMail コンソールを使用して監査ログを設定する

Amazon WorkMail コンソールで監査ログを設定できます。

  1. https://console.aws.amazon.com/workmail/ で Amazon WorkMail コンソールを開きます。

    必要に応じて、 AWS リージョンを変更してください。コンソールウィンドウ上部のバーで [Select a Region] リストを開き、リージョンを選択します。詳細については、「Amazon Web Services 全般のリファレンス」の「リージョンとエンドポイント」を参照してください。

  2. ナビゲーションペインで [組織] を選択し、組織の名前を選択します。

  3. [ログ設定] を選択します。

  4. 監査ログ設定」タブを選択します。

  5. 適切なウィジェットを使用して、必要なログタイプの配信を設定します。

  6. [保存] を選択します。

ログは Logs に送信されます。 CloudWatch

ユーザーアクセス許可

Logs 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:DescribeResourcePolicieslogs:DescribeLogGroups権限を持っている場合、ログをログに送信し始めると、 AWS そのロググループに対して以下のポリシーが自動的に作成されます。 CloudWatch

{ "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 文字のサイズ制限に近づいていることを検出すると、/aws/vendedlogs/*そのサービスのリソースポリシーで CloudWatch Logs が自動的に有効になります。その後、/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:PutBucketPolicyロギングを設定しているユーザーがバケットに対する権限を持っている場合は、Amazon S3 にログを送信し始めると、 AWS そのバケットに対して以下のポリシーが自動的に作成されます。S3:GetBucketPolicy

{ "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:SourceAccountaws:SourceArn には、ログを生成するリソースの ARN のリストを arn:aws:logs:source-region:source-account-id:* の形式で指定します。

バケットにリソースポリシーがあっても、そのポリシーに前のポリシーに示されたステートメントが含まれておらず、S3:PutBucketPolicyロギングを設定しているユーザーがそのバケットに対する権限を持っている場合、そのステートメントはバケットのリソースポリシーに追加されます。S3:GetBucketPolicy

注記

AWS CloudTrail s3:ListBucketアクセス権限が付与されていないと、AccessDeniedエラーが表示されることがあります。delivery.logs.amazonaws.com CloudTrailログにこのようなエラーが記録されないようにするには、s3:ListBucketにアクセス許可を付与する必要がありますdelivery.logs.amazonaws.com。また、Conditions3:GetBucketAcl前述のバケットポリシーで設定した権限に示されているパラメータも含める必要があります。これを効率化するために、新しいものを作成する代わりにStatementAWSLogDeliveryAclCheckを直接に更新することもできます。“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" } ] }

このサービスにリンクされたロールは、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":"*" } ] }