Amazon QLDB で IAM を使用する方法 - Amazon Quantum Ledger Database (Amazon QLDB)

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

Amazon QLDB で IAM を使用する方法

IAM を使用して QLDB へのアクセスを管理する前に、QLDB で利用できる IAM の機能について学びます。

QLDB およびその他の方法の概要を表示するにはAWSサービスはほとんどの IAM 機能で動作します。を参照してください。AWSIAM と連携するサービスIAM ユーザーガイド

QLDB の ID ベースのポリシー

ID ベースのポリシーのサポート

はい

ID ベースのポリシーは、IAM user ユーザー、ユーザーのグループ、ロールなど、アイデンティティにアタッチできる JSON 許可ポリシードキュメントです。これらのポリシーは、ユーザーとロールが実行できるアクション、リソース、および条件を制御します。アイデンティティベースのポリシーを作成する方法については、IAM ユーザーガイドIAM ポリシーの作成を参照してください。

IAM ID ベースのポリシーでは、許可または拒否するアクションとリソース、またアクションを許可または拒否する条件を指定できます。プリンシパルは、それがアタッチされているユーザーまたはロールに適用されるため、アイデンティティベースのポリシーでは指定できません。JSON ポリシーで使用できるすべての要素について学ぶには、IAM ユーザーガイドの「IAM JSON ポリシーの要素のリファレンス」を参照してください。

QLDB 用の ID ベースのポリシーの例

QLDB アイデンティティベースのポリシーの例については、を参照してください。Amazon QLDB の Identity ベースのポリシーの例

QLDB 内のリソースベースのポリシー

リソースベースのポリシーのサポート

いいえ

リソースベースのポリシーは、リソースにアタッチする JSON ポリシードキュメントです。リソースベースのポリシーの例は、IAM ロールの信頼ポリシーおよび Amazon S3 バケットポリシーです。リソースベースのポリシーをサポートするサービスでは、サービス管理者はポリシーを使用して特定のリソースへのアクセスを制御できます。ポリシーがアタッチされているリソースの場合、ポリシーは、指定されたプリンシパルがそのリソースに対して実行できるアクションと条件を定義します。リソースベースのポリシーで、プリンシパルを指定する必要があります。プリンシパルには、アカウント、ユーザー、ロール、フェデレーティッドユーザー、または AWS のサービスを含めることができます。

クロスアカウントアクセスを有効にするには、全体のアカウント、または別のアカウントの IAM エンティティを、リソースベースのポリシーのプリンシパルとして指定します。リソースベースのポリシーにクロスアカウントのプリンシパルを追加しても、信頼関係は半分しか確立されない点に注意してください。プリンシパルとリソースが異なる AWS アカウントにある場合、信頼されたアカウントの IAM 管理者は、リソースにアクセスするための許可をプリンシパルエンティティ (ユーザーまたはロール) に付与する必要もあります。IAM 管理者は、ID ベースのポリシーをエンティティにアタッチすることで許可を付与します。ただし、リソースベースのポリシーで、同じアカウントのプリンシパルへのアクセス権が付与されている場合は、ID ベースのポリシーをさらに付与する必要はありません。詳細については、IAM ユーザーガイドの「IAM ロールとリソースベースのポリシーとの相違点」を参照してください。

QLDB ポリシーのアクション

ポリシーアクションに対するサポート

はい

管理者は AWS JSON ポリシーを使用して、誰が何にアクセスするかを指定できます。つまり、どのプリンシパルがどのリソースに対してどのような条件下でアクションを実行できるかということです。

JSON ポリシーの Action 要素は、ポリシー内のアクセスを許可または拒否するために使用できるアクションを記述します。ポリシーアクションの名前は通常、関連する AWS API オペレーションと同じです。一致する API オペレーションを持たないアクセス許可のみのアクションなど、いくつかの例外があります。また、ポリシーに複数のアクションが必要なオペレーションもあります。これらの追加アクションは、依存アクションと呼ばれます。

このアクションは、関連付けられた操作を実行するための許可を付与するポリシーで使用されます。

QLDB アクションのリストを表示するには、を参照してください。Amazon QLDB で定義されるアクションサービス認証リファレンス

QLDB のポリシーアクションは、アクションの前にプレフィックスを使用します。

qldb

単一のステートメントで複数のアクションを指定するには、アクションをカンマで区切ります。

"Action": [ "qldb:action1", "qldb:action2" ]

ワイルドカード (*) を使用して複数のアクションを指定することができます。例えば、Describe という単語で始まるすべてのアクションを指定するには、次のアクションを含めます。

"Action": "qldb:Describe*"

QLDB トランザクションデータ API と対話するには (QLDB セッション) を実行することにより、PartiQL元帳のステートメント、権限を付与する必要がありますSendCommandアクションは以下の通りです。

"Action": "qldb:SendCommand"

内の元帳の場合STANDARD権限モードについては、を参照してください。PartiQL アクセス許可のリファレンス各 PartiQL コマンドに必要な追加のパーミッションを参照してください。

QLDB アイデンティティベースのポリシーの例については、を参照してください。Amazon QLDB の Identity ベースのポリシーの例

QLDB のポリシーリソース

ポリシーリソースに対するサポート

はい

管理者は AWS JSON ポリシーを使用して、誰が何にアクセスするかを指定できます。つまり、どのプリンシパルがどのリソースに対してどのような条件下でアクションを実行できるかということです。

Resource JSON ポリシーエレメントは、アクションが適用されるオブジェクトを指定します。ステートメントには、Resource または NotResource エレメントを含める必要があります。ベストプラクティスとして、リソースは Amazon リソースネーム (ARN) を使用して指定します。これは、リソースレベルのアクセス許可と呼ばれる特定のリソースタイプをサポートするアクションに対して実行できます。

操作のリスト化など、リソースレベルの許可をサポートしないアクションの場合は、ワイルドカード (*) を使用して、ステートメントがすべてのリソースに適用されることを示します。

"Resource": "*"

QLDB リソースタイプおよびその ARN のリストを表示するには、「」を参照してください。Amazon QLDB で定義されるリソースサービス認証リファレンス。各リソースの ARN を指定できるアクションについては、「」を参照してください。Amazon QLDB で定義されるアクション

QLDB では、プライマリリソースは次のとおりです。台帳。QLDB では、以下の追加リソースタイプもサポートしています。テーブルおよびストリーム。ただし、既存の台帳のコンテキストでのみ、テーブルとストリームを作成できます。

QLDBテーブルは、元帳の仕訳帳からの文書改訂の順序付けられていないコレクションのマテリアライズド・ビューです。左STANDARDレジャーのアクセス権限モードでは、このテーブルリソースで PartiQL ステートメントを実行するアクセス権限を付与する IAM ポリシーを作成する必要があります。テーブルリソースに対するパーミッションを使用すると、テーブルの現在の状態にアクセスするステートメントを実行できます。組み込みのを使用してテーブルのリビジョン履歴を照会することもできます。history()function. 詳細については、「Amazon QLDB の標準アクセス許可モードの使用を開始する」を参照してください。

注記

-CREATE TABLEステートメントは、一意の ID と指定されたテーブル名を持つテーブルを作成します。指定するテーブル名は、すべてのアクティブなテーブルにおいて一意である必要があります。ただし、QLDB ではテーブルを非アクティブ化できるため、同じテーブル名を共有する非アクティブなテーブルが複数存在する可能性があります。したがって、テーブルリソース ARN は、ユーザー定義のテーブル名ではなく、システムによって割り当てられた一意の ID を参照します。

各レジャーには、システム定義のカタログリソースも提供され、このリソースを使用してレジャー内のすべてのテーブルとインデックスを一覧表示できます。QLDB データオブジェクトモデルの詳細については、「」を参照してください。Amazon QLDB の主要な概念と用語

これらのリソースには、次の表に示すとおり、一意の ARN が関連付けられています。

リソースタイプ ARN
ledger arn:${Partition}:qldb:${Region}:${Account}:ledger/${LedgerName}
table arn:${Partition}:qldb:${Region}:${Account}:ledger/${LedgerName}/table/${TableId}
catalog arn:${Partition}:qldb:${Region}:${Account}:ledger/${LedgerName}/information_schema/user_tables
stream arn:${Partition}:qldb:${Region}:${Account}:stream/${LedgerName}/${StreamId}

たとえば、myExampleLedgerステートメントでリソース。次の ARN を使用します。

"Resource": "arn:aws:qldb:us-east-1:123456789012:ledger/myExampleLedger"

複数のリソースを単一のステートメントで指定するには、ARN をカンマで区切ります。

"Resource": [ "arn:aws:qldb:us-east-1:123456789012:ledger/myExampleLedger1", "arn:aws:qldb:us-east-1:123456789012:ledger/myExampleLedger2" ]

QLDB アイデンティティベースのポリシーの例については、を参照してください。Amazon QLDB の Identity ベースのポリシーの例

QLDB のポリシー条件キー

ポリシー条件キーに対するサポート

はい

管理者は AWS JSON ポリシーを使用して、誰が何にアクセスするかを指定できます。つまり、どのプリンシパルがどのリソースに対してどのような条件下でアクションを実行できるかということです。

Condition エレメント (または Condition ブロック) を使用すると、ステートメントが有効な条件を指定できます。Conditionエレメントはオプションです。イコールや以下などの条件演算子を使用する条件式を作成して、リクエスト内に値のあるポリシーの条件に一致させることができます。

1 つのステートメントに複数の Condition エレメントを指定する場合、または 1 つの Condition エレメントに複数のキーを指定する場合、AWS が論理 AND 演算を使用してそれらを評価します。単一の条件キーに複数の値を指定する場合、AWS が論理 OR 演算を使用して条件を評価します。ステートメントのアクセス許可が付与される前にすべての条件が満たされる必要があります。

条件を指定する際にプレースホルダー変数も使用できます。例えば、IAM ユーザー名でタグ付けされている場合のみ、リソースにアクセスする IAM ユーザーアクセス許可を付与できます。詳細については、IAM ユーザーガイドIAM ポリシーエレメント: 変数およびタグを参照してください。

AWS はグローバル条件キーとサービス固有の条件キーをサポートしています。すべての AWS グローバル条件キーを確認するには、IAM ユーザーガイドの「AWS グローバル条件コンテキストキー」を参照してください。

QLDB 条件キーのリストを表示するには、を参照してください。Amazon QLDB の条件キーサービス認証リファレンス。どのアクションおよびリソースと条件キーを使用できるかについては、「」を参照してください。Amazon QLDB で定義されるアクション

QLDB にはサービス固有条件キーがありませんが、いくつかのグローバル条件キーの使用がサポートされています。

QLDB アイデンティティベースのポリシーの例については、を参照してください。Amazon QLDB の Identity ベースのポリシーの例

QLDB のアクセスコントロールリスト (ACL)

ACL のサポート

いいえ

アクセスコントロールリスト (ACL) は、どのプリンシパル (アカウントメンバー、ユーザー、またはロール) がリソースにアクセスするための許可を持つかを制御します。ACL はリソースベースのポリシーに似ていますが、JSON ポリシードキュメント形式は使用しません。

QLDB での属性ベースのアクセスコントロール (ABAC)

ABAC (ポリシー内のタグ) のサポート

はい

属性ベースのアクセスコントロール (ABAC) は、属性に基づいて許可を定義する認証戦略です。AWS では、これらの属性はタグと呼ばれます。タグは、IAM エンティティ (ユーザーまたはロール)、および多数の AWS リソースにアタッチできます。エンティティとリソースのタグ付けは、ABAC の最初のステップです。その後、プリンシパルのタグがアクセスしようとしているリソースのタグと一致したときに操作を許可するように ABAC ポリシーを設計できます。

ABAC は、急速に成長している環境で役立ち、ポリシー管理が面倒な状況に役立ちます。

タグに基づいてアクセスを制御するには、aws:ResourceTag/key-nameaws:RequestTag/key-name、または aws:TagKeys の条件キーを使用して、ポリシーの条件要素でタグ情報を提供します。

ABAC の詳細については、IAM ユーザーガイド の「ABAC とは」を参照してください。ABAC をセットアップするステップを説明するチュートリアルについては、IAM ユーザーガイドの「タグに基づいて AWS リソースにアクセスするための許可を定義する」を参照してください。

QLDB リソースのタグ付けの詳細については、「」を参照してください。Amazon QLDB リソースのタグ付け

リソースのタグに基づいてリソースへのアクセスを制限するためのアイデンティティベースのポリシーの例を表示するには、「タグに基づいて QLDB 台帳を更新する」を参照してください。

QLDB での一時的な認証情報の使用

一時的な認証情報のサポート

はい

AWS のサービスには、一時的な認証情報を使用してサインインしても機能しないものがあります。一時的な認証情報を利用できる AWS のサービスを含めた詳細情報については、IAM ユーザーガイドの「IAM と連携する AWS のサービス」を参照してください。

ユーザー名とパスワード以外の方法で AWS Management Consoleにサインインする場合は、一時的な認証情報を使用していることになります。例えば、会社の Single Sign-On (SSO) リンクを使用して AWS にアクセスすると、そのプロセスは自動的に一時的な認証情報を作成します。また、ユーザーとしてコンソールにサインインしてからロールを切り替える場合も、一時的な認証情報が自動的に作成されます。ロールの切り替えに関する詳細については、IAM ユーザーガイドの「ロールへの切り替え (コンソール)」を参照してください。

一時的な認証情報は、AWS CLI または AWS API を使用して手動で作成できます。作成後、これらの一時的な認証情報を使用して AWS にアクセスできるようになります。AWS は、長期的なアクセスキーを使用する代わりに、一時的な認証情報を動的に生成することをお勧めします。詳細については、の「IAM の一時的なセキュリティ認証情報」を参照してください。

QLDB のクロスサービスプリンシパル許可

プリンシパル許可のサポート

いいえ

IAM ユーザーまたはロールを使用して AWS でアクションを実行するユーザーは、プリンシパルと見なされます。ポリシーは、プリンシパルにアクセス許可を付与します。一部のサービスを使用する場合、別のサービスで別のアクションをトリガーするアクションを実行することがあります。この場合、両方のアクションを実行するための許可が必要です。アクションにポリシーで追加の依存アクションが必要かどうかを確認するには、「」を参照してください。Amazon QLDB のアクション、リソース、および条件キーサービス認証リファレンス

QLDB のサービスロール

サービスロールに対するサポート

はい

サービスロールとは、サービスがユーザーに代わってアクションを実行するために引き受ける IAM ロールです。IAM 管理者は、IAM 内からサービスロールを作成、変更、削除できます。詳細については、IAM ユーザーガイドの「AWS のサービスにアクセス許可を委任するロールの作成」を参照してください。

警告

サービスロールのアクセス許可を変更すると、QLDB の機能が破損する可能性があります。QLDB が指示する場合以外は、サービスロールを編集しないでください。

QLDB では、のサービスロールがサポートされています。ExportJournalToS3およびStreamJournalToKinesisAPI オペレーション。次のセクションで説明しています。

QLDB での IAM ロールの選択

QLDB でジャーナルブロックをエクスポートまたはストリーミングする場合、ユーザーに代わって特定の宛先にオブジェクトを書き込むことをに許可するロールを選択する必要があります。以前に作成したサービスロールがある場合、QLDB により、選択できるロールのリストが示されます。エクスポート用に指定された Amazon S3 バケットに書き込むか、ストリーム用に指定された Amazon Kinesis Data Streams リソースに書き込むことをに許可するロールを選択することが重要です。詳細については、「QLDB でのジャーナルエクスポート権限」または「QLDB のストリームアクセス許可」を参照してください。

注記

ジャーナルのエクスポートまたはストリームを要求するときに QLDB にロールを渡すには、iam:PassRoleIAM ロールリソースに対するアクション。これは、実行するアクセス許可に追加されます。qldb:ExportJournalToS3QLDB 元帳リソース上、またはqldb:StreamJournalToKinesisQLDB ストリームのサブリソースで指定します。

QLDB のサービスにリンクされたロール

サービスリンクロールのサポート

いいえ

サービスにリンクされたロールは、AWS のサービスにリンクされているサービスロールの一種です。サービスは、ユーザーに代わってアクションを実行するロールを引き受けることができます。サービスにリンクされたロールは、IAM アカウント内に表示され、サービスによって所有されます。IAM 管理者は、サービスにリンクされたロールのアクセス許可を表示できますが、編集することはできません。

サービスにリンクされたロールの作成または管理の詳細については、IAM と提携する AWS のサービスを参照してください。表の中から、サービスにリンクされたロール列に Yes と記載されたサービスを見つけます。サービスにリンクされたロールに関するドキュメントをサービスで表示するには、[はい] リンクを選択します。