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

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

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

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

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

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

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

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

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

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

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

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

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

Amazon Kendra のAWS 管理 (事前定義) ポリシー

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 ユーザーに許可するポリシーの作成方法を示します。このポリシーには、コンソールで、または 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 ポリシードキュメントです。

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

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

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

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

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

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

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

このポリシー例では、ユーザーが department タグを提供し、許可された値 と finance がない限り、 CreateIndexオペレーションを使用するための AWS アカウント内のユーザーまたはロールのアクセスを制限します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" ] } } } ] }