翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
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 リージョン と同じである必要があります。
-
にサインインし AWS Management Console、https://console.aws.amazon.com/qldb
で Amazon QLDBコンソールを開きます。 -
[Create Ledger (台帳の作成)] を選択します。
-
[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。
-
-
-
すべての設定が正しいことを確認したら、[Create ledger (台帳の作成)] を選択します。
台帳のステータスがアクティブになると、台QLDB帳にアクセスできます。これには数分間かかる場合があります。
AWS CLI を使用して、デフォルトキー AWS 所有のキー またはカスタマーマネージドキーQLDBを使用して に台帳を作成します。
例 – デフォルトの AWS 所有のキーを使用して台帳を作成するには
aws qldb create-ledger --name
my-example-ledger
--permissions-modeSTANDARD
例 – カスタマーマネージドキーを使用して台帳を作成するには
aws qldb create-ledger \ --name
my-example-ledger
\ --permissions-modeSTANDARD
\ --kms-keyarn: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 リージョン と同じである必要があります。
-
にサインインし AWS Management Console、https://console.aws.amazon.com/qldb
で Amazon QLDBコンソールを開きます。 -
ナビゲーションペイン内で [Ledgers (台帳)] を選択します。
-
台帳のリストで、更新する台帳を選択し、[Edit ledger] (台帳を編集) を選択します。
-
台帳の編集ページで、保管時の暗号化に使用するKMSキーのタイプを選択します。
-
AWS オウンドKMSキーを使用する – AWS お客様に代わって が所有および管理しているKMSキーを使用します。これはデフォルトのオプションであり、追加のセットアップは必要ありません。
-
別の AWS KMS キーを選択する – 作成、所有、管理するアカウントの対称暗号化KMSキーを使用します。
AWS KMS コンソールを使用して新しいキーを作成するには、 AWS KMS キーの作成 を選択します。詳細については、「 デベロッパーガイド」の「対称暗号化KMSキーの作成」を参照してください。 AWS Key Management Service
既存のKMSキーを使用するには、ドロップダウンリストからキーを選択するか、KMSキー を指定しますARN。
-
-
[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-keyarn: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
、、GenerateDataKey
、Decrypt
、 Encrypt
の 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" }