翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Amazon での標準アクセス許可モードの開始方法 QLDB
このセクションを使用して、Amazon の標準アクセス許可モードを開始しますQLDB。このセクションでは、 AWS Identity and Access Management (IAM) の PartiQL アクションと のテーブルリソースで ID ベースのポリシーを記述する際に役立つリファレンステーブルを提供しますQLDB。また、 でアクセス許可ポリシーを作成するための step-by-stepチュートリアルとIAM、 でテーブルを検索ARNし、テーブルタグを作成する手順も含まれていますQLDB。
STANDARD
アクセス許可モード
QLDB は台帳リソースのSTANDARD
アクセス許可モードをサポートするようになりました。標準アクセス許可モードでは、台帳、テーブル、および PartiQL コマンドをより詳細なレベルでアクセスコントロールすることができます。デフォルトでは、このモードは、台帳内の任意のテーブルで、任意の PartiQL コマンドを実行するすべてのリクエストを拒否します。
注記
以前は、台帳で使用できる唯一のアクセス許可モードは ALLOW_ALL
でした。このALLOW_ALL
モードでは、台帳に APIレベルの粒度でアクセスコントロールが可能になり、QLDB台帳には引き続きサポートされますが、推奨されません。このモードでは、アクセスSendCommand
API許可ポリシーで指定された台帳内の任意のテーブルですべての PartiQL コマンドを実行するアクセス許可を持つユーザーを許可します (したがって、「すべての PartiQL コマンドを許可)。
既存の台帳のアクセス許可モードを ALLOW_ALL
から STANDARD
に変更できます。詳細については、標準アクセス許可モードへの移行 を参照してください。
標準モードでコマンドを許可するには、特定のテーブルリソースと PartiQL アクションIAMのアクセス許可ポリシーを で作成する必要があります。これは、台帳のSendCommand
APIアクセス許可に追加されます。このモードでポリシーを容易にするために、 は 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 コマンドを実行するには、台帳リソースの
SendCommand
API アクションへのアクセス許可も付与する必要があります。これは、次の表に示す PartiQL アクションおよびテーブルリソースに追加されています。詳細については、「データトランザクションの実行」を参照してください。
Command | 必要なアクセス許可 (IAM アクション) | リソース | 依存アクション |
---|---|---|---|
CREATE TABLE | qldb:PartiQLCreateTable |
|
qldb:TagResource (作成時のタグ付け用) |
DROP TABLE | qldb:PartiQLDropTable |
|
|
UNDROP TABLE | qldb:PartiQLUndropTable |
|
|
CREATE INDEX | qldb:PartiQLCreateIndex |
|
|
DROP INDEX | qldb:PartiQLDropIndex |
|
|
DELETE | qldb:PartiQLDelete |
|
qldb:PartiQLSelect |
FROM-REMOVE (ドキュメント全体) | |||
INSERT | qldb:PartiQLInsert |
|
|
UPDATE | qldb:PartiQLUpdate |
|
qldb:PartiQLSelect |
FROM (INSERT、REMOVE、または SET) | |||
REDACT_REVISION (ストアドプロシージャ) | qldb:PartiQLRedact |
|
|
qldb:PartiQLSelect |
|
||
qldb:PartiQLSelect |
|
||
qldb:PartiQLHistoryFunction |
|
これらの 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の を検索するには (コンソール)
にサインインし AWS Management Console、https://console.aws.amazon.com/qldb
で Amazon QLDBコンソールを開きます。 -
ナビゲーションペイン内で [Ledgers (台帳)] を選択します。
-
Ledgers のリストで、テーブルARNを検索する台帳名を選択します。
-
台帳の詳細ページで、テーブルタブで、ARN検索するテーブル名を見つけます。をコピーするにはARN、その横のコピーアイコン ( ) を選択します。
テーブルのタグ付け
テーブルリソースにタグ付けすることができます。既存のテーブルのタグを管理するには、 AWS Management Console または APIオペレーション TagResource
、、UntagResource
および を使用しますListTagsForResource
。詳細については、「Amazon QLDBリソースのタグ付け」を参照してください。
注記
テーブルリソースは、ルート台帳リソースのタグを継承しません。
作成時のテーブルのタグ付けは、現在 STANDARD
許可モードの台帳のみでサポートされています。
QLDB コンソールを使用するかCREATE TABLE
PartiQL ステートメントで指定することで、テーブルの作成中にテーブルタグを定義することもできます。次の例では、Vehicle
という名前のテーブルをタグ environment=production
を付けて作成します。
CREATE TABLE Vehicle WITH (aws_tags = `{'environment': 'production'}`)
作成時にテーブルにタグを付けるには、qldb:PartiQLCreateTable
および qldb:TagResource
アクションの両方にアクセスする必要があります。
作成時にリソースにタグ付けすることで、リソース作成後にカスタムタグ付けスクリプトを実行する必要がなくなります。テーブルにタグを付けると、それらのタグに基づいてテーブルへのアクセスを制御できます。例えば、特定のタグを持つテーブルにのみフルアクセスを付与できます。JSON ポリシーの例については、「」を参照してくださいテーブルタグに基づくすべてのアクションへのフルアクセス。
QLDB コンソールを使用して、テーブルの作成中にテーブルタグを定義することもできます。
作成時にテーブルにタグを付けるには (コンソール)
にサインインし AWS Management Console、https://console.aws.amazon.com/qldb
で Amazon QLDBコンソールを開きます。 -
ナビゲーションペイン内で [Ledgers (台帳)] を選択します。
-
[Ledgers] (台帳) のリストで、テーブルを作成する台帳の名前を選択します。
-
台帳の詳細ページの [Tables] (テーブル) タブで、[Create table] (テーブルを作成) を選択します。
-
[Create table] (テーブルを作成) ページで、次の操作を行います。
-
[Table name] (テーブル名) – テーブル名を入力します。
-
[Tags] (タグ) – タグをキーと値の組み合わせとしてアタッチすることで、メタデータをテーブルに追加します。テーブルにタグを追加すると、テーブルの整理と識別がしやすくなります。
[Add tag (タグの追加)] を選択し、必要に応じて、任意のキーと値の組み合わせを入力します。
-
-
すべての設定が正しいことを確認したら、[テーブルを作成] を選択します。
クイックスタートチュートリアル: アクセス許可ポリシーの作成
このチュートリアルでは、アクセス許可モードで Amazon QLDB台帳IAMの でアクセスSTANDARD
許可ポリシーを作成する手順を説明します。その後、ユーザー、グループ、またはロールに権限を割り当てることができます。
PartiQL コマンドとテーブルリソースへのアクセス許可を付与するIAMポリシードキュメントの例については、「」を参照してくださいAmazon のアイデンティティベースのポリシーの例 QLDB。
前提条件
作業を始める前に、次の操作を実行してください。
-
まだ設定していない場合はAmazon へのアクセス QLDB、 AWS の設定手順に従ってください。これらのステップには、 にサインアップ AWS し、管理ユーザーを作成することが含まれます。
-
新しい台帳を作成し、台帳の
STANDARD
アクセス許可モードを選択します。その方法については、「コンソールの開始方法」の「ステップ 1: 新しい台帳を作成する」、または「Amazon QLDB台帳の基本オペレーション」を参照してください。
読み取り専用ポリシーの作成
JSON ポリシーエディタを使用して、標準アクセス許可モードで台帳内のすべてのテーブルの読み取り専用ポリシーを作成するには、以下を実行します。
にサインイン AWS Management Console し、 でIAMコンソールを開きますhttps://console.aws.amazon.com/iam/
。 -
左側のナビゲーション列で、[ポリシー] を選択します。
[Policies] (ポリシー) を初めて選択する場合は、[Welcome to Managed Policies] (マネージドポリシーにようこそ) ページが表示されます。[今すぐ始める] を選択します。
-
ページの上部で、[ポリシーを作成] を選択します。
-
JSON タブを選択します。
-
次の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" ] } ] } -
[ポリシーの確認] を選択します。
注記
Visual エディタとJSONタブはいつでも切り替えることができます。ただし、ビジュアルエディタタブでポリシーを変更したり、レビューポリシーを選択した場合、 IAMはポリシーを再構築してビジュアルエディタ用に最適化する場合があります。詳細については、IAM「 ユーザーガイド」の「ポリシーの再構築」を参照してください。
-
[ポリシーの確認] ページに作成するポリシーの [名前] と [説明] を入力します。ポリシーの [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台帳内の特定のテーブルの読み取り専用アクセスポリシーを作成するには、次の手順を実行します。
-
システムカタログARNテーブル をクエリして、 AWS Management Console または を使用してテーブルの を検索します
information_schema.user_tables
。手順については、テーブル ID と の検索 ARN を参照してください。 -
テーブル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許可ポリシーを作成したら、次のようにアクセス許可を割り当てます。
アクセス権限を付与するには、ユーザー、グループ、またはロールにアクセス許可を追加します。
-
のユーザーとグループ AWS IAM Identity Center:
アクセス許可セットを作成します。「AWS IAM Identity Center ユーザーガイド」の「権限設定を作成する」の手順に従ってください。
-
ID プロバイダーIAMを介して で管理されるユーザー:
ID フェデレーションのロールを作成します。IAM ユーザーガイドの「サードパーティー ID プロバイダー (フェデレーション) のロールを作成する」の指示に従います。
-
IAM ユーザー:
-
ユーザーが担当できるロールを作成します。IAM ユーザーガイドのIAM「ユーザーのロールを作成する」の指示に従います。
-
(お奨めできない方法) ポリシーをユーザーに直接アタッチするか、ユーザーをユーザーグループに追加する。IAM ユーザーガイドの「ユーザー (コンソール) へのアクセス許可の追加」の指示に従います。
-