翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
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台帳では引き続きサポートされますが、推奨されません。このモードでは、アクセス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 アクションおよびテーブルリソースに追加されています。詳細については、「データトランザクションの実行」を参照してください。
Amazon QLDB 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で、Amazon QLDBコンソールを https://console.aws.amazon.com/qldb
で開きます。 -
ナビゲーションペイン内で [Ledgers (台帳)] を選択します。
-
台帳 のリストで、テーブルARNを検索する台帳名を選択します。
-
台帳の詳細ページのテーブルタブで、ARN検索するテーブル名を見つけます。をコピーするにはARN、その横のコピーアイコン ( ) を選択します。
テーブルのタグ付け
テーブルリソースにタグ付けすることができます。既存のテーブルのタグを管理するには、 を使用します。 AWS Management Console または APIオペレーション TagResource
、UntagResource
、および ListTagsForResource
。詳細については、「Amazon QLDBリソースのタグ付け」を参照してください。
注記
テーブルリソースは、ルート台帳リソースのタグを継承しません。
作成時のテーブルのタグ付けは、現在 STANDARD
許可モードの台帳のみでサポートされています。
コンソールを使用するか、CREATE TABLE
PartiQL ステートメントでQLDB指定することで、テーブルの作成中にテーブルタグを定義することもできます。次の例では、Vehicle
という名前のテーブルをタグ environment=production
を付けて作成します。
CREATE TABLE Vehicle WITH (aws_tags = `{'environment': 'production'}`)
作成時にテーブルにタグを付けるには、qldb:PartiQLCreateTable
および qldb:TagResource
アクションの両方にアクセスする必要があります。
作成時にリソースにタグ付けすることで、リソース作成後にカスタムタグ付けスクリプトを実行する必要がなくなります。テーブルにタグを付けると、それらのタグに基づいてテーブルへのアクセスを制御できます。例えば、特定のタグを持つテーブルにのみフルアクセスを付与できます。JSON ポリシーの例については、「」を参照してくださいテーブルタグに基づくすべてのアクションへのフルアクセス。
QLDB コンソールを使用して、テーブルの作成中にテーブルタグを定義することもできます。
作成時にテーブルにタグを付けるには (コンソール)
にサインインする AWS Management Consoleで、Amazon QLDBコンソールを https://console.aws.amazon.com/qldb
で開きます。 -
ナビゲーションペイン内で [Ledgers (台帳)] を選択します。
-
[Ledgers] (台帳) のリストで、テーブルを作成する台帳の名前を選択します。
-
台帳の詳細ページの [Tables] (テーブル) タブで、[Create table] (テーブルを作成) を選択します。
-
[Create table] (テーブルを作成) ページで、次の操作を行います。
-
[Table name] (テーブル名) – テーブル名を入力します。
-
[Tags] (タグ) – タグをキーと値の組み合わせとしてアタッチすることで、メタデータをテーブルに追加します。テーブルにタグを追加すると、テーブルの整理と識別がしやすくなります。
[Add tag (タグの追加)] を選択し、必要に応じて、任意のキーと値の組み合わせを入力します。
-
-
すべての設定が正しいことを確認したら、[テーブルを作成] を選択します。
クイックスタートチュートリアル: アクセス許可ポリシーの作成
このチュートリアルでは、 アクセス許可モードで Amazon QLDB 台帳IAMの STANDARD
アクセス許可ポリシーを に作成する手順について説明します。その後、ユーザー、グループ、またはロールに権限を割り当てることができます。
PartiQL コマンドとテーブルリソースにアクセス許可を付与するIAMポリシードキュメントの例については、「」を参照してくださいAmazon のアイデンティティベースのポリシーの例 QLDB。
前提条件
作業を始める前に、次の操作を実行してください。
-
に従う AWS まだセットアップしていない場合はAmazon へのアクセス QLDB、「」の手順を設定します。これらのステップには、 へのサインアップが含まれます。 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" ] } ] } -
[ポリシーの確認] を選択します。
注記
ビジュアルエディタと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 ユーザーガイドの「ユーザーへのアクセス許可の追加 (コンソール)」の指示に従います。
-