

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

# QLDB のストリーミング許可
<a name="streams.perms"></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 ストリーミングを作成する前に、指定した Amazon Kinesis Data Streams リソースへの書き込み許可を QLDB に付与する必要があります。Kinesis ストリーミングのサーバー側の暗号化にカスタマーマネージド AWS KMS key を使用する場合、指定した対称暗号化キーを使用する許可も QLDB に付与する必要があります。Kinesis Data Streams では[非対称 KMS キー](https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html)はサポートされていません。

QLDB ストリーミングに必要なアクセス許可を提供するために、適切なアクセス許可ポリシーを持つ IAM サービスロールを QLDB が引き受けることができます。サービスロールとは、サービスがユーザーに代わってアクションを実行するために引き受ける [IAM ロール](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html)です。IAM 管理者は、IAM 内からサービスロールを作成、変更、削除できます。詳細については、「*IAM ユーザーガイド*」の「[AWS のサービスに許可を委任するロールを作成する](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html)」を参照してください。

**注記**  
ジャーナルストリーミングをリクエストするときに QLDB にロールを渡すには、IAM ロールリソースで `iam:PassRole` アクションを実行するための許可が必要です。QLDB ストリーミングサブリソースに対する `qldb:StreamJournalToKinesis` 許可に加えて、この許可も必要です。  
IAM を使用して QLDB へのアクセスを制御する方法については、「[Amazon QLDB で IAM が機能する仕組み](security_iam_service-with-iam.md)」を参照してください。QLDB ポリシーの例については、「[Amazon QLDB のアイデンティティベースのポリシー例](security_iam_id-based-policy-examples.md#security_iam_id-based-policy-examples-stream-to-kinesis)」を参照してください。

この例では、ユーザーに代わって、Kinesis データストリームにデータレコードを書き込むことを QLDB に許可するロールを作成します。詳細については、「*IAM ユーザーガイド*」の「[AWS のサービスにアクセス許可を委任するロールの作成](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html)」を参照してください。

で QLDB ジャーナル AWS アカウント を初めてストリーミングする場合は、まず以下を実行して、適切なポリシーを持つ IAM ロールを作成する必要があります。または、[QLDB コンソールを使用して](streams.create.md#streams.create.con)、ロールを自動的に作成できます。それ以外の場合は、前に作成したロールを選択できます。

**Topics**
+ [許可ポリシーを作成する](#streams.perms.create-policy)
+ [IAM ロールを作成する](#streams.perms.create-role)

## 許可ポリシーを作成する
<a name="streams.perms.create-policy"></a>

以下のステップを実行して、QLDB ストリーミングに許可ポリシーを作成します。以下の例は、指定した Kinesis データストリームにデータレコードを書き込む許可を QLDB に付与する Kinesis Data Streams ポリシーを示しています。該当する場合、QLDB に対称暗号化 KMS キーの使用を許可するキーポリシーも示しています。

Kinesis Data Streams ポリシーの詳細については、「**Amazon Kinesis Data Streams デベロッパーガイド」の「[IAM を使用して Amazon Kinesis Data Streams リソースへのアクセスを制御する](https://docs.aws.amazon.com/streams/latest/dev/controlling-access.html)」と「[ユーザー生成 KMS キーを使用するためのアクセス許可](https://docs.aws.amazon.com/streams/latest/dev/permissions-user-key-KMS.html)」を参照してください。 AWS KMS キーポリシーの詳細については、 *AWS Key Management Service デベロッパーガイド*の[「 でのキーポリシー AWS KMS](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html)の使用」を参照してください。

**注記**  
Kinesis データストリームと KMS キーは、QLDB 台帳と同じ AWS リージョン と アカウントにある必要があります。

**JSON ポリシーエディタでポリシーを作成するには**

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

1. 左側のナビゲーション列で、[**ポリシー**] を選択します。

   **[Policies]** (ポリシー) を初めて選択する場合は、**[Welcome to Managed Policies]** (マネージドポリシーにようこそ) ページが表示されます。**[今すぐ始める]** を選択します。

1. ページの上部で、[**ポリシーを作成**] を選択します。

1. **[JSON]** タブを選択します。

1. JSON ポリシードキュメントを入力します。
   + Kinesis ストリーミングのサーバー側の暗号化にカスタマーマネージド KMS キーを使用する場合は、以下のポリシードキュメントの例を使用します。このポリシーを使用するには、例の *us-east-1*、*123456789012*、*kinesis-stream-name*、および *1234abcd-12ab-34cd-56ef-1234567890ab* を自分の情報と置き換えます。

     ```
     {
         "Version": "2012-10-17",
         "Statement": [
             {
                 "Sid": "QLDBStreamKinesisPermissions",
                 "Action": [ "kinesis:PutRecord*", "kinesis:DescribeStream", "kinesis:ListShards" ],
                 "Effect": "Allow",
                 "Resource": "arn:aws:kinesis:us-east-1:123456789012:stream/kinesis-stream-name"
             },
             {
                 "Sid": "QLDBStreamKMSPermission",
                 "Action": [ "kms:GenerateDataKey" ],
                 "Effect": "Allow",
                 "Resource": "arn:aws:kms:us-east-1:123456789012:key/1234abcd-12ab-34cd-56ef-1234567890ab"
             }
         ]
     }
     ```
   + それ以外の場合は、以下のポリシードキュメントの例を使用します。このポリシーを使用するには、例の *us-east-1*、*123456789012*、および *kinesis-stream-name* を自分の情報と置き換えます。

     ```
     {
         "Version": "2012-10-17",
         "Statement": [
             {
                 "Sid": "QLDBStreamKinesisPermissions",
                 "Action": [ "kinesis:PutRecord*", "kinesis:DescribeStream", "kinesis:ListShards" ],
                 "Effect": "Allow",
                 "Resource": "arn:aws:kinesis:us-east-1:123456789012:stream/kinesis-stream-name"
             }
         ]
     }
     ```

1. **[ポリシーの確認]** を選択します。
**注記**  
いつでも **[Visual editor]** (ビジュアルエディタ) タブと **[JSON]** タブを切り替えることができます。ただし、**[Visual editor]** (ビジュアルエディタ) タブで **[Review policy]** (ポリシーの確認) を変更または選択した場合、IAM はポリシーを再構成してビジュアルエディタに合わせて最適化することがあります。詳細については、*IAM ユーザーガイド*の「[ポリシーの再構成](https://docs.aws.amazon.com/IAM/latest/UserGuide/troubleshoot_policies.html#troubleshoot_viseditor-restructure)」を参照してください。

1. [**ポリシーの確認**] ページに作成するポリシーの [**名前**] と [**説明**] を入力します。ポリシーの **[Summary]** (概要) を参照して、ポリシーによって付与された許可を確認します。次に、**[Create policy]** (ポリシーの作成) を選択して作業を保存します。

## IAM ロールを作成する
<a name="streams.perms.create-role"></a>

QLDB ストリーミングの許可ポリシーを作成したら、次に IAM ロールを作成し、ポリシーをアタッチします。

**QLDB のサービスロールを作成するには (IAM コンソール)**

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

1. IAM コンソールのナビゲーションペインで、**[ロール]**、**[ロールを作成]** を選択します。

1. **信頼できるエンティティタイプ** で、**AWS のサービス** を選択します。

1. **[サービス] または [ユースケース]** で **[QLDB]** を選択し、次に **[QLDB]** ユースケースを選択します。

1. [**次へ**] を選択します。

1. 前のステップで作成したポリシーの横にあるボックスをオンにします。

1. (オプション) [アクセス許可の境界](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_boundaries.html)を設定します。このアドバンスド機能は、サービスロールで使用できますが、サービスにリンクされたロールではありません。

   1. **[アクセス許可の境界の設定]** セクションを開き、**[アクセス許可の境界を使用してロールのアクセス許可の上限を設定する]** を選択します。

      IAM には、 アカウントの AWS 管理ポリシーとカスタマー管理ポリシーのリストが含まれます。

   1. アクセス許可の境界として使用するポリシーを選択します。

1. [**次へ**] を選択します。

1. このロールの目的を識別しやすいロール名またはロール名サフィックスを入力します。
**重要**  
ロールに名前を付けるときは、次のことに注意してください。  
ロール名は 内で一意である必要があり AWS アカウント、大文字と小文字を区別することはできません。  
例えば、**PRODROLE** と **prodrole** の両方の名前でロールを作成することはできません。ロール名がポリシーまたは ARN の一部として使用される場合、ロール名は大文字と小文字が区別されます。ただし、サインインプロセスなど、コンソールにロール名がユーザーに表示される場合、ロール名は大文字と小文字が区別されません。
他のエンティティがロールを参照する可能性があるため、ロールを作成した後にロール名を編集することはできません。

1. (オプション) **[説明]** にロールの説明を入力します。

1. (オプション) ロールのユースケースとアクセス許可を編集するには、**[ステップ 1: 信頼されたエンティティを選択]** または **[ステップ 2: アクセス権限を追加]** のセクションで **[編集]** を選択します。

1. (オプション) ロールの識別、整理、検索を簡単にするには、キーと値のペアとしてタグを追加します。IAM でのタグの使用の詳細については、IAM *ユーザーガイド*の[AWS Identity and Access Management 「リソースのタグ](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html)」を参照してください。

1. ロールを確認したら、**[ロールを作成]** を選択します。

以下の JSON ドキュメントは、特定の許可がアタッチされた IAM ロールを引き受けることを QLDB に許可する信頼ポリシーの例です。

```
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Service": "qldb.amazonaws.com"
            },
            "Action": [ "sts:AssumeRole" ],
            "Condition": {
                "ArnEquals": {
                    "aws:SourceArn": "arn:aws:qldb:us-east-1:123456789012:stream/myExampleLedger/*"
                },
                "StringEquals": {
                    "aws:SourceAccount": "123456789012"
                }
            }
        }
    ]
}
```

**注記**  
この信頼ポリシーの例では、`aws:SourceArn` および `aws:SourceAccount` グローバル条件コンテキストキーを使用して、**混乱した代理問題を回避する方法を示します。この信頼ポリシーを使用すると、QLDB は台帳 `123456789012` のみでアカウント `myExampleLedger` の任意の QLDB ストリーミングに対応するロールを引き受けることができます。  
詳細については、「[クロスサービスの混乱した副防止](cross-service-confused-deputy-prevention.md)」を参照してください。

IAM ロールを作成した後、QLDB コンソールに戻り、**[Create QLDB stream]** (QLDB ストリームを作成) ページを更新すると、新しいロールが見つかります。