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

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

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

デフォルトでは、IAM ユーザーおよびロールには、QLDB リソースを作成または変更するアクセス許可はありません。AWS Management Console、AWS CLI、または AWS API を使用してタスクを実行することもできません。IAM 管理者は、リソースで必要なアクションを実行するための許可をユーザーとロールに付与する IAM ポリシーを作成する必要があります。続いて、管理者はそれらのアクセス許可が必要な IAM ユーザーまたはグループにそのポリシーを添付します。

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

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

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

  • AWS マネージドポリシーの使用を開始する – QLDB の使用をすばやく開始するには、AWS マネージドポリシーを使用して、従業員に必要なアクセス許可を付与します。これらのポリシーはアカウントで既に有効になっており、AWS によって管理および更新されています。詳細については、IAM ユーザーガイドの「AWS マネージドポリシーを使用した許可の使用スタート」を参照してください。

  • 最小特権を付与する - カスタムポリシーを作成するときは、タスクの実行に必要な許可のみを付与します。最小限の許可からスタートし、必要に応じて追加の許可を付与します。この方法は、寛容過ぎる許可から始めて、後から厳しくしようとするよりも安全です。詳細については、IAM ユーザーガイドの「最小特権を認める」を参照してください。

  • 機密性の高いオペレーションに MFA を有効にする - 追加セキュリティとして、機密性の高いリソースまたは API オペレーションにアクセスするために IAM ユーザーに対して、多要素認証 (MFA) の使用を要求します。詳細については、IAM ユーザーガイドの「AWS での多要素認証 (MFA) の使用」を参照してください。

  • 追加のセキュリティとしてポリシー条件を使用する - 実行可能な範囲内で、アイデンティティベースのポリシーがリソースへのアクセスを許可する条件を定義します。例えば、あるリクエストの送信が許可される IP アドレスの範囲を指定するための条件を記述できます。指定された日付または時間範囲内でのみリクエストを許可する条件を書くことも、SSL や MFA の使用を要求することもできます。詳細については、次を参照してください。IAM JSON ポリシー要素: ConditionIAM ユーザーガイド

QLDB コンソールの使用

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

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

ユーザーとロールが QLDB コンソールとそのすべての機能にフルアクセスできるようにするには、以下をアタッチします。AWSエンティティに対する管理ポリシー。詳細については、「Amazon QLDB の AWS マネージドポリシー」、および「IAM ユーザーガイド」の「ユーザーへのアクセス許可の追加」を参照してください。

AmazonQLDBConsoleFullAccess

クエリ履歴の許可

QLDB 権限に加えて、一部のコンソール機能にはDatabase Query Metadata Service(サービスプレフィックス: dbqms). これは、QLDB などのコンソールクエリエディタで最近保存したクエリを管理する内部専用サービスです。AWSのサービス。DBQMS API アクションの全一覧については、「」を参照してください。Database Query Metadata Serviceサービス認証リファレンス

クエリ履歴の権限を許可するには、AWSマネージドポリシーamazonQLDBConsoleFullAccess。このポリシーでは、ワイルドカード (dbqms:*) を使用して、すべてのリソースに対してすべての DBQMS アクションを許可します。

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

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

クエリ履歴のないフルアクセスコンソールの権限

QLDB コンソールへのフルアクセスを許可するにはなし任意のクエリ履歴アクセス許可、除外するカスタム IAM ポリシーを作成できますすべての DBQMS アクション。たとえば、以下のポリシードキュメントでは、AWSマネージドポリシーamazonQLDBConsoleFullAccess,を除きますをサービスプレフィックスで始まるアクション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 ユーザーに許可するポリシーを作成する方法を示します。このポリシーには、コンソールで、または 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 セッション) と対話するには、SendCommand API アクションにアクセス許可を付与する必要があります。次の JSON ドキュメントは、myExampleLedger という台帳に対してのみ、SendCommand API アクションのアクセス許可を付与するポリシーの例です。

このポリシーを使用するには、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 リソースへのフルアクセスを付与できます。詳細については、「Amazon QLDB の AWS マネージドポリシー」を参照してください。

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

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

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

次の JSON ポリシードキュメントでは、myExampleLedger のすべてのテーブルですべての PartiQL コマンドを使用できるように、フルアクセスを付与しています。このポリシーは、台帳で 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: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 のすべてのテーブルですべての PartiQL コマンドを使用できるようにフルアクセスを付与しています。アクセス許可は、テーブルタグ environment に値 development がある場合にのみ付与されます。

警告

これは、ワイルドカード文字 (*) を使用して、すべての PartiQL アクションを許可する例です。これには、QLDB 台帳のすべてのテーブルに対する管理オペレーションと読み取り/書き込みオペレーションが含まれます。代わりに、付与する各アクションと、そのユーザー、ロール、またはグループが必要とするアクションのみを明示的に指定することをお勧めします。

このポリシーを使用するには、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 ポリシードキュメントでは、myExampleLedger のテーブルを作成するアクセス許可を付与しています。qldb:PartiQLCreateTable アクションには、テーブルリソースタイプに対するアクセス許可が必要です。ただし、新しいテーブルのテーブル ID は、CREATE TABLE表示されます。したがって、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 ジャーナルエクスポートのアクセス許可

次の例では、AWS アカウントの IAM ユーザーに、QLDB 台帳リソースに対して qldb:ExportJournalToS3 アクションを実行するためのアクセス許可を付与しています。また、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: Amazon S3 バケットへのアクセス許可

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

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

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

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

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

このポリシーを使用するには、以下の例の 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 ジャーナルストリームのアクセス許可

次の例では、AWS アカウントの IAM ユーザーに、台帳のすべての QLDB ストリームサブリソースに対して qldb:StreamJournalToKinesis アクションを実行するためのアクセス許可を付与しています。また、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 ロールを使用して、Simple Storage Service (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" } ] }

次に、このアクセス許可ポリシーを、QLDB が Kinesis データストリームにアクセスするために引き受けることができる 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}"} } } ] }

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