Amazon WorkMail におけるデータ保護
AWS 責任共有モデル
データを保護するため、「AWS アカウント」 認証情報を保護し、「AWS IAM Identity Center」 または 「AWS Identity and Access Management」 (IAM) を使用して個々のユーザーをセットアップすることをお勧めします。この方法により、それぞれのジョブを遂行するために必要な権限のみが各ユーザーに付与されます。また、次の方法でデータを保護することもお勧めします:
-
各アカウントで多要素認証 (MFA) を使用します。
-
SSL/TLS を使用して 「AWS」 リソースと通信します。TLS 1.2 が必須で、TLS 1.3 をお勧めします。
-
AWS CloudTrail で API とユーザーアクティビティロギングを設定します。CloudTrail 証跡を使用して AWS アクティビティをキャプチャする方法については、「AWS CloudTrail ユーザーガイド」の「CloudTrail 証跡の使用」を参照してください。
-
AWS のサービス 内のすべてのデフォルトセキュリティコントロールに加え、AWS 暗号化ソリューションを使用します。
-
Amazon Macie などの高度な管理されたセキュリティサービスを使用します。これらは、Amazon S3 に保存されている機密データの検出と保護を支援します。
-
コマンドラインインターフェイスまたは API を使用して 「AWS」 にアクセスする際に FIPS 140-3 検証済みの暗号化モジュールが必要な場合は、FIPS エンドポイントを使用します。利用可能な FIPS エンドポイントの詳細については、「連邦情報処理規格 (FIPS) 140-3
」を参照してください。
お客様の E メールアドレスなどの極秘または機密情報を、タグ、または [名前] フィールドなどの自由形式のテキストフィールドに含めないことを強くお勧めします。これには、コンソール、API、AWS CLI、または AWS SDK を使用して Amazon WorkMail または他の AWS のサービス を操作する場合が含まれます。タグ、または名前に使用される自由記述のテキストフィールドに入力したデータは、請求または診断ログに使用される場合があります。外部サーバーに URL を提供する場合、そのサーバーへのリクエストを検証できるように、認証情報を URL に含めないことを強くお勧めします。
Amazon WorkMail が AWS KMS を使用する方法
Amazon WorkMail は、メッセージがディスクに書き込まれる前に、すべての Amazon WorkMail 組織のメールボックス内のすべてのメッセージを透過的に暗号化し、ユーザーがアクセスしたときにメッセージを透過的に復号化します。暗号化は無効にできません。メッセージを保護する暗号化キーを保護するために、Amazon WorkMail は AWS Key Management Service (AWS KMS) と統合されています。
Amazon WorkMail には、ユーザーが 署名付きまたは暗号化された E メールを送信できるようにするオプションもあります。この暗号化機能は AWS KMS を使用していません。詳細については、「署名または暗号化された E メールの有効化」を参照してください。
Amazon WorkMail の暗号化
Amazon WorkMail では、各組織には、組織内のユーザーごとに 1 つずつ、複数のメールボックスを含めることができます。E メール、カレンダーの項目などのすべてのメッセージはユーザーのメールボックスに保存されます。
Amazon WorkMail 組織内のメールボックスの内容を保護するために、Amazon WorkMail はすべてのメールボックスメッセージをディスクに書き込む前に暗号化します。お客様から提供された情報がプレーンテキストで保存されることはありません。
各メッセージは、一意のデータ暗号化キーで暗号化されます。メッセージキーは、そのメールボックスでのみ使用される一意の暗号化キーであるメールボックスキーで保護されています。メールボックスキーは、組織の AWS KMS カスタマーマスターキー (CMK) で暗号化されるため、AWS KMS が暗号化されないまま残されることは決してありません。次の図では、AWS KMS における、暗号化されたメッセージ、暗号化されたメッセージキー、暗号化されたメールボックスキー、組織の CMK の関係を示しています。
組織の CMK を設定する
Amazon WorkMail 組織を作成するときに、その組織の AWS KMS カスタマーマスターキー (CMK) を選択できます。この CMK は組織内のすべてのメールボックスキーを保護します。
Amazon WorkMail 用のデフォルト AWS マネージド CMK、またはお客様が所有および 管理するカスタマーマネージド CMK を選択できます。詳細については、AWS Key Management Service デベロッパーガイドのカスタマーマスターキー (CMK) を参照してください。各組織に同じ CMK を使用するか異なる CMK を使用するかを選択できますが、一度選択した CMK を変更することはできません。
重要
Amazon WorkMail は、対称型 CMK のみをサポートします。非対称 CMK を使用することはできません。CMK が対称か非対称かを判断する方法については、AWS Key Management Service デベロッパーガイドの対称と非対称 CMK の識別を参照してください。
組織の CMK を見つけるには、AWS CloudTrail への呼び出しを記録する AWS KMS ログエントリを使用します。
各メールボックスの一意の暗号化キー
メールボックスを作成すると、Amazon WorkMail は AWS KMS の外部で、メールボックスの一意の 256 ビット Advanced Encryption Standard
メールボックスキーを保護するために、Amazon WorkMail は AWS KMS を呼び出し、組織の CMK でメールボックスキーを暗号化します。その後、メールボックスのメタデータに暗号化されたメールボックスキーを保存します。
注記
Amazon WorkMail は、対称メールボックス暗号化キーを使用してメッセージキーを保護します。以前は、Amazon WorkMail は各メールボックスを非対称キーペアで保護していました。パブリックキーを使用して各メッセージキーを暗号化し、プライベートキーで復号していました。プライベートメールボックスキーは組織の CMK で保護されていました。古いメールボックスは非対称メールボックスkey pair を使用している場合があります。この変更により、メールボックスやそのメッセージのセキュリティに影響が生じることはありません。
各メッセージを暗号化する。
ユーザーがメールボックスにメッセージを追加すると、Amazon WorkMail は AWS KMS の外部で、メッセージに対して一意の 256 ビット AES 対称暗号化キーを生成します。このメッセージキーを使用してメッセージを暗号化します。Amazon WorkMail は、メールボックスキーの下にメッセージキーを暗号化し、暗号化されたメッセージキーをメッセージとともに保存します。次に、組織の CMK でメールボックスキーを暗号化します。
新しいメールボックスの作成
Amazon WorkMail はメールボックスを作成するとき、次のプロセスを使用して、暗号化されたメッセージを保持するメールボックスを準備します。
-
Amazon WorkMail は、AWS KMS 以外のメールボックスに対して一意の 256 ビット AES 対称暗号化キーを生成します。
-
Amazon WorkMail は、AWS KMS Encrypt 演算を呼び出します。メールボックスキーと組織のカスタマーマスターキー (CMK) の識別子を渡します。AWS KMS は CMK で暗号化されたメールボックスキーの暗号化テキストを返します。
-
Amazon WorkMail は、暗号化されたメールボックスキーと、メールボックスのメタデータを保存します。
メールボックスメッセージの暗号化
メッセージを暗号化するために、Amazon WorkMail は次のプロセスを使用します。
-
Amazon WorkMail は、メッセージに対して一意の 256 ビット AES 対称キーを生成します。プレーンテキストのメッセージキーと Advanced Encryption Standard (AES) アルゴリズムを使用して、AWS KMS の外部でメッセージを暗号化します。
-
メールボックスキーの下でメッセージキーを保護するために、Amazon WorkMail はメールボックスキーを復号化する必要があります。メールボックスキーは常に暗号化された形式で保存されます。
Amazon WorkMail は、AWS KMS Decrypt 演算を呼び出し、暗号化されたメールボックスキーで渡します。AWS KMS は組織の CMK を使用してメールボックスキーを復号し、Amazon WorkMail にプレーンテキストのメールボックスキーを返します。
-
Amazon WorkMail は、プレーンテキストのメールボックスキーと Advanced Encryption Standard (AES) アルゴリズムを使用して、AWS KMS の外部でメッセージキーを暗号化します。
-
Amazon WorkMail は、暗号化されたメッセージのメタデータに暗号化されたメッセージキーを保存し、復号化できるようにします。
メールボックスメッセージの復号
メッセージを復号化するために、Amazon WorkMail は次のプロセスを使用します。
-
Amazon WorkMail は、AWS KMS Decrypt 演算を呼び出し、暗号化されたメールボックスキーで渡します。AWS KMS は組織の CMK を使用してメールボックスキーを復号し、Amazon WorkMail にプレーンテキストのメールボックスキーを返します。
-
Amazon WorkMail は、プレーンテキストのメールボックスキーと Advanced Encryption Standard (AES) アルゴリズムを使用して、AWS KMS の外部で暗号化されたメッセージキーを復号します。
-
Amazon WorkMail は、プレーンテキストのメッセージキーを使用して、暗号化されたメッセージを復号化します。
メールボックスキーのキャッシュ
パフォーマンスを改善し、AWS KMS への呼び出しを最小限に抑えるために、Amazon WorkMail は、各クライアントの各プレーンテキストのメールボックスキーを最大 1 分間ローカルにキャッシュします。キャッシュ期間の終了時に、メールボックスキーは削除されます。キャッシュ期間中にそのクライアントのメールボックスキーが必要な場合、Amazon WorkMail では AWS KMS を呼び出す代わりに、キャッシュからキーを取得できます。メールボックスキーはキャッシュで保護されており、プレーンテキストでディスクに書き込まれることはありません。
CMK の使用の許可
Amazon WorkMail が暗号化操作でカスタマーマスターキー (CMK) を使用する場合、メールボックス管理者の代わりに動作します。
代理として AWS KMS カスタマーマスターキー (CMK) を使用するには、管理者には次のアクセス許可が必要になります。IAM ポリシーまたはキーポリシーで、これらの必要なアクセス許可を指定できます。
-
kms:Encrypt -
kms:Decrypt -
kms:CreateGrant
Amazon WorkMail で発生するリクエストにのみ CMK が使用されるようにするには、kms:ViaService 条件キーを workmail. 値で使用します。<region>.amazonaws.com
また、暗号化オペレーションに CMK を使用する条件として、暗号化コンテキストでキーまたは値を使用することもできます。例えば、IAM またはキーポリシードキュメントで文字列条件演算子を使用したり、許可で許可制約を使用したりできます。
AWS 管理 CMK のキーポリシー
AWS マネージド CMK for Amazon WorkMail のキーポリシーでは、Amazon WorkMail がユーザーに代わってリクエストを行った場合にのみ、指定されたオペレーションに CMK を使用する許可がユーザーに与えられます。このキーポリシーでは、ユーザーが CMK を直接使用することは許可されません。
このキーポリシーは、すべての AWS 管理キーと同様に、サービスによって確立されます。キーポリシーは変更できませんが、いつでも表示できます。詳細については、AWS Key Management Service デベロッパーガイドのキーポリシーの表示を参照してください。
このキーポリシーのポリシーステートメントには次の効果があります
-
アカウントとリージョンのユーザーが暗号化操作に CMK を使用し、許可を作成することを許可します。ただし、リクエストが自分の Amazon WorkMail から送信された場合のみです。
kms:ViaService条件キーで、この制限を適用します。 -
AWS アカウントが、CMK プロパティを表示し、許可を取り消すことをユーザーに許可する IAM ポリシーを作成できるようにします。
以下は、AWS による Amazon WorkMail 用マネージド CMK キーポリシー例です。
Amazon WorkMail の認可に許可を使用する
Amazon WorkMail では、キーポリシーに加えて、権限を使用して、各組織の CMK にアクセス許可を追加します。アカウントの CMK の許可を表示するには、ListGrants 演算を使用します。
Amazon WorkMail は、権限を使用して、組織の CMK に次の権限を追加します。
-
Amazon WorkMail がメールボックスキーを暗号化することを
kms:Encrypt許可する権限を追加します。 -
Amazon WorkMail が CMK を使用してメールボックスキーを復号化できるようにする
kms:Decryptアクセス許可を追加します。Amazon WorkMail では、メールボックスメッセージを読み取るリクエストは、メッセージを読み取っているユーザーのセキュリティコンテキストを使用するため、許可でこのアクセス許可が必要です。リクエストは AWS アカウントの認証情報を使用しません。Amazon WorkMail は、組織の CMK を選択したときにこの権限を作成します。
許可を作成するために、Amazon WorkMail は、組織を作成したユーザーの代わりに CreateGrant を呼び出します。権限付与を作成するアクセス許可はキーポリシーから付与されます。このポリシーでは、Amazon WorkMail が承認されたユーザーの代わりにリクエストを行うときに、アカウントユーザーが組織の CMK を呼び出す CreateGrant ことができます。
また、キーポリシーはアカウントルートが AWS 管理キーで権限付与を解除することを許可します。ただし、許可を取り消すと、Amazon WorkMail はメールボックスの暗号化されたデータを復号化できません。
Amazon WorkMail 暗号化コンテキスト
暗号化コンテキストは、任意のシークレットデータを含まない、一連のキーと値のペアです。データを暗号化するリクエストに暗号化コンテキストを組み込むと、AWS KMS は暗号化コンテキストを暗号化されたデータに暗号化してバインドします。データを復号するには、同じ暗号化コンテキストに渡す必要があります。詳しくは、AWS Key Management Service デベロッパーガイドの Encryption context を参照してください。
Amazon WorkMail は、すべての AWS KMS 暗号化オペレーションで同じ暗号化コンテキスト形式を使用します。暗号化コンテキストを使用して、AWS CloudTrail などの監査レコードやログで、暗号化オペレーションを確認できます。また、ポリシーと許可で認可の条件として確認することもできます。
AWS KMS への Encrypt および Decrypt リクエストで、Amazon WorkMail は、キーが aws:workmail:arn、値が組織の Amazon リソースネーム (ARN) である暗号化コンテキストを使用します。
"aws:workmail:arn":"arn:aws:workmail:region:account ID:organization/organization-ID"
例えば、次の暗号化コンテキストには欧州 (アイルランド) (eu-west-1) リージョンの組織の ARN のサンプルが含まれています。
"aws:workmail:arn":"arn:aws:workmail:eu-west-1:111122223333:organization/m-a123b4c5de678fg9h0ij1k2lm234no56"
Amazon WorkMail と AWS KMS の対話をモニタリングする
AWS CloudTrail および Amazon CloudWatch Logs を使用して、Amazon WorkMail がユーザーに代わって AWS KMS に送信するリクエストを追跡できます。
Encrypt
メールボックスを作成すると、Amazon WorkMail はメールボックスキーを生成し、AWS KMS を呼び出してメールボックスキーを暗号化します。Amazon WorkMail はプレーンテキストのメールボックスキーと Amazon WorkMail 組織の CMK の識別子を使用して、Encrypt リクエストを AWS KMS に送信します。
Encrypt 演算を記録するイベントは、次のようなサンプルイベントになります。ユーザーは Amazon WorkMail サービスです。パラメータには、CMK ID (keyId) と Amazon WorkMail 組織の暗号化コンテキストが含まれます。Amazon WorkMail もメールボックスキーを渡しますが、CloudTrail ログには記録されません。
{ "eventVersion": "1.05", "userIdentity": { "type": "AWSService", "invokedBy": "workmail.eu-west-1.amazonaws.com" }, "eventTime": "2019-02-19T10:01:09Z", "eventSource": "kms.amazonaws.com", "eventName": "Encrypt", "awsRegion": "eu-west-1", "sourceIPAddress": "workmail.eu-west-1.amazonaws.com", "userAgent": "workmail.eu-west-1.amazonaws.com", "requestParameters": { "encryptionContext": { "aws:workmail:arn": "arn:aws:workmail:eu-west-1:111122223333:organization/m-a123b4c5de678fg9h0ij1k2lm234no56" }, "keyId": "arn:aws:kms:eu-west-1:111122223333:key/1a2b3c4d-5e6f-1a2b-3c4d-5e6f1a2b3c4d" }, "responseElements": null, "requestID": "76e96b96-7e24-4faf-a2d6-08ded2eaf63c", "eventID": "d5a59c18-128a-4082-aa5b-729f7734626a", "readOnly": true, "resources": [ { "ARN": "arn:aws:kms:eu-west-1:111122223333:key/1a2b3c4d-5e6f-1a2b-3c4d-5e6f1a2b3c4d", "accountId": "111122223333", "type": "AWS::KMS::Key" } ], "eventType": "AwsApiCall", "recipientAccountId": "111122223333", "sharedEventID": "d08e60f1-097e-4a00-b7e9-10bc3872d50c" }
Decrypt
メールボックスメッセージを追加、表示、削除すると、Amazon WorkMail は AWS KMS にメールボックスキーの復号を要求します。Amazon WorkMail は、暗号化されたメールボックスキーと Amazon WorkMail 組織の CMK の識別子を使用して、復号リクエストを AWS KMS に送信します。
Decrypt 演算を記録するイベントは、次のようなサンプルイベントになります。ユーザーは Amazon WorkMail サービスです。パラメータには (暗号化テキストの blob として) 暗号化メールボックスキーが含まれますが、ログ、および Amazon WorkMail 組織の暗号化コンテキストには記録されません。AWS KMS は暗号化テキストから CMK の ID を取得します。
{ "eventVersion": "1.05", "userIdentity": { "type": "AWSService", "invokedBy": "workmail.eu-west-1.amazonaws.com" }, "eventTime": "2019-02-20T11:51:10Z", "eventSource": "kms.amazonaws.com", "eventName": "Decrypt", "awsRegion": "eu-west-1", "sourceIPAddress": "workmail.eu-west-1.amazonaws.com", "userAgent": "workmail.eu-west-1.amazonaws.com", "requestParameters": { "encryptionContext": { "aws:workmail:arn": "arn:aws:workmail:eu-west-1:111122223333:organization/m-a123b4c5de678fg9h0ij1k2lm234no56" } }, "responseElements": null, "requestID": "4a32dda1-34d9-4100-9718-674b8e0782c9", "eventID": "ea9fd966-98e9-4b7b-b377-6e5a397a71de", "readOnly": true, "resources": [ { "ARN": "arn:aws:kms:eu-west-1:111122223333:key/1a2b3c4d-5e6f-1a2b-3c4d-5e6f1a2b3c4d", "accountId": "111122223333", "type": "AWS::KMS::Key" } ], "eventType": "AwsApiCall", "recipientAccountId": "111122223333", "sharedEventID": "241e1e5b-ff64-427a-a5b3-7949164d0214" }