保管中の暗号化 - Amazon Managed Service for Prometheus

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

保管中の暗号化

デフォルトでは、Amazon Managed Service for Prometheus は保管時の暗号化を自動的に提供し、 AWS 所有の暗号化キーを使用してこれを行います。

  • AWS 所有キー – Amazon Managed Service for Prometheus は、これらのキーを使用して、ワークスペースにアップロードされたデータを自動的に暗号化します。 AWS 所有キーを表示、管理、使用したり、その使用を監査したりすることはできません。ただし、データを暗号化するキーを保護するためのアクションの実施やプログラムの変更を行う必要はありません。詳細については、AWS Key Management Service デベロッパーガイドの「AWS 所有キー」を参照してください。

保管中のデータの暗号化は、個人を特定できる情報など、顧客の機密データを保護するにあたって伴う運用上のオーバーヘッドと複雑さを軽減するために役立ちます。これにより、厳格な暗号化のコンプライアンスと規制要件に対応する安全なアプリケーションを構築できます。

ワークスペースの作成時にカスタマーマネージドキーを使用することもできます。

  • カスタマーマネージドキー — Amazon Managed Service for Prometheus では、ワークスペース内のデータを暗号化するために、ユーザーが作成、所有、管理する対称型カスタマーマネージドキーの使用をサポートします。この暗号化は完全に制御できるため、次のようなタスクを実行できます。

    • キーポリシーの策定と維持

    • IAM ポリシーとグラントの策定と維持

    • キーポリシーの有効化と無効化

    • 暗号化素材のローテーション

    • タグの追加

    • キーエイリアスの作成

    • 削除のためのキースケジューリング

    詳細については、「AWS Key Management Service デベロッパーガイド」の「カスタマーマネージドキー」を参照してください。

カスタマーマネージドキーと AWS 所有キーのどちらを慎重に使用するかを選択します。カスタマーマネージドキーで作成されたワークスペースは、後で AWS 所有キーを使用するように変換することはできません (その逆も同様です)。

注記

Amazon Managed Service for Prometheus は、 AWS 所有キーを使用して保管中の暗号化を自動的に有効にし、データを無料で保護します。

ただし、カスタマーマネージドキーの使用には AWS KMS 料金が適用されます。料金の詳細については、「AWS Key Management Service の料金」を参照してください。

の詳細については AWS KMS、「 とは」を参照してください AWS Key Management Service。

注記

カスタマーマネージドキーで作成されたワークスペースは、取り込み用にAWS マネージドコレクターを使用することはできません

Amazon Managed Service for Prometheus が で許可を使用する方法 AWS KMS

Amazon Managed Service for Prometheus には、カスタマーマネージドキーを使用するための許可が 3 つ必要です。

カスタマーマネージドキーで暗号化された Amazon Managed Service for Prometheus ワークスペースを作成すると、Amazon Managed Service for Prometheus は にCreateGrantリクエストを送信して、ユーザーに代わって 3 つの許可を作成します AWS KMS。の許可 AWS KMS は、ユーザーに代わって直接呼び出されない場合でも (Amazon EKS クラスターからスクレイピングされたメトリクスデータを保存する場合などに)、Amazon Managed Service for Prometheus にアカウントの KMS キーへのアクセスを許可するために使用されます。

Amazon Managed Service for Prometheus は、以下の内部オペレーションのためにユーザーのカスタマーマネージドキーを使用する許可を必要とします。

  • ワークスペースの作成時に指定された対称カスタマーマネージド KMS キーが有効であることを確認するDescribeKeyリクエストを AWS KMS に送信します。

  • カスタマーマネージドキーで暗号化されたデータキーを生成する AWS KMS には、 にGenerateDataKeyリクエストを送信します。

  • Decrypt リクエストを AWS KMS に送信して、暗号化されたデータキーを復号し、データの暗号化に使用できます。

Amazon Managed Service for Prometheus は、Amazon Managed Service for Prometheus がユーザーに代わって AWS KMS キーを使用できるようにする 3 つの許可をキーに作成します。キーポリシーを変更するか、キーを無効にするか、または許可を取り消すことで、キーへのアクセスを削除できます。これらのアクションを実行する前に、その結果を理解しておく必要があります。これにより、ワークスペース内のデータが失われる可能性があります。

何らかの方法で許可へのアクセスを削除すると、Amazon Managed Service for Prometheus は、カスタマーマネージドキーによって暗号化されたすべてのデータにアクセスできなくなり、ワークスペースに送信された新しいデータを保存することもできなくなります。これにより、そのデータに依存するオペレーションが影響を受けます。ワークスペースに送信された新しいデータにはアクセスできなくなり、永久に失われる可能性があります。

警告
  • キーを無効にするか、キーポリシーで Amazon Managed Service for Prometheus へのアクセスを削除すると、ワークスペースデータにはアクセスできなくなります。ワークスペースに送信される新しいデータにはアクセスできなくなり、永久に失われる可能性があります。

    Amazon Managed Service for Prometheus のキーへのアクセスを復元することで、ワークスペースデータにアクセスできるようになり、新しいデータの受信を再開できます。

  • 許可を取り消すと、再作成することはできず、ワークスペース内のデータは永久に失われます。

ステップ 1:カスタマーマネージドキーを作成する

対称カスタマーマネージドキーを作成するには AWS Management Console、、、または AWS KMS APIsを使用します。以下に説明するように、ポリシーを通じて正しいアクセスを提供している限り、キーは Amazon Managed Service for Prometheus ワークスペースと同じアカウントにある必要はありません。

対称カスタマーマネージドキーを作成するには

AWS Key Management Service デベロッパーガイドにある対称カスタマーマネージドキーの作成ステップを実行します。

キーポリシー

キーポリシーは、カスタマーマネージドキーへのアクセスを制御します。すべてのカスタマーマネージドキーには、キーポリシーが 1 つだけ必要です。このポリシーには、そのキーを使用できるユーザーとその使用方法を決定するステートメントが含まれています。カスタマーマネージドキーを作成する際に、キーポリシーを指定することができます。詳細については、AWS Key Management Service デベロッパーガイド の「カスタマーマネージドキーへのアクセスの管理」を参照してください。

Amazon Managed Service for Prometheus でカスタマーマネージドキーを使用するには、キーポリシーで次の API オペレーションを許可する必要があります。

  • kms:CreateGrant - カスタマーマネージドキーに許可を追加します。指定された KMS キーへのアクセスを付与します。これにより、Amazon Managed Service for Prometheus が必要とする許可オペレーションへのアクセスを許可します。詳細については、「AWS Key Management Service デベロッパーガイド」の「許可の使用」を参照してください。

    これにより、Amazon Managed Service for Prometheus は以下を実行できるようになります。

    • GenerateDataKey を呼び出して、暗号化されたデータキーを生成して保存します。データキーは暗号化にすぐには使用されないからです。

    • Decrypt を呼び出して、保存されている暗号化データキーを使用して暗号化されたデータにアクセスします。

  • kms:DescribeKey — カスタマーマネージドキーの詳細を指定し、Amazon Managed Service for Prometheus がキーを検証できるようにします。

Amazon Managed Service for Prometheus に追加できるポリシーステートメントの例を以下に示します。

"Statement" : [ { "Sid" : "Allow access to Amazon Managed Service for Prometheus principal within your account", "Effect" : "Allow", "Principal" : { "AWS" : "*" }, "Action" : [ "kms:DescribeKey", "kms:CreateGrant", "kms:GenerateDataKey", "kms:Decrypt" ], "Resource" : "*", "Condition" : { "StringEquals" : { "kms:ViaService" : "aps.region.amazonaws.com", "kms:CallerAccount" : "111122223333" } }, { "Sid": "Allow access for key administrators - not required for Amazon Managed Service for Prometheus", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:root" }, "Action" : [ "kms:*" ], "Resource": "arn:aws:kms:region:111122223333:key/key_ID" }, <other statements needed for other non-Amazon Managed Service for Prometheus scenarios> ]

ステップ 2: Amazon Managed Service for Prometheus のカスタマーマネージドキーを指定する

ワークスペースを作成するときは、Amazon Managed Service for Prometheus がワークスペースに保存されているデータを暗号化するために使用する KMS キー ARN を入力して、カスタマーマネージドキーを指定できます。

ステップ 3: Amazon Managed Grafana などの他の のサービスからのデータにアクセスする

このステップはオプションです。別のサービスから Amazon Managed Service for Prometheus データにアクセスする必要がある場合にのみ必要です。

暗号化されたデータには、 AWS KMS キーを使用するためのアクセス権限がない限り、他の のサービスからアクセスすることはできません。例えば、Amazon Managed Grafana を使用してデータに対してダッシュボードまたはアラートを作成する場合は、Amazon Managed Grafana に キーへのアクセス権を付与する必要があります。

Amazon Managed Grafana にカスタマーマネージドキーへのアクセスを許可するには
  1. Amazon Managed Grafana ワークスペースのリストで、Amazon Managed Service for Prometheus へのアクセスを許可するワークスペースの名前を選択します。Amazon Managed Grafana ワークスペースに関する概要情報が表示されます。

  2. ワークスペースで使用される IAM ロールの名前を書き留めます。名前は の形式ですAmazonGrafanaServiceRole-<unique-id>。コンソールには、ロールの完全な ARN が表示されます。この名前は、後のステップでコンソールで指定します AWS KMS 。

  3. AWS KMS カスタマーマネージドキーリスト で、Amazon Managed Service for Prometheus ワークスペースの作成時に使用したカスタマーマネージドキーを選択します。キー設定の詳細ページが開きます。

  4. キーユーザー の横にある追加ボタンを選択します。

  5. 名前のリストから、上記の Amazon Managed Grafana IAM ロールを選択します。検索しやすくするために、名前で検索することもできます。

  6. 追加 を選択して、IAM ロールをキーユーザーのリストに追加します。

Amazon Managed Grafana ワークスペースから Amazon Managed Service for Prometheus ワークスペースのデータにアクセスできるようになりました。他のユーザーまたはロールをキーユーザーに追加して、他の のサービスがワークスペースにアクセスできるようにします。

Amazon Managed Service for Prometheus 暗号化コンテキスト

暗号化コンテキストは、データに関する追加のコンテキスト情報が含まれたキーバリューペアのオプションのセットです。

AWS KMS は、追加の認証データとして暗号化コンテキストを使用して、認証された暗号化 をサポートします。データを暗号化するリクエストに暗号化コンテキストを含めると、 は暗号化コンテキストを暗号化されたデータに AWS KMS バインドします。データを復号化するには、そのリクエストに (暗号化時と) 同じ暗号化コンテキストを含めます。

Amazon Managed Service for Prometheus 暗号化コンテキスト

Amazon Managed Service for Prometheus は、すべての暗号化オペレーションで同じ AWS KMS 暗号化コンテキストを使用します。キーは aws:amp:arnで、値はワークスペースの Amazon リソースネーム (ARN) です。

"encryptionContext": { "aws:aps:arn": "arn:aws:aps:us-west-2:111122223333:workspace/ws-sample-1234-abcd-56ef-7890abcd12ef" }

モニタリングに暗号化コンテキストを使用する

対称カスタマーマネージドキーを使用してワークスペースデータを暗号化する場合は、監査レコードとログで暗号化コンテキストを使用して、カスタマーマネージドキーがどのように使用されているかを特定することもできます。暗号化コンテキストは、 AWS CloudTrail または Amazon CloudWatch Logs によって生成されたログにも表示されます。

暗号化コンテキストを使用してカスタマーマネージドキーへのアクセスを制御する

対称カスタマーマネージドキー (CMK) へのアクセスを制御するための conditions として、キーポリシーと IAM ポリシー内の暗号化コンテキストを使用することができます。付与する際に、暗号化コンテキストの制約を使用することもできます。

Amazon Managed Service for Prometheus は、許可で暗号化コンテキスト制約を使用して、アカウントまたはリージョン内のカスタマーマネージドキーへのアクセスを制御します。権限の制約では、権限によって許可されるオペレーションで指定された暗号化コンテキストを使用する必要があります。

次に、特定の暗号化コンテキストのカスタマーマネージドキーへのアクセスを付与するキーポリシーステートメントの例を示します。このポリシーステートメントの条件では、権限に暗号化コンテキストを指定する暗号化コンテキスト制約が必要です。

{ "Sid": "Enable DescribeKey", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/ExampleReadOnlyRole" }, "Action": "kms:DescribeKey", "Resource": "*" }, { "Sid": "Enable CreateGrant", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/ExampleReadOnlyRole" }, "Action": "kms:CreateGrant", "Resource": "*", "Condition": { "StringEquals": { "kms:EncryptionContext:aws:aps:arn": "arn:aws:aps:us-west-2:111122223333:workspace/ws-sample-1234-abcd-56ef-7890abcd12ef" } } }

Amazon Managed Service for Prometheus の暗号化キーを監視

Amazon Managed Service for Prometheus ワークスペースで AWS KMS カスタマーマネージドキーを使用する場合、 AWS CloudTrailまたは Amazon CloudWatch Logs を使用して、Amazon Managed Service for Prometheus が に送信するリクエストを追跡できます AWS KMS。

次の例はCreateGrant、Amazon Managed Service for Prometheus がカスタマーマネージドキーで暗号化されたデータにアクセスするために呼び出す KMS オペレーションをモニタリングDescribeKeyするための GenerateDataKeyDecrypt、、、および の AWS CloudTrail イベントです。

CreateGrant

AWS KMS カスタマーマネージドキーを使用してワークスペースを暗号化すると、Amazon Managed Service for Prometheus は、指定した KMS キーにアクセスするために、ユーザーに代わって 3 つのCreateGrantリクエストを送信します。Amazon Managed Service for Prometheus が作成する許可は、 AWS KMS カスタマーマネージドキーに関連付けられたリソースに固有のものです。

以下のイベント例では CreateGrant オペレーションを記録しています。

{ "eventVersion": "1.08", "userIdentity": { "type": "AssumedRole", "principalId": "TESTANDEXAMPLE:Sampleuser01", "arn": "arn:aws:sts::111122223333:assumed-role/Admin/Sampleuser01", "accountId": "111122223333", "accessKeyId": "EXAMPLE-KEY-ID1", "sessionContext": { "sessionIssuer": { "type": "Role", "principalId": "TESTANDEXAMPLE:Sampleuser01", "arn": "arn:aws:sts::111122223333:assumed-role/Admin/Sampleuser01", "accountId": "111122223333", "userName": "Admin" }, "webIdFederationData": {}, "attributes": { "mfaAuthenticated": "false", "creationDate": "2021-04-22T17:02:00Z" } }, "invokedBy": "aps.amazonaws.com" }, "eventTime": "2021-04-22T17:07:02Z", "eventSource": "kms.amazonaws.com", "eventName": "CreateGrant", "awsRegion": "us-west-2", "sourceIPAddress": "172.12.34.56", "userAgent": "ExampleDesktop/1.0 (V1; OS)", "requestParameters": { "retiringPrincipal": "aps.region.amazonaws.com", "operations": [ "GenerateDataKey", "Decrypt", "DescribeKey" ], "keyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-123456SAMPLE", "granteePrincipal": "aps.region.amazonaws.com" }, "responseElements": { "grantId": "0ab0ac0d0b000f00ea00cc0a0e00fc00bce000c000f0000000c0bc0a0000aaafSAMPLE" }, "requestID": "ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE", "eventID": "ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE", "readOnly": false, "resources": [ { "accountId": "111122223333", "type": "AWS::KMS::Key", "ARN": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-123456SAMPLE" } ], "eventType": "AwsApiCall", "managementEvent": true, "eventCategory": "Management", "recipientAccountId": "111122223333" }
GenerateDataKey

ワークスペースの AWS KMS カスタマーマネージドキーを有効にすると、Amazon Managed Service for Prometheus によって一意のキーが作成されます。リソースの AWS KMSカスタマーマネージドキー AWS KMS を指定するGenerateDataKeyリクエストを に送信します。

以下のイベント例では GenerateDataKey オペレーションを記録しています。

{ "eventVersion": "1.08", "userIdentity": { "type": "AWSService", "invokedBy": "aps.amazonaws.com" }, "eventTime": "2021-04-22T17:07:02Z", "eventSource": "kms.amazonaws.com", "eventName": "GenerateDataKey", "awsRegion": "us-west-2", "sourceIPAddress": "172.12.34.56", "userAgent": "ExampleDesktop/1.0 (V1; OS)", "requestParameters": { "encryptionContext": { "aws:aps:arn": "arn:aws:aps:us-west-2:111122223333:workspace/ws-sample-1234-abcd-56ef-7890abcd12ef" }, "keySpec": "AES_256", "keyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-123456SAMPLE" }, "responseElements": null, "requestID": "ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE", "eventID": "ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE", "readOnly": true, "resources": [ { "accountId": "111122223333", "type": "AWS::KMS::Key", "ARN": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-123456SAMPLE" } ], "eventType": "AwsApiCall", "managementEvent": true, "eventCategory": "Management", "recipientAccountId": "111122223333", "sharedEventID": "57f5dbee-16da-413e-979f-2c4c6663475e" }
Decrypt

暗号化されたワークスペースでクエリが生成されると、Amazon Managed Service for Prometheus は Decrypt オペレーションを呼び出し、保存されている暗号化されたデータキーを使用して暗号化されたデータにアクセスします。

以下のイベント例では Decrypt オペレーションを記録しています。

{ "eventVersion": "1.08", "userIdentity": { "type": "AWSService", "invokedBy": "aps.amazonaws.com" }, "eventTime": "2021-04-22T17:10:51Z", "eventSource": "kms.amazonaws.com", "eventName": "Decrypt", "awsRegion": "us-west-2", "sourceIPAddress": "172.12.34.56", "userAgent": "ExampleDesktop/1.0 (V1; OS)", "requestParameters": { "encryptionContext": { "aws:aps:arn": "arn:aws:aps:us-west-2:111122223333:workspace/ws-sample-1234-abcd-56ef-7890abcd12ef" }, "keyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-123456SAMPLE", "encryptionAlgorithm": "SYMMETRIC_DEFAULT" }, "responseElements": null, "requestID": "ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE", "eventID": "ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE", "readOnly": true, "resources": [ { "accountId": "111122223333", "type": "AWS::KMS::Key", "ARN": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-123456SAMPLE" } ], "eventType": "AwsApiCall", "managementEvent": true, "eventCategory": "Management", "recipientAccountId": "111122223333", "sharedEventID": "dc129381-1d94-49bd-b522-f56a3482d088" }
DescribeKey

Amazon Managed Service for Prometheus は、DescribeKey オペレーションを使用して、ワークスペースに関連付けられている AWS KMS カスタマーマネージドキーがアカウントとリージョンに存在するかどうかを確認します。

以下のイベント例では、DescribeKey オペレーションを記録しています。

{ "eventVersion": "1.08", "userIdentity": { "type": "AssumedRole", "principalId": "TESTANDEXAMPLE:Sampleuser01", "arn": "arn:aws:sts::111122223333:assumed-role/Admin/Sampleuser01", "accountId": "111122223333", "accessKeyId": "EXAMPLE-KEY-ID1", "sessionContext": { "sessionIssuer": { "type": "Role", "principalId": "TESTANDEXAMPLE:Sampleuser01", "arn": "arn:aws:sts::111122223333:assumed-role/Admin/Sampleuser01", "accountId": "111122223333", "userName": "Admin" }, "webIdFederationData": {}, "attributes": { "mfaAuthenticated": "false", "creationDate": "2021-04-22T17:02:00Z" } }, "invokedBy": "aps.amazonaws.com" }, "eventTime": "2021-04-22T17:07:02Z", "eventSource": "kms.amazonaws.com", "eventName": "DescribeKey", "awsRegion": "us-west-2", "sourceIPAddress": "172.12.34.56", "userAgent": "ExampleDesktop/1.0 (V1; OS)", "requestParameters": { "keyId": "00dd0db0-0000-0000-ac00-b0c000SAMPLE" }, "responseElements": null, "requestID": "ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE", "eventID": "ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE", "readOnly": true, "resources": [ { "accountId": "111122223333", "type": "AWS::KMS::Key", "ARN": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-123456SAMPLE" } ], "eventType": "AwsApiCall", "managementEvent": true, "eventCategory": "Management", "recipientAccountId": "111122223333" }

詳細はこちら

次のリソースは、保管時のデータ暗号化についての詳細を説明しています。