

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

# Amazon QLDB での保管時の暗号化
<a name="encryption-at-rest"></a>

**重要**  
サポート終了通知: 既存のお客様は、07/31/2025 のサポート終了まで Amazon QLDB を使用できます。詳細については、[「Amazon QLDB 台帳を Amazon Aurora PostgreSQL に移行する](https://aws.amazon.com/blogs/database/migrate-an-amazon-qldb-ledger-to-amazon-aurora-postgresql/)」を参照してください。

Amazon QLDB に保存されているすべてのデータは、保管時にデフォルトで完全に暗号化されます。QLDB *保管時の暗号化*は、 AWS Key Management Service () の暗号化キーを使用して保管中のすべての台帳データを暗号化することで、セキュリティを強化しますAWS KMS。この機能は、機密データの保護における負担と複雑な作業を減らすのに役立ちます。保管時に暗号化することで、セキュリティを重視した台帳アプリケーションを構築して、暗号化のコンプライアンスと規制の厳格な要件を満たすことができます。

保管時の暗号化は と統合され、QLDB 台帳の保護に使用される暗号化キー AWS KMS を管理します。詳細については AWS KMS、「 *AWS Key Management Service デベロッパーガイド*」の「 の[AWS Key Management Service 概念](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html)」を参照してください。

QLDB では、台帳リソース AWS KMS key ごとに のタイプを指定できます。新しい台帳を作成するとき、または既存の台帳を更新するときに、次のタイプの KMS キーのいずれかを選択して台帳データを保護できます。
+ AWS 所有のキー– デフォルトの暗号化タイプ。**キーは QLDB により所有されます (追加料金なし)。
+ カスタマーマネージドキー – キーは AWS アカウント に保存され、ユーザーによって作成、所有、管理されます。キーを完全に制御できます (AWS KMS 料金が適用されます）。

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

台帳にアクセスすると、QLDB はデータを透過的に復号化します。 AWS 所有のキー とカスタマーマネージドキーはいつでも切り替えることができます。暗号化されたデータの使用あるいは管理のためにコードやアプリケーションを変更する必要はありません。

新しい台帳を作成するときに暗号化キーを指定したり、、QLDB API AWS マネジメントコンソール、または AWS Command Line Interface () を使用して既存の台帳の暗号化キーを変更したりできますAWS CLI。詳細については、「[Amazon QLDB でカスタマーマネージドキーを使用する](encryption-at-rest.using-cust-keys.md)」を参照してください。

**注記**  
デフォルトでは、Amazon QLDB は追加料金なしで AWS 所有のキー を使用して保管時の暗号化を自動的に有効にします。ただし、カスタマーマネージドキーの使用には AWS KMS 料金が適用されます。料金については、「[AWS Key Management Service の料金](https://aws.amazon.com/kms/pricing)」を参照してください。  
保管時の QLDB 暗号化は、QLDB が利用可能なすべての AWS リージョン で使用できます。

**Topics**
+ [保管時の暗号化: Amazon QLDB での仕組み](encryption-at-rest.how-it-works.md)
+ [Amazon QLDB でカスタマーマネージドキーを使用する](encryption-at-rest.using-cust-keys.md)

# 保管時の暗号化: Amazon QLDB での仕組み
<a name="encryption-at-rest.how-it-works"></a>

QLDB の保管時の暗号化では、256 ビットの Advanced Encryption Standard (AES-256) を使用してデータを暗号化します。**この機能は、基になるストレージへの不正アクセスからデータを保護するのに役立ちます。QLDB 台帳に保存されるすべてのデータは、保管時にデフォルトで暗号化されます。サーバー側の暗号化は透過的です。つまり、アプリケーションに対する変更は必要ありません。

保管時の暗号化は AWS Key Management Service （AWS KMS) と統合され、QLDB 台帳の保護に使用される暗号化キーを管理します。新しい台帳を作成するとき、または既存の台帳を更新するときに、次のタイプの AWS KMS キーのいずれかを選択できます。
+ AWS 所有のキー– デフォルトの暗号化タイプ。**キーは QLDB により所有されます (追加料金なし)。
+ カスタマーマネージドキー – キーは AWS アカウント に保存され、ユーザーによって作成、所有、管理されます。キーを完全に制御できます (AWS KMS 料金が適用されます）。

**Topics**
+ [AWS 所有のキー](#encryption-at-rest.aws-owned)
+ [カスタマーマネージドキー](#encryption-at-rest.customer-managed)
+ [Amazon QLDB で AWS KMSの許可を使用する方法](#encryption-at-rest.grants)
+ [AWS KMSでの許可の復元](#encryption-at-rest.restoring-grants)
+ [保管時の暗号化に関する考慮事項](#encryption-at-rest.considerations)

## AWS 所有のキー
<a name="encryption-at-rest.aws-owned"></a>

AWS 所有のキー は に保存されません AWS アカウント。これらは、複数の で使用するために が AWS 所有および管理する KMS キーのコレクションの一部です AWS アカウント。 AWS のサービス はデータを保護するために AWS 所有のキー を使用できます。

 AWS 所有のキーを作成または管理する必要はありません。ただし、その使用を表示または追跡したり AWS 所有のキー、監査したりすることはできません。の月額料金や使用料金は請求されず AWS 所有のキー、アカウントのクォータには AWS KMS カウントされません。

詳細については、「*AWS Key Management Service デベロッパーガイド*」の 「[AWS 所有のキー](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-owned-cmk)」を参照してください。

## カスタマーマネージドキー
<a name="encryption-at-rest.customer-managed"></a>

カスタマーマネージドキーは、 AWS アカウント ユーザーが作成、所有、管理する の KMS キーです。ユーザーは、この KMS キーに関する完全なコントロール権を持ちます。QLDB では、対称暗号化 KMS キーのみをサポートしています。

カスタマーマネージドキーを使用して次の機能を取得します。
+ キーポリシー、IAM ポリシー、およびキーへのアクセスを制御するための許可を設定し管理する
+ キーの有効化と無効化を行う
+ キーの暗号化マテリアルをローテーションする
+ キーのタグとエイリアスを作成する
+ キーの削除をスケジュールする
+ 独自のキーマテリアルをインポートする、または所有し管理しているカスタムキーストアを使用する
+  AWS CloudTrail および Amazon CloudWatch Logs を使用して、QLDB が AWS KMS ユーザーに代わって に送信するリクエストを追跡する

詳細については、「[AWS Key Management Service デベロッパーガイド](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk)」の「カスタマーマネージドキー」を参照してください。

カスタマーマネージドキー[には API コールごとに料金が発生し](https://aws.amazon.com/kms/pricing/)、これらの AWS KMS KMS キーにはクォータが適用されます。詳細については、「[AWS KMS resource or request quotas](https://docs.aws.amazon.com/kms/latest/developerguide/limits.html)」(KMS リソースクォータまたはリクエストクォータ) を参照してください。

カスタマーマネージドキーを台帳の KMS キーとして指定すると、ジャーナルストレージとインデックス付きストレージの両方のすべての台帳データが、同じカスタマーマネージドキーで保護されます。

**アクセスできないカスタマーマネージドキー**

カスタマーマネージドキーを無効にしたり、キーの削除をスケジュールしたり、キーに対する許可を取り消したりすると、台帳の暗号化のステータスは `KMS_KEY_INACCESSIBLE` になります。この状態のとき、台帳には障害が発生し、台帳は読み取りリクエストまたは書き込みリクエストを受け付けないようになります。アクセスできないキーを使用すると、すべてのユーザーと QLDB サービスがデータを暗号化または復号化することができなくなり、台帳で読み取り操作および書き込み操作を実行できなくなります。台帳に対するアクセスを維持し、データ損失を防止するには、QLDB が KMS キーにアクセスできる必要があります。

**重要**  
障害のある台帳は、キーの許可を復元した後、または無効化されたキーを再度有効にした後に、自動的にアクティブ状態に戻ります。  
ただし、カスタマーマネージドキーの削除は元に戻せません。**キーを削除すると、そのキーで保護されている台帳にアクセスできなくなり、**データが完全に回復不可能になります**。

台帳の暗号化ステータスを確認するには、 AWS マネジメントコンソール または [DescribeLedger](ledger-management.basics.md#ledger-management.basics.describe) API オペレーションを使用します。

## Amazon QLDB で AWS KMSの許可を使用する方法
<a name="encryption-at-rest.grants"></a>

QLDB でカスタマーマネージドキーを使用するには許可が必要です。**カスタマーマネージドキーで保護された台帳を作成すると、QLDB は [CreateGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.html) リクエストを送信してユーザーに代わって許可を作成します AWS KMS。の権限 AWS KMS は、QLDB に顧客の KMS キーへのアクセスを許可するために使用されます AWS アカウント。詳細については、「AWS Key Management Service デベロッパーガイド」の「[許可の使用](https://docs.aws.amazon.com/kms/latest/developerguide/grants.html)」を参照してください。**

QLDB では、以下の AWS KMS オペレーションでカスタマーマネージドキーを使用するのに許可が必要です。
+ [DescribeKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeKey.html) – 指定した対称暗号化 KMS キーが有効であることを確認します。
+ [GenerateDataKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKey.html) — QLDB が台帳の保管中のデータを暗号化するために使用する一意の対称データキーを生成します。
+ [Decrypt](https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html) — カスタマーマネージドキーで暗号化されたデータキーを復号化します。
+ [Encrypt](https://docs.aws.amazon.com/kms/latest/APIReference/API_Encrypt.html) — カスタマーマネージドキーを使用して、プレーンテキストを暗号文に暗号化します。

いつでも許可を取り消して、カスタマーマネージドキーに対するサービスからのアクセス権を削除できます。これを行うと、キーはアクセス不可能になり、QLDB はカスタマーマネージドキーによって保護されている台帳データへのアクセスを失います。この状態のとき、台帳には障害が発生し、キーの許可を復元するまで台帳は読み取りリクエストまたは書き込みリクエストを受け付けないようになります。

## AWS KMSでの許可の復元
<a name="encryption-at-rest.restoring-grants"></a>

カスタマーマネージドキーに対する許可を復元し、QLDB で台帳へのアクセスを回復するには、台帳を更新して同じ KMS キーを指定します。手順については、「[既存の台帳の AWS KMS key を更新する](encryption-at-rest.using-cust-keys.md#encryption-at-rest.using-cust-keys.update)」を参照してください。

## 保管時の暗号化に関する考慮事項
<a name="encryption-at-rest.considerations"></a>

QLDB で保管時の暗号化を使用する場合は、以下の点を考慮してください。
+ 保管時のサーバー側の暗号化は、デフォルトですべての QLDB 台帳データで有効になり、無効にできません。台帳内のデータのサブセットのみを暗号化することはできません。
+ 保管時の暗号化は、永続的ストレージメディアの静的 (保管時) のデータのみを暗号化します。転送中のデータあるいは使用中のデータでデータの安全性が考慮される場合には、次のように追加の対策を実行する必要がある場合があります。
  + 送信中のデータ: 送信中、QLDB 内のすべてのデータが暗号化されます。**デフォルトでは、QLDB との通信において、Secure Sockets Layer (SSL)/Transport Layer Security (TLS) 暗号化を使用してネットワークトラフィックを保護する HTTPS プロトコルが使用されます。
  + 使用中のデータ: クライアント側の暗号化を使用することで、QLDB にデータを送信する前にデータを保護します。**

台帳に対してカスタマーマネージドキーを実装する方法については、「[Amazon QLDB でカスタマーマネージドキーを使用する](encryption-at-rest.using-cust-keys.md)」を参照してください。

# Amazon QLDB でカスタマーマネージドキーを使用する
<a name="encryption-at-rest.using-cust-keys"></a>

 AWS マネジメントコンソール、 AWS Command Line Interface （AWS CLI）、または QLDB API を使用して、Amazon QLDB の新しい台帳と既存の台帳 AWS KMS key の を指定できます。以下のトピックでは、QLDB でのカスタマーマネージドキーの使用状況を管理および監視する方法について説明します。

**Topics**
+ [前提条件](#encryption-at-rest.using-cust-keys.prereqs)
+ [新しい台帳に AWS KMS key を指定する](#encryption-at-rest.using-cust-keys.specify)
+ [既存の台帳の AWS KMS key を更新する](#encryption-at-rest.using-cust-keys.update)
+ [AWS KMS keysのモニタリング](#encryption-at-rest.using-cust-keys.monitor)

## 前提条件
<a name="encryption-at-rest.using-cust-keys.prereqs"></a>

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

**カスタマーマネージドキーの作成**  
カスタマーマネージドキーを作成するには、「AWS Key Management Service デベロッパーガイド」の「[対称暗号化 KMS キーの作成](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html#create-symmetric-cmk)」のステップに従います。QLDB は[非対称キー](https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html)をサポートしていません。

**キーポリシーの設定**  
キーポリシーは、 でカスタマーマネージドキーへのアクセスを制御する主な方法です AWS KMS。すべてのカスタマーマネージドキーには、厳密に 1 つのキーポリシーが必要です。キーポリシードキュメントのステートメントでは、KMS キーの使用を許可するユーザーとその使用方法を決定します。詳細については、[「 でのキーポリシー AWS KMS](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html)の使用」を参照してください。  
カスタマーマネージドキーを作成する際に、キーポリシーを指定することができます。既存のカスタマーマネージドキーのキーポリシーを変更するには、「[キーポリシーの変更](https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-modifying.html)」を参照してください。  
QLDB がカスタマーマネージドキーを使用できるようにするには、キーポリシーに次の AWS KMS アクションのアクセス許可を含める必要があります。  
+ [kms:CreateGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.html) – カスタマーマネージドキーに[権限](https://docs.aws.amazon.com/kms/latest/developerguide/grants.html)を追加します。指定された KMS キーに対するアクセスコントロールを許可します。

  指定されたカスタマーマネージドキーで台帳を作成または更新すると、QLDB は、必要な[権限オペレーション](https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#terms-grant-operations)へのアクセスを可能にする権限を作成します。権限オペレーションには以下が含まれます。
  + [GenerateDataKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKey.html)
  + [Decrypt](https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html)
  + [暗号化](https://docs.aws.amazon.com/kms/latest/APIReference/API_Encrypt.html)
+ [kms:DescribeKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeKey.html) – カスタマーマネージドキーに関する詳細情報を返します。QLDB は、この情報を使用してキーを検証します。
**キーポリシーの例**  
以下は、QLDB で使用できるキーポリシーの例です。このポリシーでは、アカウント `111122223333` から QLDB を使用して、リソース `arn:aws:kms:us-east-1:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab` で `DescribeKey` オペレーションと `CreateGrant` オペレーションを呼び出す権限があるプリンシパルを許可しています。  
このポリシーを使用するには、以下の例の *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 を指定する
<a name="encryption-at-rest.using-cust-keys.specify"></a>

QLDB コンソールまたは AWS CLIを使用して新しい台帳を作成するときに KMS キーを指定するには、次のステップを実行します。

カスタマーマネージドキーは、ID、エイリアス、または Amazon リソースネーム (ARN) を使用して指定できます。詳細については、「**AWS Key Management Service デベロッパーガイド」の「[キー識別子 (KeyId)](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#key-id)」を参照してください。

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

### 台帳の作成 (コンソール)
<a name="encryption-at-rest.using-cust-keys.specify.con"></a>

1. にサインインし AWS マネジメントコンソール、[https://console.aws.amazon.com/qldb](https://console.aws.amazon.com/qldb) で Amazon QLDB コンソールを開きます。

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

1. [**Create Ledger (台帳の作成)**] ページで、以下の操作を実行します。
   + **台帳情報** – 現在の AWS アカウント とリージョンのすべての**台帳で一意の台帳名**を入力します。
   + **[Permissions mode]** (アクセス許可モード) – 台帳に割り当てるアクセス許可モードを選択します。
     + **[Allow all]** (すべて許可)
     + **[Standard]** (スタンダード) (*推奨*)
   + **[Encrypt data at rest]** (保管中のデータの暗号化) – 保管時の暗号化に使用する KMS キーのタイプを選択します。
     + ** AWS 所有の KMS キー**を使用する – ユーザーに代わって が所有および管理している KMS キー AWS を使用します。これはデフォルトのオプションであり、追加のセットアップは必要ありません。
     + **別の AWS KMS キーを選択する** – 作成、所有、管理するアカウントで対称暗号化 KMS キーを使用します。

        AWS KMS コンソールを使用して新しいキーを作成するには、** AWS KMS キーの作成**を選択します。詳細については、「AWS Key Management Service デベロッパーガイド」の「[対称暗号化 KMS キーを作成する](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html#create-symmetric-cmk)」を参照してください。

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

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

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

### 台帳の作成 (AWS CLI)
<a name="encryption-at-rest.using-cust-keys.specify.cli"></a>

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

**Example – デフォルトの AWS 所有のキーを使用して台帳を作成するには**  

```
aws qldb create-ledger --name my-example-ledger --permissions-mode STANDARD
```

**Example – カスタマーマネージドキーを使用して台帳を作成するには**  

```
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 を更新する
<a name="encryption-at-rest.using-cust-keys.update"></a>

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

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

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

カスタマーマネージドキーは、ID、エイリアス、または Amazon リソースネーム (ARN) を使用して指定できます。詳細については、「**AWS Key Management Service デベロッパーガイド」の「[キー識別子 (KeyId)](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#key-id)」を参照してください。

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

### 台帳の更新 (コンソール)
<a name="encryption-at-rest.using-cust-keys.update.con"></a>

1. にサインインし AWS マネジメントコンソール、[https://console.aws.amazon.com/qldb](https://console.aws.amazon.com/qldb) で Amazon QLDB コンソールを開きます。

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

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

1. **[Edit ledger]** (台帳を編集) ページで、保管時の暗号化に使用する KMS キーのタイプを選択します。
   + ** AWS 所有の KMS キー**を使用する – ユーザーに代わって が所有および管理している KMS キー AWS を使用します。これはデフォルトのオプションであり、追加のセットアップは必要ありません。
   + **別の AWS KMS キーを選択する** – 作成、所有、管理するアカウントで対称暗号化 KMS キーを使用します。

      AWS KMS コンソールを使用して新しいキーを作成するには、** AWS KMS キーの作成**を選択します。詳細については、「AWS Key Management Service デベロッパーガイド」の「[対称暗号化 KMS キーを作成する](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html#create-symmetric-cmk)」を参照してください。

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

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

### 台帳の更新 (AWS CLI)
<a name="encryption-at-rest.using-cust-keys.update.cli"></a>

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

**Example – デフォルトの AWS 所有のキーを使用して台帳を更新するには**  

```
aws qldb update-ledger --name my-example-ledger --kms-key AWS_OWNED_KMS_KEY
```

**Example – カスタマーマネージドキーを使用して台帳を更新するには**  

```
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のモニタリング
<a name="encryption-at-rest.using-cust-keys.monitor"></a>

カスタマーマネージドキーを使用して Amazon QLDB 台帳を保護する場合は、 [AWS CloudTrail](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-user-guide.html)または [Amazon CloudWatch Logs](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/WhatIsCloudWatchLogs.html) を使用して、QLDB が AWS KMS ユーザーに代わって に送信するリクエストを追跡できます。詳細については、「AWS Key Management Service デベロッパーガイド」の「[AWS KMS keysのモニタリング](https://docs.aws.amazon.com/kms/latest/developerguide/monitoring-overview.html)」を参照してください。**

以下の例は、`CreateGrant`、`GenerateDataKey`、`Decrypt`、`Encrypt`、`DescribeKey` の各オペレーションの CloudTrail ログエントリです。

**CreateGrant**  
台帳を保護するためにカスタマーマネージドキーを指定すると、QLDB は AWS KMS ユーザーに代わって に`CreateGrant`リクエストを送信し、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**  
台帳にアクセスすると、QLDB は `Decrypt` オペレーションを呼び出して台帳の保存されたデータキーを復号化し、台帳内の暗号化されたデータにアクセスできるようにします。  
`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"
}
```