Amazon のアイデンティティベースのポリシーの例 QLDB - Amazon Quantum 台帳データベース (Amazon QLDB)

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

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

デフォルトでは、ユーザーとロールにはQLDBリソースを作成または変更するアクセス許可はありません。また、、 AWS Command Line Interface (AWS CLI) AWS Management Console、または を使用してタスクを実行することはできません AWS API。必要なリソースに対してアクションを実行するアクセス許可をユーザーに付与するために、IAM管理者はIAMポリシーを作成できます。その後、管理者はIAMポリシーをロールに追加し、ユーザーはロールを引き受けることができます。

これらのポリシードキュメント例を使用してIAMアイデンティティベースのJSONポリシーを作成する方法については、「 ユーザーガイド」のIAM「ポリシーの作成IAM」を参照してください。

各リソースタイプの の形式などQLDB、 で定義されるアクションとリソースタイプの詳細については、「サービス認証リファレンスARNs」の「Amazon のアクション、リソース、および条件キーQLDB」を参照してください。

重要

サポート終了通知: 既存のお客様は、07/31/2025 のサポート終了QLDBまで Amazon を使用できます。詳細については、「Amazon Ledger QLDB を Amazon Aurora Postgre に移行するSQL」を参照してください。

ポリシーのベストプラクティス

ID ベースのポリシーは、ユーザーのアカウントで誰かがQLDBリソースを作成、アクセス、または削除できるどうかを決定します。これらのアクションを実行すると、 AWS アカウントに料金が発生する可能性があります。アイデンティティベースポリシーを作成したり編集したりする際には、以下のガイドラインと推奨事項に従ってください:

  • AWS 管理ポリシーを開始し、最小特権のアクセス許可に移行する – ユーザーとワークロードにアクセス許可を付与するには、多くの一般的なユースケースにアクセス許可を付与する AWS 管理ポリシーを使用します。これらは で使用できます AWS アカウント。ユースケースに固有の AWS カスタマー管理ポリシーを定義して、アクセス許可をさらに減らすことをお勧めします。詳細については、「 ユーザーガイド」の「 AWS 管理ポリシーAWS 」または「 ジョブ機能の 管理ポリシーIAM」を参照してください。

  • 最小特権のアクセス許可を適用する – IAMポリシーでアクセス許可を設定する場合は、タスクの実行に必要なアクセス許可のみを付与します。これを行うには、特定の条件下で特定のリソースに対して実行できるアクションを定義します。これは、最小特権アクセス許可とも呼ばれています。IAM を使用してアクセス許可を適用する方法の詳細については、「 ユーザーガイド」の「 のポリシーとアクセス許可IAMIAM」を参照してください。

  • IAM ポリシーの条件を使用してアクセスをさらに制限する – ポリシーに条件を追加して、アクションとリソースへのアクセスを制限できます。例えば、ポリシー条件を記述して、すべてのリクエストを を使用して送信する必要があることを指定できますSSL。条件を使用して、 などの特定の を介してサービスアクションが使用される場合に AWS サービス、サービスアクションへのアクセスを許可することもできます AWS CloudFormation。詳細については、「 ユーザーガイド」のIAMJSON「ポリシー要素: 条件IAM」を参照してください。

  • IAM Access Analyzer を使用してIAMポリシーを検証し、安全で機能的なアクセス許可を確保する – IAM Access Analyzer は、ポリシーがポリシー言語 (JSON) とIAMベストプラクティスに準拠するように、新規および既存のIAMポリシーを検証します。IAM Access Analyzer には、安全で機能的なポリシーの作成に役立つ 100 を超えるポリシーチェックと実用的な推奨事項が用意されています。詳細については、「 ユーザーガイド」のIAM「Access Analyzer ポリシーの検証IAM」を参照してください。

  • 多要素認証を要求する (MFA) – でIAMユーザーまたはルートユーザーを必要とするシナリオがある場合は AWS アカウント、セキュリティを強化MFAするために をオンにします。API オペレーションが呼び出されるMFAタイミングを要求するには、ポリシーにMFA条件を追加します。詳細については、「 IAMユーザーガイド」のMFA「 で保護されたAPIアクセスの設定」を参照してください。

のベストプラクティスの詳細についてはIAM、「 ユーザーガイド」の「 のセキュリティのベストプラクティスIAMIAM」を参照してください。

QLDB コンソールを使用する

Amazon QLDBコンソールにアクセスするには、最小限のアクセス許可のセットが必要です。これらのアクセス許可により、 のQLDBリソースの詳細を一覧表示および表示できます AWS アカウント。最小限必要な許可よりも制限が厳しいアイデンティティベースのポリシーを作成すると、そのポリシーを持つエンティティ (ユーザーまたはロール) に対してコンソールが意図したとおりに機能しません。

AWS CLI または のみを呼び出すユーザーには、最小限のコンソールアクセス許可を付与する必要はありません AWS API。代わりに、実行しようとしているAPIオペレーションに一致するアクションにのみアクセスを許可します。

ユーザーとロールがQLDBコンソールとそのすべての機能にフルアクセスできるようにするには、エンティティに次の AWS 管理ポリシーをアタッチします。詳細については、「 ユーザーガイド」のAWS Amazon の マネージドポリシー QLDB「」および「ユーザーへのアクセス許可の追加IAM」を参照してください。 https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_change-permissions.html#users_change_permissions-add-console

AmazonQLDBConsoleFullAccess

クエリ履歴のアクセス許可

アクセスQLDB許可に加えて、一部のコンソール機能には、 Database Query Metadata Service (サービスプレフィックス: dbqms) のアクセス許可が必要です。これは、 QLDBおよびその他の のコンソールクエリエディタで、最近のクエリと保存されたクエリを管理する内部専用サービスです AWS サービス。DBQMS API アクションの完全なリストについては、「サービス認証リファレンス」の「データベースクエリメタデータサービス」を参照してください。

クエリ履歴のアクセス許可を許可するには、 AWS 管理ポリシー A mazonQLDBConsoleFullAccessを使用できます。このポリシーは、ワイルドカード (dbqms:*) を使用して、すべてのリソースに対するすべてのDBQMSアクションを許可します。

または、カスタムIAMポリシーを作成し、次のDBQMSアクションを含めることもできます。QLDB コンソールの PartiQL クエリエディタには、クエリ履歴機能にこれらのアクションを使用するためのアクセス許可が必要です。

dbqms:CreateFavoriteQuery dbqms:CreateQueryHistory dbqms:DeleteFavoriteQueries dbqms:DeleteQueryHistory dbqms:DescribeFavoriteQueries dbqms:DescribeQueryHistory dbqms:UpdateFavoriteQuery

コンソールへのクエリ履歴権限を除いたフルアクセス許可

クエリ履歴のアクセス許可なしでQLDBコンソールへのフルアクセスを許可するには、すべてのDBQMSアクション を除外するカスタムIAMポリシーを作成できます。例えば、次のポリシードキュメントでは、サービスプレフィックス で始まるアクションを除いて、 AWS 管理ポリシー A mazonQLDBConsoleFullAccessによって付与されるのと同じアクセス許可を許可しますdbqms

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "qldb:CreateLedger", "qldb:UpdateLedger", "qldb:UpdateLedgerPermissionsMode", "qldb:DeleteLedger", "qldb:ListLedgers", "qldb:DescribeLedger", "qldb:ExportJournalToS3", "qldb:ListJournalS3Exports", "qldb:ListJournalS3ExportsForLedger", "qldb:DescribeJournalS3Export", "qldb:CancelJournalKinesisStream", "qldb:DescribeJournalKinesisStream", "qldb:ListJournalKinesisStreamsForLedger", "qldb:StreamJournalToKinesis", "qldb:GetBlock", "qldb:GetDigest", "qldb:GetRevision", "qldb:TagResource", "qldb:UntagResource", "qldb:ListTagsForResource", "qldb:SendCommand", "qldb:ExecuteStatement", "qldb:ShowCatalog", "qldb:InsertSampleData", "qldb:PartiQLCreateIndex", "qldb:PartiQLDropIndex", "qldb:PartiQLCreateTable", "qldb:PartiQLDropTable", "qldb:PartiQLUndropTable", "qldb:PartiQLDelete", "qldb:PartiQLInsert", "qldb:PartiQLUpdate", "qldb:PartiQLSelect", "qldb:PartiQLHistoryFunction" ], "Effect": "Allow", "Resource": "*" }, { "Action": [ "kinesis:ListStreams", "kinesis:DescribeStream" ], "Effect": "Allow", "Resource": "*" }, { "Effect": "Allow", "Action": "iam:PassRole", "Resource": "*", "Condition": { "StringEquals": { "iam:PassedToService": "qldb.amazonaws.com" } } } ] }

自分の権限の表示をユーザーに許可する

この例では、IAMユーザーがユーザー ID にアタッチされているインラインポリシーと管理ポリシーを表示できるようにするポリシーを作成する方法を示します。このポリシーには、コンソールで、または AWS CLI または を使用してプログラムでこのアクションを実行するアクセス許可が含まれています AWS API。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ViewOwnUserInfo", "Effect": "Allow", "Action": [ "iam:GetUserPolicy", "iam:ListGroupsForUser", "iam:ListAttachedUserPolicies", "iam:ListUserPolicies", "iam:GetUser" ], "Resource": ["arn:aws:iam::*:user/${aws:username}"] }, { "Sid": "NavigateInConsole", "Effect": "Allow", "Action": [ "iam:GetGroupPolicy", "iam:GetPolicyVersion", "iam:GetPolicy", "iam:ListAttachedGroupPolicies", "iam:ListGroupPolicies", "iam:ListPolicyVersions", "iam:ListPolicies", "iam:ListUsers" ], "Resource": "*" } ] }

データトランザクションの実行

台帳で PartiQL ステートメントを実行してQLDBトランザクションデータ API (QLDBセッション ) を操作するには、 SendCommandAPIアクションにアクセス許可を付与する必要があります。次のJSONドキュメントは、台帳 上の SendCommandAPIアクション にのみアクセス許可を付与するポリシーの例ですmyExampleLedger

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

myExampleLedgerALLOW_ALL アクセス許可モードを使用する場合、このポリシーは、台帳の任意のテーブルに対してすべての PartiQL コマンドを実行するアクセス許可を付与します。

AWS マネージドポリシーを使用して、すべてのQLDBリソースへのフルアクセスを許可することもできます。詳細については、「AWS Amazon の マネージドポリシー QLDB」を参照してください。

PartiQL アクションとテーブルリソースに対する標準アクセス許可

アクセスSTANDARD許可モードの台帳の場合、適切な PartiQL アクセス許可を付与する例として、次のIAMポリシードキュメントを参照できます。各 PartiQL コマンドに必要なアクセス許可のリストについては、「PartiQL アクセス許可のリファレンス」を参照してください。

すべてのアクションへのフルアクセス

次のJSONポリシードキュメントは、 のすべてのテーブルですべての PartiQL コマンドを使用するためのフルアクセスを許可しますmyExampleLedger。このポリシーは、台帳で ALLOW_ALL アクセス許可モードを使用するのと同じ効果を発揮します。

このポリシーを使用するには、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:PartiQLCreateIndex", "qldb:PartiQLDropIndex", "qldb:PartiQLCreateTable", "qldb:PartiQLDropTable", "qldb:PartiQLUndropTable", "qldb:PartiQLDelete", "qldb:PartiQLInsert", "qldb:PartiQLUpdate", "qldb:PartiQLRedact", "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ポリシードキュメントでは、テーブルリソースタグに基づく条件を使用して、 のすべてのテーブルですべての PartiQL コマンドを使用するためのフルアクセスを許可しますmyExampleLedger。アクセス許可は、テーブルタグ environment に値 development がある場合にのみ付与されます。

警告

これは、ワイルドカード文字 (*) を使用して、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": "QLDBPartiQLFullPermissionsBasedOnTags", "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" ], "Condition": { "StringEquals": { "aws:ResourceTag/environment": "development" } } } ] }

読み取り/書き込みアクセス

次のJSONポリシードキュメントは、 のすべてのテーブルのデータを選択、挿入、更新、削除するアクセス許可を付与しますmyExampleLedger。このポリシーでは、テーブルやインデックスの作成や削除など、データの秘匿化やスキーマの変更を行うアクセス許可は付与されません。

注記

UPDATE ステートメントでは、変更するテーブルに対する qldb:PartiQLUpdate アクションと qldb:PartiQLSelect アクション両方のアクセス許可が必要です。UPDATE ステートメントを実行すると、更新オペレーションに加えて読み取りオペレーションも実行されます。両方のアクションを要求すれば、テーブルの内容の読み取りが許可されているユーザーにのみ UPDATE アクセス許可が付与されるようになります。

同様に、DELETE ステートメントでは、qldb:PartiQLDelete アクションと qldb:PartiQLSelect アクションの両方へのアクセス許可が必要です。

このポリシーを使用するには、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": "QLDBPartiQLReadWritePermissions", "Effect": "Allow", "Action": [ "qldb:PartiQLDelete", "qldb:PartiQLInsert", "qldb:PartiQLUpdate", "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ポリシードキュメントは、 のすべてのテーブルに対する読み取り専用アクセス許可を付与しますmyExampleLedger。このポリシーを使用するには、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ポリシードキュメントは、 の特定のテーブルに対する読み取り専用アクセス許可を付与しますmyExampleLedger。この例では、テーブル 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": "QLDBPartiQLReadOnlyPermissionsOnTable", "Effect": "Allow", "Action": [ "qldb:PartiQLSelect", "qldb:PartiQLHistoryFunction" ], "Resource": [ "arn:aws:qldb:us-east-1:123456789012:ledger/myExampleLedger/table/Au1EiThbt8s0z9wM26REZN" ] } ] }

テーブル作成のアクセス許可

次のJSONポリシードキュメントは、 でテーブルを作成するアクセス許可を付与しますmyExampleLedgerqldb:PartiQLCreateTable アクションには、テーブルリソースタイプに対するアクセス許可が必要です。ただし、CREATE TABLE ステートメントを実行する時点で、新しいテーブルのテーブル ID は未知です。そのため、 qldb:PartiQLCreateTable アクセス許可を付与するポリシーでは、テーブルでワイルドカード (*) を使用してリソースARNを指定する必要があります。

このポリシーを使用するには、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": "QLDBPartiQLCreateTablePermission", "Effect": "Allow", "Action": [ "qldb:PartiQLCreateTable" ], "Resource": [ "arn:aws:qldb:us-east-1:123456789012:ledger/myExampleLedger/table/*" ] } ] }

リクエストタグに基づいたテーブル作成のアクセス許可

次のJSONポリシードキュメントでは、aws:RequestTagコンテキストキーに基づく条件を使用して、 でテーブルを作成するアクセス許可を付与しますmyExampleLedger。アクセス許可は、リクエストタグ environment に値 development がある場合にのみ付与されます。作成時にテーブルにタグを付けるには、qldb:PartiQLCreateTable および qldb:TagResource アクションの両方にアクセスする必要があります。作成時にテーブルにタグを付ける方法については、「テーブルのタグ付け」を参照してください。

このポリシーを使用するには、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": "QLDBPartiQLCreateTablePermission", "Effect": "Allow", "Action": [ "qldb:PartiQLCreateTable", "qldb:TagResource" ], "Resource": [ "arn:aws:qldb:us-east-1:123456789012:ledger/myExampleLedger/table/*" ], "Condition": { "StringEquals": { "aws:RequestTag/environment": "development" } } } ] }

Simple Storage Service (Amazon S3) バケットへのジャーナルのエクスポート

ステップ 1: QLDBジャーナルのエクスポート許可

次の例では、台QLDB帳リソースに対して qldb:ExportJournalToS3 アクションを実行する AWS アカウント アクセス許可をユーザーに付与します。また、QLDBサービスに渡すIAMロールリソースに対してiam:PassRoleアクションを実行するアクセス許可も付与します。これはすべてのジャーナルエクスポートリクエストに必要です。

このポリシーを使用するには、us-east-1, 123456789012, myExampleLedger および qldb-s3-export 自分の情報を含む の例。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "QLDBJournalExportPermission", "Effect": "Allow", "Action": "qldb:ExportJournalToS3", "Resource": "arn:aws:qldb:us-east-1:123456789012:ledger/myExampleLedger" }, { "Sid": "IAMPassRolePermission", "Effect": "Allow", "Action": "iam:PassRole", "Resource": "arn:aws:iam::123456789012:role/qldb-s3-export", "Condition": { "StringEquals": { "iam:PassedToService": "qldb.amazonaws.com" } } } ] }

ステップ 2: Simple Storage Service (Amazon S3) バケットのアクセス許可

次の例では、 IAMロールを使用して、Amazon S3 バケットの 1 つに書き込むためのQLDBアクセス許可を付与しますDOC-EXAMPLE-BUCKET。これは、すべてのQLDBジャーナルエクスポートにも必要です。

アクセスs3:PutObject許可の付与に加えて、ポリシーは、オブジェクトのアクセスコントロールリスト (ACL) アクセス許可を設定s3:PutObjectAclするためのアクセス許可も付与します。

このポリシーを使用するには、例の DOC-EXAMPLE-BUCKET を Amazon S3 バケット名に置き換えます。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "QLDBJournalExportS3Permissions", "Effect": "Allow", "Action": [ "s3:PutObject", "s3:PutObjectAcl" ], "Resource": "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*" } ] }

次に、このアクセス許可ポリシーを、 が Amazon S3 バケットにアクセスするために引き受けQLDBることができる IAMロールにアタッチします。次のJSONドキュメントは、 QLDBがアカウント内の任意のQLDBリソースに対して123456789012のみIAMロールを引き受けることを許可する信頼ポリシーの例です。

このポリシーを使用するには、us-east-1 また、123456789012 自分の情報を含む の例。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "qldb.amazonaws.com" }, "Action": [ "sts:AssumeRole" ], "Condition": { "ArnEquals": { "aws:SourceArn": "arn:aws:qldb:us-east-1:123456789012:*" }, "StringEquals": { "aws:SourceAccount": "123456789012" } } } ] }

Kinesis Data Streams へのジャーナルのストリーミング

ステップ 1: QLDBジャーナルストリームのアクセス許可

次の例では、台帳内のすべてのストリームサブリソースqldb:StreamJournalToKinesisに対してQLDBアクションを実行する AWS アカウント アクセス許可をユーザーに付与します。また、QLDBサービスに渡すIAMロールリソースに対してiam:PassRoleアクションを実行するアクセス許可も付与します。これはすべてのジャーナルストリームリクエストに必要です。

このポリシーを使用するには、us-east-1, 123456789012, myExampleLedger および qldb-kinesis-stream 自分の情報を含む の例。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "QLDBJournalStreamPermission", "Effect": "Allow", "Action": "qldb:StreamJournalToKinesis", "Resource": "arn:aws:qldb:us-east-1:123456789012:stream/myExampleLedger/*" }, { "Sid": "IAMPassRolePermission", "Effect": "Allow", "Action": "iam:PassRole", "Resource": "arn:aws:iam::123456789012:role/qldb-kinesis-stream", "Condition": { "StringEquals": { "iam:PassedToService": "qldb.amazonaws.com" } } } ] }

ステップ 2: Kinesis Data Streams のアクセス許可

次の例では、 IAMロールを使用して、Amazon Kinesis データストリームにデータレコードを書き込むQLDBためのアクセス権を付与します。stream-for-qldb。 これは、すべてのQLDBジャーナルストリームにも必要です。

このポリシーを使用するには、us-east-1, 123456789012 および stream-for-qldb 自分の情報を含む の例。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "QLDBStreamKinesisPermissions", "Action": [ "kinesis:PutRecord*", "kinesis:DescribeStream", "kinesis:ListShards" ], "Effect": "Allow", "Resource": "arn:aws:kinesis:us-east-1:123456789012:stream/stream-for-qldb" } ] }

次に、このアクセス許可ポリシーを、 が Kinesis データストリームにアクセスするために引き受けQLDBることができる IAMロールにアタッチします。次のJSONドキュメントは、 が台帳myExampleLedgerのみのアカウント内のストリーム123456789012の QLDB IAMロールを引き受けQLDBることを許可する信頼ポリシーの例です。

このポリシーを使用するには、us-east-1, 123456789012 および myExampleLedger 自分の情報を含む の例。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "qldb.amazonaws.com" }, "Action": [ "sts:AssumeRole" ], "Condition": { "ArnEquals": { "aws:SourceArn": "arn:aws:qldb:us-east-1:123456789012:stream/myExampleLedger/*" }, "StringEquals": { "aws:SourceAccount": "123456789012" } } } ] }

タグに基づくQLDB台帳の更新

アイデンティティベースのポリシーの条件を使用して、タグに基づいてQLDBリソースへのアクセスを制御できます。この例では、台帳の更新を許可するポリシーを作成する方法を示しています。ただし、台帳タグ Owner にそのユーザーのユーザー名の値がある場合のみ、アクセス許可は付与されます。このポリシーでは、このアクションをコンソールで実行するために必要なアクセス許可も付与します。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ListLedgersInConsole", "Effect": "Allow", "Action": "qldb:ListLedgers", "Resource": "*" }, { "Sid": "UpdateLedgerIfOwner", "Effect": "Allow", "Action": "qldb:UpdateLedger", "Resource": "arn:aws:qldb:*:*:ledger/*", "Condition": { "StringEquals": {"aws:ResourceTag/Owner": "${aws:username}"} } } ] }

このポリシーをアカウントの ユーザーにアタッチできます。という名前のユーザーがQLDB台帳を更新richard-roeしようとする場合は、台帳に Owner=richard-roeまたは のタグを付ける必要がありますowner=richard-roe。それ以外の場合、そのユーザーのアクセスは拒否されます。条件キー名では大文字と小文字は区別されないため、条件タグキー OwnerOwnerowner に一致します。詳細については、「 ユーザーガイド」のIAMJSON「ポリシー要素: 条件IAM」を参照してください。