Amazon での標準アクセス許可モードの開始方法 QLDB - Amazon Quantum 台帳データベース (Amazon QLDB)

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

Amazon での標準アクセス許可モードの開始方法 QLDB

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

STANDARD アクセス許可モード

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

注記

以前は、台帳で使用できる唯一のアクセス許可モードは ALLOW_ALL でした。このALLOW_ALLモードでは、台帳の APIレベルの粒度でアクセスコントロールが可能になり、QLDB台帳では引き続きサポートされますが、推奨されません。このモードでは、アクセスSendCommandAPI許可を持つユーザーは、アクセス許可ポリシーで指定された台帳内の任意のテーブルですべての PartiQL コマンドを実行できます (したがって、「すべての PartiQL コマンドを許可」します)。

既存の台帳のアクセス許可モードを ALLOW_ALL から STANDARD に変更できます。詳細については、標準アクセス許可モードへの移行 を参照してください。

標準モードでコマンドを許可するには、特定のテーブルリソースと PartiQL アクションIAMのアクセス許可ポリシーを で作成する必要があります。これは台帳のSendCommandAPIアクセス許可に追加されます。このモードでポリシーを容易にするために、 は PartiQL コマンド用の一連のIAMアクションと、QLDBテーブル用の Amazon リソースネーム (ARNs) QLDBを導入しました。QLDB データオブジェクトモデルの詳細については、「」を参照してくださいAmazon の主要な概念と用語 QLDB

PartiQL アクセス許可のリファレンス

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

重要
  • IAM これらの PartiQL コマンドにアクセス許可を付与する ポリシーは、STANDARDアクセス許可モードが台帳に割り当てられている場合にのみ台帳に適用されます。このようなポリシーは、ALLOW_ALL アクセス許可モードの台帳には適用できません。

    台帳を作成または更新するときにアクセス許可モードを指定する方法については、「Amazon QLDB台帳の基本オペレーション」、または「コンソールの開始方法」の「ステップ 1: 新しい台帳を作成する」を参照してください。

  • 台帳で PartiQL コマンドを実行するには、台帳リソースの SendCommandAPIアクションへのアクセス許可も付与する必要があります。これは、次の表に示す PartiQL アクションおよびテーブルリソースに追加されています。詳細については、「データトランザクションの実行」を参照してください。

Amazon QLDB PartiQL コマンドと必要なアクセス許可
Command 必要なアクセス許可 (IAM アクション) リソース 依存アクション
CREATE TABLE qldb:PartiQLCreateTable

arn:aws:qldb:region:account-id:ledger/ledger-name/table/*

qldb:TagResource (作成時のタグ付け用)
DROP TABLE qldb:PartiQLDropTable

arn:aws:qldb:region:account-id:ledger/ledger-name/table/table-id

UNDROP TABLE qldb:PartiQLUndropTable

arn:aws:qldb:region:account-id:ledger/ledger-name/table/table-id

CREATE INDEX qldb:PartiQLCreateIndex

arn:aws:qldb:region:account-id:ledger/ledger-name/table/table-id

DROP INDEX qldb:PartiQLDropIndex

arn:aws:qldb:region:account-id:ledger/ledger-name/table/table-id

DELETE qldb:PartiQLDelete

arn:aws:qldb:region:account-id:ledger/ledger-name/table/table-id

qldb:PartiQLSelect
FROM-REMOVE (ドキュメント全体)
INSERT qldb:PartiQLInsert

arn:aws:qldb:region:account-id:ledger/ledger-name/table/table-id

UPDATE qldb:PartiQLUpdate

arn:aws:qldb:region:account-id:ledger/ledger-name/table/table-id

qldb:PartiQLSelect
FROM (INSERT、REMOVE、または SET)
REDACT_REVISION (ストアドプロシージャ) qldb:PartiQLRedact

arn:aws:qldb:region:account-id:ledger/ledger-name/table/table-id

SELECT FROM table_name

qldb:PartiQLSelect

arn:aws:qldb:region:account-id:ledger/ledger-name/table/table-id

SELECT FROM information_schema.user_tables

qldb:PartiQLSelect

arn:aws:qldb:region:account-id:ledger/ledger-name/information_schema/user_tables

SELECT FROM history(table_name)

qldb:PartiQLHistoryFunction

arn:aws:qldb:region:account-id:ledger/ledger-name/table/table-id

これらの PartiQL コマンドにアクセス許可を付与するIAMポリシードキュメントの例については、クイックスタートチュートリアル: アクセス許可ポリシーの作成「」または「」を参照してくださいAmazon のアイデンティティベースのポリシーの例 QLDB

テーブル ID と の検索 ARN

テーブル ID は、 を使用して検索できます。 AWS Management Console または、テーブル information_schema.user_tables をクエリします。コンソールでテーブルの詳細を表示する、または、このシステムカタログテーブルのクエリを実行するには、システムカタログリソースに対する 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 のARNテーブルの例を次に示しますAu1EiThbt8s0z9wM26REZN

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

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

テーブルARNの を検索するには (コンソール)
  1. にサインインする AWS Management Consoleで、Amazon QLDBコンソールを https://console.aws.amazon.com/qldb で開きます。

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

  3. 台帳 のリストで、テーブルARNを検索する台帳名を選択します。

  4. 台帳の詳細ページのテーブルタブで、ARN検索するテーブル名を見つけます。をコピーするにはARN、その横のコピーアイコン ( Copy icon. ) を選択します。

テーブルのタグ付け

テーブルリソースにタグ付けすることができます。既存のテーブルのタグを管理するには、 を使用します。 AWS Management Console または APIオペレーション TagResourceUntagResource、および ListTagsForResource。詳細については、「Amazon QLDBリソースのタグ付け」を参照してください。

注記

テーブルリソースは、ルート台帳リソースのタグを継承しません。

作成時のテーブルのタグ付けは、現在 STANDARD 許可モードの台帳のみでサポートされています。

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

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

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

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

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

作成時にテーブルにタグを付けるには (コンソール)
  1. にサインインする AWS Management Consoleで、Amazon QLDBコンソールを https://console.aws.amazon.com/qldb で開きます。

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

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

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

  5. [Create table] (テーブルを作成) ページで、次の操作を行います。

    • [Table name] (テーブル名) – テーブル名を入力します。

    • [Tags] (タグ) – タグをキーと値の組み合わせとしてアタッチすることで、メタデータをテーブルに追加します。テーブルにタグを追加すると、テーブルの整理と識別がしやすくなります。

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

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

クイックスタートチュートリアル: アクセス許可ポリシーの作成

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

PartiQL コマンドとテーブルリソースにアクセス許可を付与するIAMポリシードキュメントの例については、「」を参照してくださいAmazon のアイデンティティベースのポリシーの例 QLDB

前提条件

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

  1. に従う AWS まだセットアップしていない場合はAmazon へのアクセス QLDB、「」の手順を設定します。これらのステップには、 へのサインアップが含まれます。 AWS 管理ユーザーを作成します。

  2. 新しい台帳を作成し、台帳の STANDARD アクセス許可モードを選択します。その方法については、「コンソールの開始方法」の「ステップ 1: 新しい台帳を作成する」、または「Amazon QLDB台帳の基本オペレーション」を参照してください。

読み取り専用ポリシーの作成

JSON ポリシーエディタを使用して、標準アクセス許可モードで台帳内のすべてのテーブルの読み取り専用ポリシーを作成するには、次の手順を実行します。

  1. にサインインする AWS Management Console でIAMコンソールを開きますhttps://console.aws.amazon.com/iam/

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

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

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

  4. JSON タブを選択します。

  5. 次の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" ] } ] }
  6. [ポリシーの確認] を選択します。

    注記

    ビジュアルエディタJSONタブはいつでも切り替えることができます。ただし、ビジュアルエディタタブでポリシーを変更または確認を選択すると、 IAMはポリシーを再構成してビジュアルエディタ用に最適化する場合があります。 詳細については、「 ユーザーガイド」の「ポリシーの再構築IAM」を参照してください。

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

フルアクセスポリシーの作成

標準アクセス許可モードでQLDB台帳内のすべてのテーブルのフルアクセスポリシーを作成するには、次の手順を実行します。

  • 次のポリシードキュメントを使用して、前のステップを繰り返します。このポリシー例では、ワイルドカード (*) を使用して、すべての PartiQL アクションと台帳のすべてのリソースがカバーされるようにすることで、台帳のすべてのテーブルに対するすべての PartiQL コマンドにアクセス権を付与しています。

    警告

    これは、ワイルドカード文字 (*) を使用して、QLDB台帳内のすべてのテーブルに対する管理オペレーションと読み取り/書き込みオペレーションを含むすべての PartiQL アクションを許可する例です。代わりに、付与する各アクションと、そのユーザー、ロール、またはグループが必要とするアクションのみを明示的に指定することをお勧めします。

    このポリシーを使用するには、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" ] } ] }

特定のテーブルの読み取り専用ポリシーの作成

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

  1. を使用してテーブルARNの を検索する AWS Management Console または、システムカタログテーブル をクエリしますinformation_schema.user_tables。手順については、テーブル ID と の検索 ARN を参照してください。

  2. テーブルARNを使用して、テーブルへの読み取り専用アクセスを許可するポリシーを作成します。これを行うには、次のポリシードキュメントを使用して、前のステップを繰り返します。

    このポリシー例では、指定されたテーブルにのみ、読み取り専用アクセス権が付与されています。この例では、テーブル 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" ] } ] }

権限の割り当て

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

アクセス権限を付与するには、ユーザー、グループ、またはロールにアクセス許可を追加します。