Amazon でのカスタマーマネージドキーの使用 QLDB - Amazon Quantum 台帳データベース (Amazon QLDB)

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

Amazon でのカスタマーマネージドキーの使用 QLDB

AWS Management Console、 AWS Command Line Interface (AWS CLI)、または を使用してQLDBAPI、Amazon の新しい台帳と既存の台帳 AWS KMS key に を指定できますQLDB。以下のトピックでは、 でカスタマーマネージドキーの使用を管理およびモニタリングする方法について説明しますQLDB。

前提条件

カスタマーマネージドキーでQLDB台帳を保護するには、まず AWS Key Management Service () でキーを作成する必要がありますAWS KMS。また、 が AWS KMS key ユーザーに代わってその権限QLDBを作成するキーポリシーを指定する必要があります。

カスタマーマネージドキーの作成

カスタマーマネージドキーを作成するには、 AWS Key Management Service デベロッパーガイド「対称暗号化KMSキーの作成」の手順に従ってください。QLDB は非対称キー をサポートしていません。

キーポリシーの設定

キーポリシーは、 でカスタマーマネージドキーへのアクセスを制御する主要な方法です AWS KMS。すべてのカスタマーマネージドキーには、厳密に 1 つのキーポリシーが必要です。キーポリシードキュメントのステートメントは、KMSキーを使用するアクセス許可を持つユーザーとその使用方法を決定します。詳細については、「 のキーポリシーの使用 AWS KMS」を参照してください。

カスタマーマネージドキーを作成する際に、キーポリシーを指定することができます。既存のカスタマーマネージドキーのキーポリシーを変更するには、「キーポリシーの変更」を参照してください。

QLDB がカスタマーマネージドキーを使用するには、キーポリシーに次の AWS KMS アクションのアクセス許可を含める必要があります。

  • kms:CreateGrant – カスタマーマネージドキーに付与を追加します。指定されたKMSキーへのコントロールアクセスを許可します。

    指定されたカスタマーマネージドキーを使用して台帳を作成または更新すると、 は、必要な許可オペレーションへのアクセスを許可する許可QLDBを作成します。権限オペレーションには以下が含まれます。

  • kms:DescribeKey – カスタマーマネージドキーに関する詳細情報を返します。QLDB はこの情報を使用してキーを検証します。

キーポリシーの例

以下は、 に使用できるキーポリシーの例ですQLDB。このポリシーでは、 アカウントQLDBから を使用する権限を付与されたプリンシパルが、 リソースの DescribeKeyおよび CreateGrantオペレーション111122223333を呼び出すことができますarn:aws:kms:us-east-1:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab

このポリシーを使用するには、us-east-1, 111122223333 および 1234abcd-12ab-34cd-56ef-1234567890ab 自分の情報を含む の例。

{ "Version": "2012-10-17", "Statement": [ { "Sid" : "Allow access to principals authorized to use Amazon QLDB", "Effect" : "Allow", "Principal" : { "AWS" : "*" }, "Action" : [ "kms:DescribeKey", "kms:CreateGrant" ], "Resource" : "arn:aws:kms:us-east-1:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "Condition" : { "StringEquals" : { "kms:ViaService" : "qldb.us-east-1.amazonaws.com", "kms:CallerAccount" : "111122223333" } } } ] }

新しい台帳に AWS KMS key を指定する

QLDB コンソールまたは を使用して新しい台帳を作成するときにKMSキーを指定するには、次の手順に従います AWS CLI。

ID、エイリアス、または Amazon リソースネーム () を使用して、カスタマーマネージドキーを指定できますARN。詳細については、「 デベロッパーガイド」の「キー識別子 (KeyId)」を参照してください。 AWS Key Management Service

注記

クロスリージョンキーはサポートされていません。指定されたKMSキーは台帳 AWS リージョン と同じである必要があります。

  1. にサインインし AWS Management Console、https://console.aws.amazon.com/qldb で Amazon QLDBコンソールを開きます。

  2. [Create Ledger (台帳の作成)] を選択します。

  3. [Create Ledger (台帳の作成)] ページで、以下の操作を実行します。

    • 台帳情報 – 現在 AWS アカウント およびリージョンのすべての台帳で一意の台帳名を入力します。

    • [Permissions mode] (アクセス許可モード) – 台帳に割り当てるアクセス許可モードを選択します。

      • [Allow all] (すべて許可)

      • [Standard] (スタンダード) (推奨)

    • 保管中のデータを暗号化する – 保管中の暗号化に使用するKMSキーのタイプを選択します。

      • AWS オウンドKMSキーを使用する – AWS お客様に代わって が所有および管理しているKMSキーを使用します。これはデフォルトのオプションであり、追加のセットアップは必要ありません。

      • 別の AWS KMS キーを選択する – 作成、所有、管理するアカウントで対称暗号化KMSキーを使用します。

        AWS KMS コンソールを使用して新しいキーを作成するには、 AWS KMS キーの作成 を選択します。詳細については、 AWS Key Management Service デベロッパーガイド「対称暗号化KMSキーの作成」を参照してください。

        既存のKMSキーを使用するには、ドロップダウンリストからキーを選択するか、KMSキー を指定しますARN。

  4. すべての設定が正しいことを確認したら、[Create ledger (台帳の作成)] を選択します。

    台帳のステータスがアクティブになると、台QLDB帳にアクセスできます。これには数分間かかる場合があります。

AWS CLI を使用して、デフォルトキー AWS 所有のキー またはカスタマーマネージドキーQLDBを使用して に台帳を作成します。

例 – デフォルトの AWS 所有のキーを使用して台帳を作成するには
aws qldb create-ledger --name my-example-ledger --permissions-mode STANDARD
例 – カスタマーマネージドキーを使用して台帳を作成するには
aws qldb create-ledger \ --name my-example-ledger \ --permissions-mode STANDARD \ --kms-key arn:aws:kms:us-east-1:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab

既存の台帳の AWS KMS key を更新する

QLDB コンソールまたは を使用して、既存の台帳のKMSキーをいつでも AWS 所有のキー またはカスタマーマネージドキーに AWS CLI 更新することもできます。

注記

Amazon は、2021 年 7 月 22 AWS KMS keys 日にカスタマーマネージドのサポートQLDBを開始しました。起動前に作成された台帳は AWS 所有のキー デフォルトで保護されますが、現在、カスタマーマネージドキーを使用した保管中の暗号化の対象にはなりません。

QLDB 台帳の作成時刻はコンソールで確認できます。

の主な変更は非同期QLDBです。キーの変更が処理されている間も、パフォーマンスに影響を与えることなく、台帳にフルアクセスできます。キーの更新にかかる時間は、台帳のサイズによって異なります。

ID、エイリアス、または Amazon リソースネーム () を使用して、カスタマーマネージドキーを指定できますARN。詳細については、「 デベロッパーガイド」の「キー識別子 (KeyId)」を参照してください。 AWS Key Management Service

注記

クロスリージョンキーはサポートされていません。指定されたKMSキーは台帳 AWS リージョン と同じである必要があります。

  1. にサインインし AWS Management Console、https://console.aws.amazon.com/qldb で Amazon QLDBコンソールを開きます。

  2. ナビゲーションペイン内で [Ledgers (台帳)] を選択します。

  3. 台帳のリストで、更新する台帳を選択し、[Edit ledger] (台帳を編集) を選択します。

  4. 台帳の編集ページで、保管時の暗号化に使用するKMSキーのタイプを選択します。

    • AWS オウンドKMSキーを使用する – AWS お客様に代わって が所有および管理しているKMSキーを使用します。これはデフォルトのオプションであり、追加のセットアップは必要ありません。

    • 別の AWS KMS キーを選択する – 作成、所有、管理するアカウントの対称暗号化KMSキーを使用します。

      AWS KMS コンソールを使用して新しいキーを作成するには、 AWS KMS キーの作成 を選択します。詳細については、「 デベロッパーガイド」の「対称暗号化KMSキーの作成」を参照してください。 AWS Key Management Service

      既存のKMSキーを使用するには、ドロップダウンリストからキーを選択するか、KMSキー を指定しますARN。

  5. [Confirm changes] (変更の確認) を選択します。

AWS CLI を使用して、 の既存の台帳をデフォルトキー AWS 所有のキー またはカスタマーマネージドキーQLDBで更新します。

例 – デフォルトの AWS 所有のキーを使用して台帳を更新するには
aws qldb update-ledger --name my-example-ledger --kms-key AWS_OWNED_KMS_KEY
例 – カスタマーマネージドキーを使用して台帳を更新するには
aws qldb update-ledger \ --name my-example-ledger \ --kms-key arn:aws:kms:us-east-1:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab

AWS KMS keysのモニタリング

カスタマーマネージドキーを使用して Amazon QLDB台帳を保護する場合は、 AWS CloudTrail または Amazon CloudWatch Logs を使用して、 AWS KMS ユーザーに代わって QLDB に送信するリクエストを追跡できます。詳細については、「AWS Key Management Service デベロッパーガイド」の「AWS KMS keysのモニタリング」を参照してください。

次の例は、オペレーション CreateGrant、、GenerateDataKeyDecryptEncryptの CloudTrail ログエントリですDescribeKey

CreateGrant

台帳を保護するためにカスタマーマネージドキーを指定すると、 は AWS KMS ユーザーに代わって にCreateGrantリクエストQLDBを送信し、KMSキーへのアクセスを許可します。さらに、 QLDB は、台帳を削除するときに RetireGrantオペレーションを使用して許可を削除します。

がQLDB作成する許可は台帳に固有のものです。CreateGrant リクエストのプリンシパルは、テーブルを作成したユーザーです。

CreateGrant 演算を記録するイベントは、次のようなサンプルイベントになります。パラメータには、カスタマーマネージドキーの Amazon リソースネーム (ARN)、被付与者プリンシパルと廃止プリンシパル (QLDBサービス)、および付与がカバーするオペレーションが含まれます。

{ "eventVersion": "1.08", "userIdentity": { "type": "AssumedRole", "principalId": "AKIAIOSFODNN7EXAMPLE:sample-user", "arn": "arn:aws:sts::111122223333:assumed-role/Admin/sample-user", "accountId": "111122223333", "accessKeyId": "AKIAI44QH8DHBEXAMPLE", "sessionContext": { "sessionIssuer": { "type": "Role", "principalId": "AKIAIOSFODNN7EXAMPLE", "arn": "arn:aws:iam::111122223333:role/Admin", "accountId": "111122223333", "userName": "Admin" }, "webIdFederationData": {}, "attributes": { "mfaAuthenticated": "false", "creationDate": "2021-06-04T21:37:11Z" } }, "invokedBy": "qldb.amazonaws.com" }, "eventTime": "2021-06-04T21:40:00Z", "eventSource": "kms.amazonaws.com", "eventName": "CreateGrant", "awsRegion": "us-west-2", "sourceIPAddress": "qldb.amazonaws.com", "userAgent": "qldb.amazonaws.com", "requestParameters": { "keyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "granteePrincipal": "qldb.us-west-2.amazonaws.com", "operations": [ "DescribeKey", "GenerateDataKey", "Decrypt", "Encrypt" ], "retiringPrincipal": "qldb.us-west-2.amazonaws.com" }, "responseElements": { "grantId": "b3c83f999187ccc0979ef2ff86a1572237b6bba309c0ebce098c34761f86038a" }, "requestID": "e99188d7-3b82-424e-b63e-e086d848ed60", "eventID": "88dc7ba5-4952-4d36-9ca8-9ab5d9598bab", "readOnly": false, "resources": [ { "accountId": "111122223333", "type": "AWS::KMS::Key", "ARN": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab" } ], "eventType": "AwsApiCall", "managementEvent": true, "eventCategory": "Management", "recipientAccountId": "111122223333" }
GenerateDataKey

台帳を保護するためにカスタマーマネージドキーを指定すると、 は一意のデータキーQLDBを作成します。台帳のカスタマーマネージドキー AWS KMS を指定するGenerateDataKeyリクエストを に送信します。

GenerateDataKey 演算を記録するイベントは、次のようなサンプルイベントになります。ユーザーはQLDBサービスアカウントです。パラメータには、カスタマーマネージドキーARNの 、32 バイト長を必要とするデータキー指定子、内部キー階層ノードを識別する暗号化コンテキストが含まれます。

{ "eventVersion": "1.08", "userIdentity": { "type": "AWSService", "invokedBy": "qldb.amazonaws.com" }, "eventTime": "2021-06-04T21:40:01Z", "eventSource": "kms.amazonaws.com", "eventName": "GenerateDataKey", "awsRegion": "us-west-2", "sourceIPAddress": "qldb.amazonaws.com", "userAgent": "qldb.amazonaws.com", "requestParameters": { "keyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "numberOfBytes": 32, "encryptionContext": { "key-hierarchy-node-id": "LY4HWMnkeZWKYi6MlitVJC", "key-hierarchy-node-version": "1" } }, "responseElements": null, "requestID": "786977c9-e77c-467a-bff5-9ad5124a4462", "eventID": "b3f082cb-3e75-454e-bf0a-64be13075436", "readOnly": true, "resources": [ { "accountId": "111122223333", "type": "AWS::KMS::Key", "ARN": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab" } ], "eventType": "AwsApiCall", "managementEvent": true, "eventCategory": "Management", "recipientAccountId": "111122223333", "sharedEventID": "26688de5-0b1c-43d3-bc4f-a18029b08446" }
Decrypt

台帳にアクセスすると、 は DecryptオペレーションをQLDB呼び出して台帳の保存されたデータキーを復号し、台帳内の暗号化されたデータにアクセスできます。

Decrypt 演算を記録するイベントは、次のようなサンプルイベントになります。ユーザーはQLDBサービスアカウントです。パラメータには、カスタマーマネージドキーARNの と、内部キー階層ノードを識別する暗号化コンテキストが含まれます。

{ "eventVersion": "1.08", "userIdentity": { "type": "AWSService", "invokedBy": "qldb.amazonaws.com" }, "eventTime": "2021-06-04T21:40:56Z", "eventSource": "kms.amazonaws.com", "eventName": "Decrypt", "awsRegion": "us-west-2", "sourceIPAddress": "qldb.amazonaws.com", "userAgent": "qldb.amazonaws.com", "requestParameters": { "keyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "encryptionAlgorithm": "SYMMETRIC_DEFAULT", "encryptionContext": { "key-hierarchy-node-id": "LY4HWMnkeZWKYi6MlitVJC", "key-hierarchy-node-version": "1" } }, "responseElements": null, "requestID": "28f2dd18-3cc1-4fe2-82f7-5154f4933ebf", "eventID": "603ad5d4-4744-4505-9c21-bd4a6cbd4b20", "readOnly": true, "resources": [ { "accountId": "111122223333", "type": "AWS::KMS::Key", "ARN": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab" } ], "eventType": "AwsApiCall", "managementEvent": true, "eventCategory": "Management", "recipientAccountId": "111122223333", "sharedEventID": "7b6ce3e3-a764-42ec-8f90-5418c97ec411" }
暗号化

QLDB は、カスタマーマネージドキーを使用してプレーンテキストを暗号文に暗号化する Encrypt オペレーションを呼び出します。

Encrypt 演算を記録するイベントは、次のようなサンプルイベントになります。ユーザーはQLDBサービスアカウントです。パラメータには、カスタマーマネージドキーARNの と、台帳の内部一意の ID を指定する暗号化コンテキストが含まれます。

{ "eventVersion": "1.08", "userIdentity": { "type": "AWSService", "invokedBy": "qldb.amazonaws.com" }, "eventTime": "2021-06-04T21:40:01Z", "eventSource": "kms.amazonaws.com", "eventName": "Encrypt", "awsRegion": "us-west-2", "sourceIPAddress": "qldb.amazonaws.com", "userAgent": "qldb.amazonaws.com", "requestParameters": { "keyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "encryptionContext": { "LedgerId": "F6qRNziJLUXA4Vy2ZUv8YY" }, "encryptionAlgorithm": "SYMMETRIC_DEFAULT" }, "responseElements": null, "requestID": "b2daca7d-4606-4302-a2d7-5b3c8d30c64d", "eventID": "b8aace05-2e37-4fed-ae6f-a45a1c6098df", "readOnly": true, "resources": [ { "accountId": "111122223333", "type": "AWS::KMS::Key", "ARN": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab" } ], "eventType": "AwsApiCall", "managementEvent": true, "eventCategory": "Management", "recipientAccountId": "111122223333", "sharedEventID": "ce420ab0-288e-4b4f-aee8-541e18a28aa5" }
DescribeKey

QLDB は DescribeKeyオペレーションを呼び出し、指定したKMSキーが および リージョンに存在するかどうかを判断します AWS アカウント 。

DescribeKey 演算を記録するイベントは、次のようなサンプルイベントになります。プリンシパルは、KMSキーを AWS アカウント 指定した のユーザーです。パラメータには、カスタマーマネージドキーARNの が含まれます。

{ "eventVersion": "1.08", "userIdentity": { "type": "AssumedRole", "principalId": "AKIAIOSFODNN7EXAMPLE:sample-user", "arn": "arn:aws:sts::111122223333:assumed-role/Admin/sample-user", "accountId": "111122223333", "accessKeyId": "AKIAI44QH8DHBEXAMPLE", "sessionContext": { "sessionIssuer": { "type": "Role", "principalId": "AKIAIOSFODNN7EXAMPLE", "arn": "arn:aws:iam::111122223333:role/Admin", "accountId": "111122223333", "userName": "Admin" }, "webIdFederationData": {}, "attributes": { "mfaAuthenticated": "false", "creationDate": "2021-06-04T21:37:11Z" } }, "invokedBy": "qldb.amazonaws.com" }, "eventTime": "2021-06-04T21:40:00Z", "eventSource": "kms.amazonaws.com", "eventName": "DescribeKey", "awsRegion": "us-west-2", "sourceIPAddress": "qldb.amazonaws.com", "userAgent": "qldb.amazonaws.com", "requestParameters": { "keyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab" }, "responseElements": null, "requestID": "a30586af-c783-4d25-8fda-33152c816c36", "eventID": "7a9caf07-2b27-44ab-afe4-b259533ebb88", "readOnly": true, "resources": [ { "accountId": "111122223333", "type": "AWS::KMS::Key", "ARN": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab" } ], "eventType": "AwsApiCall", "managementEvent": true, "eventCategory": "Management", "recipientAccountId": "111122223333" }