Amazon QLDB と IAM の連携 - Amazon Quantum Ledger Database (Amazon QLDB)

Amazon QLDB と IAM の連携

AWS Identity and Access Management (IAM) を使用して、QLDB へのアクセスを管理するには、QLDB で使用できる IAM の機能を理解しておく必要があります。QLDB およびその他の AWS のサービスが IAM と連携する方法の概要を理解するには、IAM ユーザーガイド の「AWS と連携する IAM サービス」を参照してください。

QLDB アイデンティティベースのポリシー

IAM アイデンティティベースのポリシーでは、許可または拒否されたアクションとリソースを指定でき、さらにアクションが許可または拒否された条件を指定できます。QLDB は、特定のアクション、リソース、条件キーをサポートします。JSON ポリシーで使用するすべての要素については、IAM ユーザーガイド の「IAM JSON ポリシーエレメントのリファレンス」を参照してください。

アクション

IAM アイデンティティベースのポリシーの Action エレメントは、そのポリシーにより許可または拒否される特定のアクションについて説明します。ポリシーアクションの名前は通常、関連する AWS API オペレーションと同じです。このアクションは、関連付けられたオペレーションを実行するためのアクセス許可を付与するポリシーで使用されます。

QLDB のポリシーアクションでは、アクションの前に qldb: プレフィックスを使用します。たとえば、QLDB DescribeLedger API オペレーションを使用して QLDB 台帳を指定するためのアクセス許可を付与するには、ポリシーに qldb:DescribeLedger アクションを含めます。ポリシーステートメントには、Action 要素または NotAction 要素を含める必要があります。QLDB は、このサービスで実行できるタスクを説明する独自の一連のアクションを定義します。

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

"Action": [ "qldb:CreateLedger", "qldb:UpdateLedger"

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

"Action": "qldb:Describe*"

QLDB のアクションを一覧表示するには、IAM ユーザーガイドの「Actions Defined by Amazon QLDB」を参照してください。

注記

台帳に対して PartiQL ステートメントを実行して QLDB のトランザクションデータ API とやり取りするには、次のように SendCommand アクションのアクセス許可を付与する必要があります。

"Action": "qldb:SendCommand"

リソース

Resource エレメントは、アクションが適用されるオブジェクトを指定します。ステートメントには、Resource または NotResource エレメントを含める必要があります。ARN を使用して、またはステートメントがすべてのリソースに適用されることを示すワイルドカード (*) を使用して、リソースを指定します。

QLDB は、次のリソースタイプとそれらの ARN を定義します。

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

ARN の形式の詳細については、「Amazon リソースネーム (ARN) と AWS サービスの名前空間」を参照してください。

たとえば、ステートメントで exampleLedger クラスターを指定するには、以下の ARN を使用します。

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

特定のアカウントに属するすべての台帳を指定するには、ワイルドカード (*) を使用します。

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

リソースの作成など、一部の QLDB アクションは、特定のリソースで実行できません。このような場合は、ワイルドカード (*) を使用する必要があります。

"Resource": "*"

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

"Resource": [ "arn:aws:qldb:us-east-1:123456789012:ledger/exampleLedger1", "arn:aws:qldb:us-east-1:123456789012:ledger/exampleLedger2"

QLDB リソースタイプおよびその ARN のリストを表示するには、IAM ユーザーガイド の「Resources Defined by Amazon QLDB」を参照してください。どのアクションで、各リソースの ARN を指定することができるかについては、「Actions Defined by Amazon QLDB」を参照してください。

条件キー

QLDB にはサービス固有条件キーがありませんが、いくつかのグローバル条件キーの使用がサポートされています。すべての AWS グローバル条件キーを確認するには、IAM ユーザーガイド の「AWS グローバル条件コンテキストキー」を参照してください 。

QLDB アイデンティティベースのポリシーの例を表示するには、「Amazon QLDB アイデンティティベースのポリシーの例」を参照してください。

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

QLDB では、リソースベースのポリシーはサポートされていません。

QLDB タグに基づいた承認

タグを QLDB リソースにアタッチすることも、QLDB へのリクエストでタグを渡すこともできます。タグに基づいてアクセスを制御するには、aws:ResourceTag/key-nameaws:RequestTag/key-name、または aws:TagKeys の条件キーを使用して、ポリシーの条件要素でタグ情報を提供します。QLDB リソースのタグ付けの詳細については、「Amazon QLDB リソースのタグ付け」を参照してください。

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

QLDB IAM ロール

IAM ロールは、特定のアクセス許可を持つ、AWS アカウント内のエンティティです。

QLDB を使用した一時的な認証情報の使用

一時的な認証情報を使用して、フェデレーションでサインイン、IAM ロールを引き受ける、またはクロスアカウントロールを引き受けることができます。一時的なセキュリティ認証情報を取得するには、AssumeRole または GetFederationToken などの AWS Security Token Service (AWS STS) API オペレーションを呼び出します。

QLDB では、一時認証情報の使用をサポートしています。

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

サービスにリンクされたロールによって、AWS サービスが他のサービスのリソースにアクセスして自動的にアクションを完了できます。サービスにリンクされたロールは、IAM アカウント内に表示され、サービスによって所有されます。IAM 管理者は、サービスにリンクされたロールのアクセス許可を表示できますが、編集することはできません。

QLDB は、サービスにリンクされたロールをサポートしていません。

サービスロール

この機能では、サービスのロールをユーザーに代わって引き受けることをサービスに許可します。このロールにより、サービスはユーザーに代わって他のサービスのリソースにアクセスし、アクションを実行できます。サービスロールは、IAM アカウントに表示され、サービスによって所有されます。つまり、IAM 管理者は、このロールのアクセス許可を変更できます。ただし、これを行うことにより、サービスの機能が損なわれる場合があります。

次のセクションで説明するように、QLDB は ExportJournalToS3 および StreamJournalToKinesis API オペレーションのサービスロールをサポートしています。

QLDB で IAM ロールを選択する

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