Amazon Kendra と の連携方法 IAM - Amazon Kendra

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

Amazon Kendra と の連携方法 IAM

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

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

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

アクション

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

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

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

Amazon Kendra のポリシーアクションは、アクションの前にプレフィックス kendra: を使用します。例えば、 ListIndicesAPIオペレーションで Amazon Kendra インデックスを一覧表示するアクセス許可を付与するには、ポリシーに kendra:ListIndicesアクションを含めます。ポリシーステートメントには、Action または NotAction 要素を含める必要があります。Amazon Kendra は、このサービスで実行できるタスクを記述する独自のアクションのセットを定義します。

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

"Action": [ "kendra:action1", "kendra:action2"

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

"Action": "kendra:Describe*"

Amazon Kendra アクションのリストを確認するには、「 ユーザーガイド」の「Amazon Kendra で定義されるアクションIAM」を参照してください。

リソース

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

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

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

"Resource": "*"

Amazon Kendra インデックスリソースには、次の がありますARN。

arn:${Partition}:kendra:${Region}:${Account}:index/${IndexId}

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

例えば、 ステートメントでインデックスを指定するには、次の でインデックスGUIDの を使用しますARN。

"Resource": "arn:aws:kendra:${Region}:${Account}:index/${GUID}"

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

"Resource": "arn:aws:${Region}:${Account}:index/*"

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

"Resource": "*"

Amazon Kendra リソースタイプとその のリストを確認するにはARNs、「 IAMユーザーガイド」の「Amazon Kendra で定義されるリソース」を参照してください。各リソースARNの を指定できるアクションについては、「Amazon Kendra で定義されるアクション」を参照してください。

条件キー

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

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

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

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

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

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

Amazon Kendra のアイデンティティベースポリシーの例を確認するには、Amazon Kendra のアイデンティティベースポリシーの例 を参照してください。

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

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

アクセスコントロールリスト (ACLs)

Amazon Kendra は、 のサービスおよびリソースへのアクセス AWS のアクセスコントロールリスト (ACLs) をサポートしていません。

Amazon Kendra タグに基づいた認可

特定のタイプの Amazon Kendra リソースにタグを関連付けると、これらのリソースへのアクセスを認可できます。タグに基づいてアクセスをコントロールするには、aws:RequestTag/key-name、または aws:TagKeys 条件キーを使用して、ポリシーの条件要素でタグ情報を提供します。

次の表に、タグベースのアクセスコントロールのアクション、対応するリソースタイプおよび条件キーを示します。各アクションは、対応するリソースタイプに関連付けられたタグに基づいて許可されます。

アクション リソースタイプ 条件キー
CreateDataSource   aws:RequestTag, aws:TagKeys
CreateFaq   aws:RequestTag, aws:TagKeys
CreateIndex   aws:RequestTag, aws:TagKeys
API_ListTagsForResource データソース、FAQ、インデックス  
TagResource データソース、FAQ、インデックス aws:RequestTag, aws:TagKeys
UntagResource データソース、FAQ、インデックス aws:TagKeys

Amazon Kendra リソースのタグ付けの詳細については、タグ を参照してください。リソースタグに基づいてリソースへのアクセスを制限するアイデンティティベースのポリシーの例については、タグベースのポリシーの例 を参照してください。タグを使用してリソースへのアクセスを制限する方法の詳細については、「 ユーザーガイド」の「タグを使用したアクセスの制御IAM」を参照してください。

Amazon Kendra IAMロール

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

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

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

Amazon Kendra は、一時的な認証情報の使用をサポートします。

サービスロール

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

Amazon Kendra ではサービスロールがサポートされています。

Amazon Kendra での IAMロールの選択

インデックスの作成、 BatchPutDocumentオペレーションの呼び出し、データソースの作成、または の作成を行うときはFAQ、Amazon Kendra がユーザーに代わって必要なリソースにアクセスするために使用するアクセスロールの Amazon リソースネーム (ARN) を指定する必要があります。以前に作成したロールがある場合、Amazon Kendra コンソールにより、選択できるロールのリストが提示されます。必要なリソースへのアクセスを許可するロールを選択することが重要です。詳細については、「IAM の アクセスロール Amazon Kendra」を参照してください。