Amazon Keyspaces で IAM が機能する仕組み - Amazon Keyspaces (Apache Cassandra 向け)

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

Amazon Keyspaces で IAM が機能する仕組み

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

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

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

IAM アクセス権限ポリシーに使用できる Amazon Keyspaces サービス固有のリソースとアクション、および条件コンテキストキーを確認するには、『Service Authorization Reference (サービス認可リファレンス)』の「Actions, Resources, and Condition Keys for Amazon Keyspaces (for Apache Cassandra) (Amazon Keyspaces (Apache Cassandra 向け)のアクション、リソース、および条件キー)」を参照してください。

アクション

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

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

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

Amazon Keyspaces のポリシーアクションは、アクションの前にプレフィックス cassandra: を使用します。例えば、Amazon Keyspaces CREATE CQL ステートメントを使用して Amazon Keyspaces のキースペースを作成するための権限を付与するには、ポリシーに cassandra:Create アクションを含めます。ポリシーステートメントにはAction または NotAction 要素を含める必要があります。Amazon Keyspaces は、このサービスで実行できるタスクを記述する独自のアクションのセットを定義します。

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

"Action": [ "cassandra:CREATE", "cassandra:MODIFY" ]

Amazon Keyspaces アクションのリストを確認するには、『Service Authorization Reference (サービス認可リファレンス)』の「Actions Defined by Amazon Keyspaces (for Apache Cassandra) (Amazon Keyspaces (Apache Cassandra 向け) で定義されるアクション)」を参照してください。

リソース

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

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

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

"Resource": "*"

Amazon Keyspaces では、キースペースとテーブルは、IAM 権限の Resource 要素で使用できます。

Amazon Keyspaces のキースペースリソースには次の ARN があります。

arn:${Partition}:cassandra:${Region}:${Account}:/keyspace/${KeyspaceName}/

Amazon Keyspaces のテーブルリソースには次の ARN があります。

arn:${Partition}:cassandra:${Region}:${Account}:/keyspace/${KeyspaceName}/table/${tableName}

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

例えば、ステートメントで mykeyspace キースペースを指定するには、次の ARN を使用します。

"Resource": "arn:aws:cassandra:us-east-1:123456789012:/keyspace/mykeyspace/"

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

"Resource": "arn:aws:cassandra:us-east-1:123456789012:/keyspace/*"

リソースを作成するためのアクションなど、Amazon Keyspaces アクションには特定のリソースで実行できないものがあります。このような場合はワイルドカード *を使用する必要があります。

"Resource": "*"

接続時にほとんどのドライバーでシステムキースペース/テーブルが読み込まれるため、標準ドライバーで Amazon Keyspaces にプログラムで接続するときは、プリンシパルはシステムテーブルへの SELECT アクセス権限が必要です。例えば、mykeyspacemytable のために IAM ユーザーに SELECT 権限を与える場合、プリンシパルには mytablesystem keyspace の両方を読み取るための権限が必要です。複数リソースを単一ステートメントで指定するには、ARN をカンマで区切ります。

"Resource": "arn:aws:cassandra:us-east-1:111122223333:/keyspace/mykeyspace/table/mytable", "arn:aws:cassandra:us-east-1:111122223333:/keyspace/system*"

Amazon Keyspaces リソースのタイプとその ARN のリストを確認するには、「Service Authorization Reference」(サービス認可リファレンス) の「Resources Defined by Amazon Keyspaces (for Apache Cassandra)」(Amazon Keyspaces (Apache Cassandra 向け) で定義されるリソース) を参照してください。どのアクションで各リソースの ARN を指定できるかについては、「Actions Defined by Amazon Keyspaces (for Apache Cassandra)」(Amazon Keyspaces (Apache Cassandra 向け) で定義されるアクション) を参照してください。

条件キー

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

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

1 つのステートメントに複数の Condition 要素を指定する場合、または 1 つの Condition 要素に複数のキーを指定する場合、 AWS では AND 論理演算子を使用してそれらを評価します。1 つの条件キーに複数の値を指定すると、 は論理ORオペレーションを使用して条件 AWS を評価します。ステートメントの権限が付与される前にすべての条件が満たされる必要があります。

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

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

Amazon Keyspaces では独自の条件キーが定義されており、また一部のグローバル条件キーの使用がサポートされています。すべての AWS グローバル条件キーを確認するには、「IAM ユーザーガイド」のAWS 「 グローバル条件コンテキストキー」を参照してください。

すべての Amazon Keyspaces アクションでは、aws:RequestTag/${TagKey}aws:ResourceTag/${TagKey} および aws:TagKeys 条件キーがサポートされます。詳細については、「 タグに基いた Amazon Keyspaces リソースアクセス」を参照してください。

Amazon Keyspaces の条件キーのリストを確認するには、『Service Authorization Reference (サービス認可リファレンス)』の「Condition Keys for Amazon Keyspaces (for Apache Cassandra)」(Amazon Keyspaces (Apache Cassandra 向け) の条件キー) を参照してください。どのアクションおよびリソースと条件キーを使用できるかについては、「Actions Defined by Amazon Keyspaces (for Apache Cassandra) (Amazon Keyspaces (Apache Cassandra 向け)」で定義されるアクション) を参照してください。

Amazon Keyspaces のアイデンティティベースポリシーの例は、「Amazon Keyspaces のアイデンティティベースポリシーの例」でご確認ください。

Amazon Keyspaces のリソースベースポリシー

Amazon Keyspaces では、リソースベースのポリシーはサポートされていません。詳細なリソースベースポリシーのページの例については、「https://docs.aws.amazon.com/lambda/latest/dg/access-control-resource-based.html」を参照してください。

Amazon Keyspaces タグに基づいた認可

タグを使用して Amazon Keyspaces リソースへのアクセスを管理することができます。タグに基づいてリソースアクセスを管理するには、cassandra:ResourceTag/key-nameaws:RequestTag/key-name、または aws:TagKeys の条件キーを使用して、ポリシーの条件要素でタグ情報を提供します。Amazon Keyspaces リソースのタグ付けの詳細については、「Amazon Keyspaces リソースのタグとラベルを操作する」を参照してください。

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

Amazon Keyspaces の IAM ロール

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

Amazon Keyspaces での一時認証情報の使用

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

Amazon Keyspaces は、以下の言語の Github リポジトリから入手できる AWS Signature Version 4 (SigV4) 認証プラグインでの一時的な認証情報の使用をサポートしています。

認証プラグインを実装してプログラムによって Amazon Keyspaces にアクセスする方法の例とチュートリアルについては、「Cassandra クライアントドライバーを使用した Amazon Keyspaces へのプログラムアクセス」を参照してください。

サービスにリンクされた役割

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

Amazon Keyspaces のサービスリンクロールの作成または管理の詳細については、Amazon Keyspaces のサービスリンクロールの使用を参照してください。

サービス役割

Amazon Keyspaces ではサービスロールがサポートされていません。