

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

# Amazon QLDB の標準アクセス許可モードの開始方法
<a name="getting-started-standard-mode"></a>

このセクションを参照して、Amazon QLDB の標準アクセス許可モードを開始します。このセクションでは、PartiQL アクションについて AWS Identity and Access Management (IAM) でアイデンティティベースのポリシーを作成する際に役立つリファレンステーブルと、QLDB のテーブルリソースを示します。また、IAM でアクセス許可ポリシーを作成するためのステップバイステップのチュートリアルと、QLDB でテーブル ARN を検索し、テーブルタグを作成する手順も含まれています。

**Topics**
+ [

## `STANDARD` アクセス許可モード
](#standard-permissions-mode)
+ [

## PartiQL アクセス許可のリファレンス
](#security_iam_partiql-reference)
+ [

## テーブル ID と ARN の検索
](#security_iam_partiql-ref.table-arn)
+ [

## テーブルのタグ付け
](#security_iam_partiql-ref.table-tags)
+ [

## クイックスタートチュートリアル: アクセス許可ポリシーの作成
](#getting-started-standard-mode-tutorial)

## `STANDARD` アクセス許可モード
<a name="standard-permissions-mode"></a>

QLDB では、台帳リソースの `STANDARD` アクセス許可モードがサポートされるようになりました。標準アクセス許可モードでは、台帳、テーブル、および PartiQL コマンドをより詳細なレベルでアクセスコントロールすることができます。デフォルトでは、このモードは、台帳内の任意のテーブルで、任意の PartiQL コマンドを実行するすべてのリクエストを拒否します。

**注記**  
以前は、台帳で使用できる唯一のアクセス許可モードは `ALLOW_ALL` でした。この `ALLOW_ALL` モードでは、台帳の API レベルの詳細度によるアクセスコントロールが有効になり、QLDB 台帳では引き続きサポートされますが、推奨はされません。このモードでは、`SendCommand` API アクセス許可があるユーザーは、アクセス許可ポリシーで指定された台帳の任意のテーブルですべての PartiQL コマンドを実行することができます (したがって、PartiQL コマンドを「すべて許可」します)。  
既存の台帳のアクセス許可モードを `ALLOW_ALL` から `STANDARD` に変更できます。詳細については、「[標準アクセス許可モードへの移行](ledger-management.basics.md#ledger-mgmt.basics.update-permissions.migrating)」を参照してください。

標準モードでコマンドを許可するには、特定のテーブルリソースと PartiQL アクションに対するアクセス許可ポリシーを IAM で作成する必要があります。これは、台帳に対する `SendCommand` API アクセス許可に追加されます。このモードのポリシーを容易にするために、QLDB では、PartiQL コマンドに対する [IAM アクションのセット](#security_iam_partiql-reference-table)、および QLDB テーブルの Amazon リソースネーム (ARN) が導入されました。QLDB データオブジェクトモデルの詳細については、「[Amazon QLDB の重要な概念と用語](ledger-structure.md)」を参照してください。

## PartiQL アクセス許可のリファレンス
<a name="security_iam_partiql-reference"></a>

次の表に、各 QLDB PartiQL コマンド、コマンドを実行するために に許可を付与する必要がある対応する IAM アクション、および許可を付与できる AWS リソースを示します。ポリシーの `Action` フィールドでアクションを指定し、ポリシーの `Resource` フィールドでリソースの値を指定します。

**重要**  
この PartiQL コマンドにアクセス許可を付与する IAM ポリシーは、`STANDARD` アクセス許可モードが台帳に割り当てられている場合にのみ、台帳に適用されます。このようなポリシーは、`ALLOW_ALL` アクセス許可モードの台帳には適用できません。  
台帳を作成または更新するときにアクセス許可モードを指定する方法については、「[Amazon QLDB 台帳の基本的なオペレーション](ledger-management.basics.md)」、または「コンソールの開始方法」の「[ステップ 1: 新しい台帳を作成する](getting-started-step-1.md)」を参照してください。**
台帳で任意の PartiQL コマンドを実行するには、台帳リソースに対する `SendCommand` API アクションにもアクセス許可を付与する必要があります。これは、次の表に示す PartiQL アクションおよびテーブルリソースに追加されています。詳細については、「[データトランザクションの実行](security_iam_id-based-policy-examples.md#security_iam_id-based-policy-examples-data-transactions)」を参照してください。


**Amazon QLDB PartiQL コマンドと必要なアクセス許可**  
<a name="security_iam_partiql-reference-table"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/qldb/latest/developerguide/getting-started-standard-mode.html)

これらの PartiQL コマンドにアクセス許可を付与する IAM ポリシードキュメントの例については、「[クイックスタートチュートリアル: アクセス許可ポリシーの作成](#getting-started-standard-mode-tutorial)」または「[Amazon QLDB のアイデンティティベースのポリシー例](security_iam_id-based-policy-examples.md)」を参照してください。

## テーブル ID と ARN の検索
<a name="security_iam_partiql-ref.table-arn"></a>

テーブル ID を見つけるには、 を使用する AWS マネジメントコンソール か、テーブル [information\$1schema.user\$1tables](working.catalog.md) をクエリします。コンソールでテーブルの詳細を表示する、または、このシステムカタログテーブルのクエリを実行するには、システムカタログリソースに対する `SELECT` アクセス許可が必要です。例えば、`Vehicle` テーブルのテーブル ID を検索するには、次のステートメントを実行できます。

```
SELECT * FROM information_schema.user_tables
WHERE name = 'Vehicle'
```

このクエリは、次の例のような形式で結果を返します。

```
{
    tableId: "Au1EiThbt8s0z9wM26REZN",
    name: "Vehicle",
    indexes: [
        { indexId: "Djg2nt0yIs2GY0T29Kud1z", expr: "[VIN]", status: "ONLINE" },
        { indexId: "4tPW3fUhaVhDinRgKRLhGU", expr: "[LicensePlateNumber]", status: "BUILDING" }
    ],
    status: "ACTIVE"
}
```

テーブルで PartiQL ステートメントを実行するためのアクセス許可を付与するには、次の ARN 形式でテーブルリソースを指定します。

```
arn:aws:qldb:${region}:${account-id}:ledger/${ledger-name}/table/${table-id}
```

以下に、テーブル ID `Au1EiThbt8s0z9wM26REZN` のテーブル ARN の例を示します。

```
arn:aws:qldb:us-east-1:123456789012:ledger/myExampleLedger/table/Au1EiThbt8s0z9wM26REZN
```

### コンソールを使用する
<a name="security_iam_partiql-ref.table-arn.con"></a>

QLDB コンソールを使用してテーブル ARN を検索することもできます。

**テーブルの ARN を検索するには (コンソール)**

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

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

1. **[Ledgers]** (台帳) のリストで、検索するテーブル ARN の台帳名を選択します。

1. 台帳の詳細ページの **[Tables]** (テーブル) タブで、検索する ARN のテーブル名を見つけます。ARN をコピーするには、横のコピーアイコン (![\[Copy icon.\]](http://docs.aws.amazon.com/ja_jp/qldb/latest/developerguide/images/copy.png)) を選択します。

## テーブルのタグ付け
<a name="security_iam_partiql-ref.table-tags"></a>

テーブルリソースにタグ付けすることができます。既存のテーブルのタグを管理するには、 AWS マネジメントコンソール または API オペレーション `TagResource`、`UntagResource`、および を使用します`ListTagsForResource`。詳細については、「[Amazon QLDB リソースのタグ付け](tagging.md)」を参照してください。

**注記**  
テーブルリソースは、ルート台帳リソースのタグを継承しません。  
 作成時のテーブルのタグ付けは、現在 `STANDARD` 許可モードの台帳のみでサポートされています。

テーブルの作成中に、QLDB コンソールを使用するか、`CREATE TABLE` PartiQL ステートメントで指定して、テーブルタグを定義することもできます。次の例では、`Vehicle` という名前のテーブルをタグ `environment=production` を付けて作成します。

```
CREATE TABLE Vehicle WITH (aws_tags = `{'environment': 'production'}`)
```

作成時にテーブルにタグを付けるには、`qldb:PartiQLCreateTable` および `qldb:TagResource` アクションの両方にアクセスする必要があります。

作成時にリソースにタグ付けすることで、リソース作成後にカスタムタグ付けスクリプトを実行する必要がなくなります。テーブルにタグを付けると、それらのタグに基づいてテーブルへのアクセスを制御できます。例えば、特定のタグを持つテーブルにのみフルアクセスを付与できます。JSON ポリシーの例については、「[テーブルタグに基づくすべてのアクションへのフルアクセス](security_iam_id-based-policy-examples.md#security_iam_id-based-policy-examples-full-tags)」を参照してください。

### コンソールを使用する
<a name="security_iam_partiql-ref.table-tags.con"></a>

QLDB コンソールを使用して、テーブルの作成中にテーブルタグを定義することもできます。

**作成時にテーブルにタグを付けるには (コンソール)**

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

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

1. **[Ledgers]** (台帳) のリストで、テーブルを作成する台帳の名前を選択します。

1. 台帳の詳細ページの **[Tables]** (テーブル) タブで、**[Create table]** (テーブルを作成) を選択します。

1. **[Create table]** (テーブルを作成) ページで、次の操作を行います。
   + **[Table name]** (テーブル名) – テーブル名を入力します。
   + **[Tags]** (タグ) – タグをキーと値の組み合わせとしてアタッチすることで、メタデータをテーブルに追加します。テーブルにタグを追加すると、テーブルの整理と識別がしやすくなります。

     [**Add tag (タグの追加)**] を選択し、必要に応じて、任意のキーと値の組み合わせを入力します。

1. すべての設定が正しいことを確認したら、[**テーブルを作成**] を選択します。

## クイックスタートチュートリアル: アクセス許可ポリシーの作成
<a name="getting-started-standard-mode-tutorial"></a>

このチュートリアルでは、`STANDARD` アクセス許可モードの Amazon QLDB 台帳に対して IAM でアクセス許可ポリシーを作成する手順について説明します。その後、ユーザー、グループ、またはロールに権限を割り当てることができます。

PartiQL コマンドおよびテーブルリソースにアクセス許可を付与する IAM ポリシードキュメントの例については、「[Amazon QLDB のアイデンティティベースのポリシー例](security_iam_id-based-policy-examples.md)」を参照してください。

**Topics**
+ [

### 前提条件
](#getting-started-standard-mode-prereqs)
+ [

### 読み取り専用ポリシーの作成
](#getting-started-standard-mode-read-only)
+ [

### フルアクセスポリシーの作成
](#getting-started-standard-mode-full-access)
+ [

### 特定のテーブルの読み取り専用ポリシーの作成
](#getting-started-standard-mode-read-only-table)
+ [

### アクセス許可の割り当て
](#getting-started-standard-mode-assign-permissions)

### 前提条件
<a name="getting-started-standard-mode-prereqs"></a>

作業を始める前に、次の操作を実行してください。

1.  AWS まだ設定していない場合は[Amazon QLDB へのアクセス](accessing.md)、「」の設定手順に従ってください。これらのステップには、 へのサインアップ AWS と管理ユーザーの作成が含まれます。

1. 新しい台帳を作成し、台帳の `STANDARD` アクセス許可モードを選択します。その方法については、「コンソールの開始方法」の「[ステップ 1: 新しい台帳を作成する](getting-started-step-1.md)」、または「[Amazon QLDB 台帳の基本的なオペレーション](ledger-management.basics.md)」を参照してください。**

### 読み取り専用ポリシーの作成
<a name="getting-started-standard-mode-read-only"></a>

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 ポリシードキュメントをコピーして貼り付けます。このポリシー例では、台帳のすべてのテーブルに読み取り専用アクセス権を付与しています。**

   このポリシーを使用するには、以下の例の *us-east-1*、*123456789012*、および *myExampleLedger* を自分の情報と置き換えます。

   ```
   {
     "Version": "2012-10-17",
     "Statement": [
       {
         "Sid": "QLDBSendCommandPermission",
         "Effect": "Allow",
         "Action": "qldb:SendCommand",
         "Resource": "arn:aws:qldb:us-east-1:123456789012:ledger/myExampleLedger"
       },
       {
         "Sid": "QLDBPartiQLReadOnlyPermissions",
         "Effect": "Allow",
         "Action": [
           "qldb:PartiQLSelect",
           "qldb:PartiQLHistoryFunction"
         ],
         "Resource": [
           "arn:aws:qldb:us-east-1:123456789012:ledger/myExampleLedger/table/*",
           "arn:aws:qldb:us-east-1:123456789012:ledger/myExampleLedger/information_schema/user_tables"
         ]
       }
     ]
   }
   ```

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]** (ポリシーの作成) を選択して作業を保存します。

### フルアクセスポリシーの作成
<a name="getting-started-standard-mode-full-access"></a>

標準アクセス許可モードの QLDB 台帳内のすべてのテーブルに対するフルアクセスポリシーを作成するには、次の手順を実行します。
+ 次のポリシードキュメントを使用して、[前のステップ](#getting-started-standard-mode-read-only)を繰り返します。このポリシー例では、ワイルドカード (\$1) を使用して、すべての PartiQL アクションと台帳のすべてのリソースがカバーされるようにすることで、台帳のすべてのテーブルに対するすべての PartiQL コマンドにアクセス権を付与しています。****
**警告**  
これは、ワイルドカード文字 (\$1) を使用して、すべての PartiQL アクションを許可する例です。これには、QLDB 台帳のすべてのテーブルに対する管理オペレーションと読み取り/書き込みオペレーションが含まれます。代わりに、付与する各アクションと、そのユーザー、ロール、またはグループが必要とするアクションのみを明示的に指定することをお勧めします。

  このポリシーを使用するには、以下の例の *us-east-1*、*123456789012*、および *myExampleLedger* を自分の情報と置き換えます。

  ```
  {
    "Version": "2012-10-17",
    "Statement": [
      {
        "Sid": "QLDBSendCommandPermission",
        "Effect": "Allow",
        "Action": "qldb:SendCommand",
        "Resource": "arn:aws:qldb:us-east-1:123456789012:ledger/myExampleLedger"
      },
      {
        "Sid": "QLDBPartiQLFullPermissions",
        "Effect": "Allow",
        "Action": [
          "qldb:PartiQL*"
        ],
        "Resource": [
          "arn:aws:qldb:us-east-1:123456789012:ledger/myExampleLedger/table/*",
          "arn:aws:qldb:us-east-1:123456789012:ledger/myExampleLedger/information_schema/user_tables"
        ]
      }
    ]
  }
  ```

### 特定のテーブルの読み取り専用ポリシーの作成
<a name="getting-started-standard-mode-read-only-table"></a>

標準アクセス許可モードの QLDB 台帳内の特定のテーブルに対する読み取り専用アクセスポリシーを作成するには、次の手順を実行します。

1. を使用する AWS マネジメントコンソール か、システムカタログテーブル をクエリして、テーブルの ARN を検索します`information_schema.user_tables`。手順については、「[テーブル ID と ARN の検索](#security_iam_partiql-ref.table-arn)」を参照してください。

1. テーブル ARN を使用して、テーブルへの読み取り専用アクセスを許可するポリシーを作成します。これを行うには、次のポリシードキュメントを使用して、[前のステップ](#getting-started-standard-mode-read-only)を繰り返します。

   このポリシー例では、指定されたテーブルにのみ、読み取り専用アクセス権が付与されています。****この例では、テーブル ID は `Au1EiThbt8s0z9wM26REZN` です。このポリシーを使用するには、以下の例の *us-east-1*、*123456789012*、*myExampleLedger*、および *Au1EiThbt8s0z9wM26REZN* を自分の情報と置き換えます。

   ```
   {
     "Version": "2012-10-17",
     "Statement": [
       {
         "Sid": "QLDBSendCommandPermission",
         "Effect": "Allow",
         "Action": "qldb:SendCommand",
         "Resource": "arn:aws:qldb:us-east-1:123456789012:ledger/myExampleLedger"
       },
       {
         "Sid": "QLDBPartiQLReadOnlyPermissions",
         "Effect": "Allow",
         "Action": [
           "qldb:PartiQLSelect",
           "qldb:PartiQLHistoryFunction"
         ],
         "Resource": [
           "arn:aws:qldb:us-east-1:123456789012:ledger/myExampleLedger/table/Au1EiThbt8s0z9wM26REZN"
         ]
       }
     ]
   }
   ```

### アクセス許可の割り当て
<a name="getting-started-standard-mode-assign-permissions"></a>

QLDB アクセス権限ポリシーを作成したら、次のように権限を割り当てます。

アクセス権限を付与するにはユーザー、グループ、またはロールにアクセス許可を追加します。
+ 以下のユーザーとグループ AWS IAM アイデンティティセンター：

  アクセス許可セットを作成します。「*AWS IAM アイデンティティセンター ユーザーガイド*」の「[権限設定を作成する](https://docs.aws.amazon.com/singlesignon/latest/userguide/howtocreatepermissionset.html)」の手順に従ってください。
+ IAM 内で、ID プロバイダーによって管理されているユーザー:

  ID フェデレーションのロールを作成します。詳細については「IAM ユーザーガイド」の「[サードパーティー ID プロバイダー (フェデレーション) 用のロールを作成する](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-idp.html)」を参照してください。
+ IAM ユーザー:
  + ユーザーが担当できるロールを作成します。手順については「*IAM ユーザーガイド*」の「[IAM ユーザーのロールの作成](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user.html)」を参照してください。
  + (お奨めできない方法) ポリシーをユーザーに直接アタッチするか、ユーザーをユーザーグループに追加します。詳細については「IAM ユーザーガイド**」の「[ユーザー (コンソール) へのアクセス権限の追加](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_change-permissions.html#users_change_permissions-add-console)」を参照してください。