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

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

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

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

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

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

ID ベースのポリシーは、ユーザーのアカウント内で誰かが Amazon Kendra リソースを作成、アクセス、または削除できるどうかを決定します。これらのアクションでは、 のコストが発生する可能性があります。 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」を参照してください。

AWS Amazon Kendra のマネージド (事前定義) ポリシー

AWS は、 によって作成および管理されるスタンドアロンIAMポリシーを提供することで、多くの一般的なユースケースに対処します。 AWS。 これらのポリシーは と呼ばれます。 AWS マネージドポリシー。 AWS 管理ポリシーを使用すると、ポリシーを自分で記述する必要があったよりも、ユーザー、グループ、ロールにアクセス許可を割り当てることが容易になります。詳細については、「 IAMユーザーガイド」の「ユーザーへのアクセス許可の追加」を参照してください。

以下のようになります AWS アカウントのグループとロールにアタッチできる マネージドポリシーは、Amazon Kendra に固有です。

  • AmazonKendraReadOnly — Amazon Kendra リソースへの読み取り専用アクセスを許可します。

  • AmazonKendraFullAccess — すべての Amazon Kendra リソースを作成、読み取り、更新、削除、タグ付け、実行するためのフルアクセスを許可します。

コンソールでは、ロールにも iam:CreateRoleiam:CreatePolicyiam:AttachRolePolicy、および s3:ListBucket アクセス許可が必要です。

注記

これらのアクセス許可を確認するには、 IAMコンソールにサインインし、特定のポリシーを検索します。

独自のカスタムポリシーを作成して、Amazon Kendra APIアクションのアクセス許可を許可することもできます。これらのカスタムポリシーは、これらのアクセス許可を必要とするIAMロールまたはグループにアタッチできます。Amazon Kendra のIAMポリシーの例については、「」を参照してくださいAmazon Kendra のアイデンティティベースポリシーの例

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

この例では、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": "*" } ] }

1 つの Amazon Kendra インデックスへのアクセス

この例では、 の ユーザーに を付与します。 AWS インデックスをクエリするための アカウントアクセス。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "QueryIndex", "Effect": "Allow", "Action": [ "kendra:Query" ], "Resource": "arn:aws:kendra:${Region}:${Account}:index/${Index ID}" } ] }

タグベースのポリシーの例

タグベースのポリシーは、プリンシパルがタグ付けされたリソースに対して実行できるアクションを指定するJSONポリシードキュメントです。

例: タグを使用したリソースへのアクセス

このポリシーの例では、 のユーザーまたはロールを付与します。 AWS キー departmentと値 でタグ付けされた任意のリソースで Queryオペレーションを使用するための アカウントのアクセス許可finance

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "kendra:Query" ], "Resource": "*", "Condition": { "StringEquals": { "aws:ResourceTag/department": "finance" } } } ] }

例: タグを使用して Amazon Kendra 演算を有効にする

このポリシーの例では、 のユーザーまたはロールを付与します。 AWS キー departmentと値 でタグ付けされたリソースによる オペレーションを除く、Amazon Kendra TagResourceオペレーションを使用するための アカウントのアクセス許可finance

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "kendra:*", "Resource": "*" }, { "Effect": "Deny", "Action": [ "kendra:TagResource" ], "Resource": "*", "Condition": { "StringEquals": { "aws:ResourceTag/department": "finance" } } } ] }

例: タグを使用して演算へのアクセスを制限する

このポリシー例では、 のユーザーまたはロールへのアクセスを制限します。 AWS ユーザーが department タグを提供し、許可された値 と がある場合を除き、 アカウントは finance CreateIndexオペレーションを使用しますIT

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "kendra:CreateIndex", "Resource": "*" }, { "Effect": "Deny", "Action": "kendra:CreateIndex", "Resource": "*", "Condition": { "Null": { "aws:RequestTag/department": "true" } } }, { "Effect": "Deny", "Action": "kendra:CreateIndex", "Resource": "*", "Condition": { "ForAnyValue:StringNotEquals": { "aws:RequestTag/department": [ "finance", "IT" ] } } } ] }