翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
ユーザーコンテキストでのフィルタリング
ユーザーまたはそのグループのドキュメントへのアクセスに基づいて、ユーザーの検索結果をフィルタリングできます。ユーザートークン、ユーザー ID、またはユーザー属性を使用して、ドキュメントをフィルタリングできます。 Amazon Kendra は、ユーザーをグループにマッピングすることもできます。ID ストア/ソースとして AWS IAM Identity Center を使用することを選択できます。
ユーザーコンテキストフィルタリングは、ドキュメントへのアクセスをコントロールできるという利点を持つ、パーソナライズされた検索の一種です。例えば、企業ポータルで情報を検索するすべてのチームが会社の極秘文書にアクセスする必要があるわけではなく、これらの文書がすべてのユーザーに関連しているわけでもありません。極秘文書へのアクセス許可を与えられた特定のユーザーまたはチームグループのみが、検索結果でこれらの文書を参照できます。
ドキュメントをインデックスに登録すると Amazon Kendra、ほとんどのドキュメントに対応するアクセス制御リスト (ACL) が取り込まれます。ACL は、ドキュメントへのアクセスを許可または拒否するユーザー名とグループ名を指定します。ACL のないドキュメントはパブリックドキュメントです。
Amazon Kendra ほとんどのデータソースについて、各ドキュメントに関連するユーザーまたはグループの情報を抽出できます。例えば、Quip のドキュメントには、そのドキュメントへのアクセス許可を持つ特定のユーザーの「共有」リストを含めることができます。S3 バケットをデータソースとして使用する場合は、ACL 用の JSON ファイルを提供し、このファイルへの S3 パスをデータソース設定の一部として含めます。ドキュメントをインデックスに直接追加する場合は、BatchPutDocumentAPI のドキュメントオブジェクトの一部として Principal オブジェクトの ACL を指定します。
CreateAccessControlConfigurationAPI を使用すると、すべてのドキュメントを再度インデックスしなくても、既存のドキュメントレベルのアクセス制御を再設定できます。例えば、インデックスには、特定の従業員またはユーザーだけがアクセスできる会社の極秘文書が含まれています。これらのユーザーのうちの 1 人が会社を退職したり、極秘文書へのアクセスをブロックすべきチームに異動したりします。文書が前にインデックスが作成されたときにアクセス許可を持っていたため、ユーザーは引き続き極秘文書にアクセスできます。アクセスを拒否するユーザーに対して、特定のアクセスコントロール設定を作成できます。ユーザーが会社に戻って「極秘」チームに再び加わった場合にアクセスを許可するように、後でアクセスコントロール設定を更新できます。状況の変化に応じて、ドキュメントのアクセスコントロールを再設定できます。
アクセス制御設定を特定のドキュメントに適用するには、BatchPutDocumentAccessControlConfigurationId
ドキュメントオブジェクトに含まれているを使用して API を呼び出します。S3 バケットをデータソースとして使用する場合は、.metadata.json
AccessControlConfigurationId
を使用してを更新し、データソースを同期します。 Amazon Kendra 現在、API を使用してインデックス化された S3 データソースとドキュメントのアクセスコントロール設定のみをサポートしています。BatchPutDocument
ユーザートークンによるフィルタリング
インデックスをクエリする際、ユーザートークンを使用して、ユーザーまたはそのグループのドキュメントへのアクセスに基づいて、検索結果をフィルタリングできます。クエリを発行すると、 Amazon Kendra トークンを抽出して検証し、ユーザーとグループの情報を取得して確認し、クエリを実行します。パブリックドキュメントを含め、ユーザーがアクセスできるすべてのドキュメントが返されます。詳細については、「Token-based user access control」を参照してください。
UserContextユーザートークンをオブジェクトに指定し、これを Query API に渡します。
次に、ユーザートークンを含める方法を示します。
response = kendra.query( QueryText = query, IndexId = index, UserToken = { Token = "
token
" })
ユーザーをグループにマッピングできます。ユーザーコンテキストフィルタリングを使用する場合、クエリを発行するときに、ユーザーが属しているグループをすべて含める必要はありません。PutPrincipalMappingAPI を使用すると、ユーザーをグループにマップできます。PutPrincipalMapping
API を使用しない場合は、クエリを発行するときに、ユーザー名とユーザーが属するすべてのグループを指定する必要があります。オブジェクトを使用して IAM Identity Center ID ソース内のグループとユーザーのアクセスレベルを取得することもできます。UserGroupResolutionConfiguration
ユーザー ID とグループによるフィルタリング
インデックスをクエリする際、ユーザー ID およびグループを使用して、ユーザーまたはそのグループのドキュメントへのアクセスに基づいて、検索結果をフィルタリングできます。クエリを発行すると、 Amazon Kendra ユーザーとグループの情報を確認し、クエリを実行します。パブリックドキュメントを含め、ユーザーがアクセスできるクエリに関連するすべてのドキュメントが返されます。
また、ユーザーおよびグループがアクセスできるデータソースで検索結果をフィルタリングできます。データソースの指定は、グループが複数のデータソースに関連付けられていても、特定のデータソースのドキュメントにのみアクセスできるようにする場合に便利です。例えば、「リサーチ」、「エンジニアリング」、および「セールスおよびマーケティング」のグループはすべて、Confluence および Salesforce のデータソースに保存されている企業のドキュメントに関連付けられています。ただし、「セールスおよびマーケティング」チームでは、Salesforce に保存されている顧客関連ドキュメントへのアクセスのみが必要です。そのため、営業やマーケティングに携わるユーザーが顧客関連のドキュメントを検索すると、その結果に Salesforce のドキュメントが表示されます。営業およびマーケティングで作業していないユーザーには、検索結果に Salesforce ドキュメントは表示されません。
ユーザー、グループ、UserContextデータソースの情報をオブジェクトに入力し、その情報を Query API に渡します。ユーザー ID、およびグループおよびデータソースのリストは、プリンシパルオブジェクトで指定した名前と一致する必要があり、ユーザー、グループ、およびデータソースを識別します。Principal
オブジェクトを使用すると、ドキュメントにアクセスするための許可リストまたは拒否リストに、ユーザー、グループ、またはデータソースを追加できます。
次のいずれかを提供する必要があります。
-
ユーザーとグループの情報、および (オプション) データソース情報。
-
PutPrincipalMappingAPI を使用してユーザーをグループやデータソースにマッピングする場合は、ユーザー情報のみになります。オブジェクトを使用して IAM Identity Center ID ソース内のグループとユーザーのアクセスレベルを取得することもできます。UserGroupResolutionConfiguration
この情報がクエリに含まれていない場合は、 Amazon Kendra すべてのドキュメントが返されます。この情報を指定すると、ユーザー ID、グループ、およびデータソースが一致するドキュメントのみが返されます。
次に、ユーザー ID、グループ、およびデータソースを含める方法を示します。
response = kendra.query( QueryText = query, IndexId = index, UserId = { UserId = "
user1
" }, Groups = { Groups = ["Sales and Marketing
"] }, DataSourceGroups = { DataSourceGroups = [{"DataSourceId" : "SalesforceCustomerDocsGroup
", "GroupId": "Sales and Marketing
"}] })
ユーザー属性でフィルタリングする
インデックスをクエリする際、組み込み属性の _user_id
および _group_id
を使用して、ユーザーおよびそのグループのドキュメントへのアクセスに基づいて、検索結果をフィルタリングできます。最大 100 個のグループ識別子を設定できます。クエリを発行すると、 Amazon Kendra ユーザーとグループの情報を確認し、クエリを実行します。パブリックドキュメントを含め、ユーザーがアクセスできるクエリに関連するすべてのドキュメントが返されます。
AttributeFilterオブジェクトにユーザー属性とグループ属性を指定し、これを Query API に渡します。
次の例は、ユーザー ID とユーザーが属するグループ「HR」および「IT」に基づいてクエリレスポンスをフィルタリングするリクエストを示しています。このクエリは、許可リストにユーザー、または「HR」または「IT」のグループを含むすべてのドキュメントを返します。ユーザーまたはいずれかのグループがドキュメントの拒否リストに含まれている場合、ドキュメントは返されません。
response = kendra.query( QueryText = query, IndexId = index, AttributeFilter = { "OrAllFilters": [ { "EqualsTo": { "Key": "_user_id", "Value": { "StringValue": "user1" } } }, { "EqualsTo": { "Key": "_group_ids", "Value": { "StringListValue": ["HR", "IT"] } } } ] } )
グループにアクセスできるデータソースは、Principal
オブジェクトにアクセスできます。
注記
ユーザーコンテキストフィルタリングは、コンテンツの認証または認可コントロールではありません。Query
API に送信されたユーザーおよびグループに対するユーザー認証は行いません。Query
API に送信されたユーザーおよびグループの情報が認証および認可されるか否かは、アプリケーションによって異なります。
各データソースのユーザコンテキストフィルタリングの実装があります。以下のセクションでは、各実装について説明します。
インデックスに直接追加されたドキュメントのユーザーコンテキストフィルタリング
BatchPutDocumentAPI を使用してドキュメントをインデックスに直接追加すると、 Amazon Kendra AccessControlList
ドキュメントのフィールドからユーザーとグループの情報が取得されます。ドキュメントのアクセスコントロールリスト (ACL) を指定し、その ACL をドキュメントに取り込みます。
ACL は、BatchPutDocument
API のドキュメントオブジェクトの一部として、プリンシパルオブジェクトに指定します。次の情報を指定します。
-
ユーザーまたはグループが持つ必要があるアクセス許可。
ALLOW
またはDENY
の返答が可能です。 -
エンティティのタイプ。
USER
またはGROUP
の返答が可能です。 -
ユーザーまたはグループの名前。
AccessControlList
フィールドでは最大 200 個のエントリを追加できます。
よくある質問に対するユーザーコンテキストのフィルタリング
FAQ をインデックスに追加すると、FAQ JSON Amazon Kendra AccessControlList
ファイルのオブジェクト/フィールドからユーザーとグループの情報を取得します。アクセスコントロール用のカスタムフィールドまたは属性を含む FAQ CSV ファイルを使用することもできます。
次の情報を指定します。
-
ユーザーまたはグループが持つ必要があるアクセス許可。
ALLOW
またはDENY
の返答が可能です。 -
エンティティのタイプ。
USER
またはGROUP
の返答が可能です。 -
ユーザーまたはグループの名前。
詳細については、「FAQ files」を参照してください。
データソースのユーザーコンテキストフィルタリング
Amazon Kendra また、サポートされているデータソースコネクタからユーザーおよびグループのアクセス制御リスト (ACL) 情報をクロールします。これは、ドキュメントへのユーザーまたはグループのアクセス許可に基づいて検索結果をフィルタリングする場合の、ユーザーコンテキストフィルタリングの設定に役立ちます。
トピック
- Adobe Experience Manager データソースのユーザーコンテキストフィルタリング
- Alfresco データソースのユーザーコンテキストフィルタリング
- Aurora (MySQL) データソースのユーザーコンテキストフィルタリング
- Aurora (PostgreSQL) データソースのユーザーコンテキストフィルタリング
- Amazon FSx データソースのユーザーコンテキストフィルタリング
- データベースデータソースのユーザーコンテキストフィルタリング
- Amazon RDS (Microsoft SQL Server) データソースのユーザーコンテキストフィルタリング
- Amazon RDS (MySQL) データソースのユーザーコンテキストフィルタリング
- Amazon RDS (Oracle) データソースのユーザーコンテキストフィルタリング
- Amazon RDS (PostgreSQL) データソースのユーザーコンテキストフィルタリング
- Amazon S3 データソースのユーザーコンテキストフィルタリング
- Amazon WorkDocs データソースのユーザーコンテキストフィルタリング
- Box データソースのユーザーコンテキストフィルタリング
- Confluence データソースのユーザーコンテキストフィルタリング
- Dropbox データソースのユーザーコンテキストフィルタリング
- Drupal データソースのユーザーコンテキストフィルタリング
- データソースのユーザーコンテキストフィルタリング GitHub
- Gmail データソースのユーザーコンテキストフィルタリング
- Google Drive データソースのユーザーコンテキストフィルタリング
- IBM DB2 データソースのユーザーコンテキストフィルタリング
- Jira データソースのユーザーコンテキストフィルタリング
- Microsoft Exchange データソースのユーザーコンテキストフィルタリング
- Microsoft OneDrive データソースのユーザーコンテキストフィルタリング
- Microsoft OneDrive v2.0 データソースのユーザーコンテキストフィルタリング
- Microsoft SharePoint データソースのユーザーコンテキストフィルタリング
- Microsoft SQL Server データソースのユーザーコンテキストフィルタリング
- Microsoft Teams データソースのユーザーコンテキストフィルタリング
- Microsoft Yammer データソースのユーザーコンテキストフィルタリング
- MySQL データソースのユーザーコンテキストフィルタリング
- Oracle Database データソースのユーザーコンテキストフィルタリング
- PostgreSQL データソースのユーザーコンテキストフィルタリング
- Quip データソースのユーザーコンテキストフィルタリング
- Salesforce データソースのユーザーコンテキストフィルタリング
- ServiceNow データソースのユーザーコンテキストフィルタリング
- Slack データソースのユーザーコンテキストフィルタリング
- Zendesk データソースのユーザーコンテキストフィルタリング
Adobe Experience Manager データソースのユーザーコンテキストフィルタリング
Adobe Experience Manager データソースを使用する場合、Adobe Experience Manager Amazon Kendra インスタンスからユーザーとグループの情報を取得します。
グループ ID とユーザー ID は、次のようにマッピングされます。
-
_group_ids
- グループ ID は、アクセス許可が設定されている Adobe Experience Manager コンテンツに存在します。これらは、Adobe Experience Manager のグループの名前からマッピングされます。 -
_user_id
- ユーザー ID は、アクセス許可が設定されている Adobe Experience Manager コンテンツに存在します。これらは、Adobe Experience Manager のユーザーの E メールからマッピングされます。
AccessControlList
フィールドでは最大 200 個のエントリを追加できます。
Alfresco データソースのユーザーコンテキストフィルタリング
Alfresco データソースを使用する場合、Alfresco Amazon Kendra インスタンスからユーザーとグループの情報を取得します。
グループ ID とユーザー ID は、次のようにマッピングされます。
-
_group_ids
- グループ ID は、Alfresco のアクセス許可が設定されているファイルに存在します。Alfresco のグループ (表示名ではない) のシステム名からマッピングされます。 -
_user_id
- ユーザー ID は、Alfresco のアクセス許可が設定されているファイルに存在します。これらは Alfresco の ID としてユーザーの E メールからマッピングされます。
AccessControlList
フィールドでは最大 200 個のエントリを追加できます。
Aurora (MySQL) データソースのユーザーコンテキストフィルタリング
Aurora (MySQL) データソースを使用する場合、 Amazon Kendra ソーステーブルの列からユーザーとグループの情報を取得します。この列はコンソールで指定するか、CreateDataSourceAPI TemplateConfigurationの一部としてオブジェクトを使用します。
Aurora (MySQL) データベースのデータソースには以下の制限があります。
-
データベースデータソースの許可リストのみを指定できます。拒否リストを指定することはできません。
-
グループのみを指定できます。許可リストに個別のユーザーを指定することはできません。
-
データベース列は、セミコロンで区切られたグループのリストを含む文字列である必要があります。
Aurora (PostgreSQL) データソースのユーザーコンテキストフィルタリング
Aurora (PostgreSQL) データソースを使用する場合、 Amazon Kendra ソーステーブルの列からユーザーとグループの情報を取得します。この列はコンソールで指定するか、API TemplateConfigurationの一部としてオブジェクトを使用します。CreateDataSource
Aurora (PostgreSQL) データベースのデータソースには以下の制限があります。
-
データベースデータソースの許可リストのみを指定できます。拒否リストを指定することはできません。
-
グループのみを指定できます。許可リストに個別のユーザーを指定することはできません。
-
データベース列は、セミコロンで区切られたグループのリストを含む文字列である必要があります。
Amazon FSx データソースのユーザーコンテキストフィルタリング
Amazon FSx データソースを使用すると、 Amazon Kendra Amazon FSx インスタンスのディレクトリサービスからユーザーとグループの情報を取得します。
Amazon FSx グループ ID とユーザー ID は次のようにマッピングされます。
-
_group_ids
- グループ ID は、 Amazon FSx のアクセス許可が設定されているファイルに存在します。これらはのディレクトリサービスのシステムグループ名からマッピングされます。 Amazon FSx -
_user_id
—ユーザー ID は、 Amazon FSx アクセス権限が設定されているファイルに存在します。これらは、のディレクトリサービスのシステムユーザ名からマップされます。 Amazon FSx
AccessControlList
フィールドでは最大 200 個のエントリを追加できます。
データベースデータソースのユーザーコンテキストフィルタリング
Amazon Aurora PostgreSQLなどのデータベースデータソースを使用すると、 Amazon Kendra ソーステーブルの列からユーザーとグループの情報が取得されます。この列は CreateDataSourceAPI AclConfigurationDatabaseConfigurationのオブジェクトの一部としてオブジェクト内で指定します。
データベースデータソースには以下の制限があります。
-
データベースデータソースの許可リストのみを指定できます。拒否リストを指定することはできません。
-
グループのみを指定できます。許可リストに個別のユーザーを指定することはできません。
-
データベース列は、セミコロンで区切られたグループのリストを含む文字列である必要があります。
Amazon RDS (Microsoft SQL Server) データソースのユーザーコンテキストフィルタリング
Amazon RDS (Microsoft SQL Server) データソースを使用する場合、 Amazon Kendra ソーステーブルの列からユーザーとグループの情報を取得します。この列はコンソールで指定するか、CreateDataSourceAPI TemplateConfigurationの一部としてオブジェクトを使用します。
Amazon RDS (Microsoft SQL Server) データベースのデータソースには以下の制限があります。
-
データベースデータソースの許可リストのみを指定できます。拒否リストを指定することはできません。
-
グループのみを指定できます。許可リストに個別のユーザーを指定することはできません。
-
データベース列は、セミコロンで区切られたグループのリストを含む文字列である必要があります。
Amazon RDS (MySQL) データソースのユーザーコンテキストフィルタリング
Amazon RDS (MySQL) データソースを使用する場合、 Amazon Kendra ソーステーブルの列からユーザーとグループの情報を取得します。この列はコンソールで指定するか、CreateDataSourceAPI TemplateConfigurationの一部としてオブジェクトを使用します。
Amazon RDS (MySQL) データベースのデータソースには以下の制限があります。
-
データベースデータソースの許可リストのみを指定できます。拒否リストを指定することはできません。
-
グループのみを指定できます。許可リストに個別のユーザーを指定することはできません。
-
データベース列は、セミコロンで区切られたグループのリストを含む文字列である必要があります。
Amazon RDS (Oracle) データソースのユーザーコンテキストフィルタリング
Amazon RDS (Oracle) データソースを使用する場合、 Amazon Kendra ソーステーブルの列からユーザーとグループの情報を取得します。この列はコンソールで指定するか、CreateDataSourceAPI TemplateConfigurationの一部としてオブジェクトを使用します。
Amazon RDS (Oracle) データベースのデータソースには以下の制限があります。
-
データベースデータソースの許可リストのみを指定できます。拒否リストを指定することはできません。
-
グループのみを指定できます。許可リストに個別のユーザーを指定することはできません。
-
データベース列は、セミコロンで区切られたグループのリストを含む文字列である必要があります。
Amazon RDS (PostgreSQL) データソースのユーザーコンテキストフィルタリング
Amazon RDS (PostgreSQL) データソースを使用する場合、 Amazon Kendra ソーステーブルの列からユーザーとグループの情報を取得します。この列はコンソールで指定するか、API TemplateConfigurationの一部としてオブジェクトを使用します。CreateDataSource
Amazon RDS (PostgreSQL) データベースのデータソースには以下の制限があります。
-
データベースデータソースの許可リストのみを指定できます。拒否リストを指定することはできません。
-
グループのみを指定できます。許可リストに個別のユーザーを指定することはできません。
-
データベース列は、セミコロンで区切られたグループのリストを含む文字列である必要があります。
Amazon S3 データソースのユーザーコンテキストフィルタリング
ドキュメントに関連付けられたメタデータファイルを使用して、 Amazon S3 データソース内のドキュメントにユーザーコンテキストフィルターを追加します。情報を JSON ドキュメント内の AccessControlList
フィールドに追加します。 Amazon S3 データソースからインデックスが作成されたドキュメントにメタデータを追加する方法の詳細については、「S3 document metadata」を参照してください。
次の 3 つの情報を提供します。
-
エンティティが持つべきアクセス。
ALLOW
またはDENY
の返答が可能です。 -
エンティティのタイプ。
USER
またはGROUP
の返答が可能です。 -
エンティティの名前。
AccessControlList
フィールドでは最大 200 個のエントリを追加できます。
Amazon WorkDocs データソースのユーザーコンテキストフィルタリング
Amazon WorkDocs データソースを使用すると、 Amazon Kendra Amazon WorkDocs インスタンスからユーザーとグループの情報を取得します。
Amazon WorkDocs グループ ID とユーザー ID は次のようにマッピングされます。
-
_group_ids
—グループ ID は、 Amazon WorkDocs アクセス権限が設定されているファイルに存在します。内のグループの名前からマッピングされます。 Amazon WorkDocs -
_user_id
—ユーザー ID は、 Amazon WorkDocs アクセス権限が設定されているファイルに存在します。のユーザー名からマッピングされます。 Amazon WorkDocs
AccessControlList
フィールドでは最大 200 個のエントリを追加できます。
Box データソースのユーザーコンテキストフィルタリング
Box データソースを使用する場合、Box Amazon Kendra インスタンスからユーザーとグループの情報を取得します。
Box グループ ID とユーザー ID は、次のようにマッピングされます。
-
_group_ids
- グループ ID は、Box のアクセス許可が設定されているファイルに存在します。これらは Box のグループの名前からマッピングされます。 -
_user_id
- ユーザー ID は、Box のアクセス許可が設定されているファイルに存在します。これらは Box のユーザー ID としてユーザーの E メールからマッピングされます。
AccessControlList
フィールドでは最大 200 個のエントリを追加できます。
Confluence データソースのユーザーコンテキストフィルタリング
Confluence データソースを使用する場合、Confluence Amazon Kendra インスタンスからユーザーとグループの情報を取得します。
[スペースアクセス許可] ページを使用して、スペースへのユーザーおよびグループアクセスを構成します。ページとブログの場合は、[制限] ページを使用します。スペースのアクセス許可の詳細については、Confluence Support ウェブサイトのスペースアクセス許可の概要
Confluence グループ名とユーザー名は、次のようにマッピングされます。
-
_group_ids
- グループ名は、制限のあるスペース、ページ、ブログに存在します。これらは Confluence のグループの名前からマッピングされます。グループ名は常に小文字です。
-
_user_id
- ユーザー名は、制限のあるスペース、ページ、ブログに存在します。これらは、使用している Confluence インスタンスのタイプに応じてマッピングされます。Confluence Connector v1.0 向け
-
サーバー -
_user_id
はユーザー名です。ユーザーネームは常に小文字です。 -
クラウド -
_user_id
はユーザーのアカウント ID です。
Confluence Connector v2.0 向け
-
サーバー -
_user_id
はユーザー名です。ユーザーネームは常に小文字です。 -
クラウド -
_user_id
はユーザーの E メール ID です。
重要
Confluence コネクタでユーザーコンテキストフィルタリングを正しく機能させるには、Confluence ページへのアクセスを許可されたユーザーの可視性が [全員] に設定されていることを確認する必要があります。詳細については、Atlassian デベロッパードキュメントの「Set your email visibility
」を参照してください。 -
AccessControlList
フィールドでは最大 200 個のエントリを追加できます。
Dropbox データソースのユーザーコンテキストフィルタリング
Dropbox データソースを使用する場合、Dropbox Amazon Kendra インスタンスからユーザーとグループの情報を取得します。
グループ ID とユーザー ID は、次のようにマッピングされます。
-
_group_ids
- グループ ID は、Dropbox のアクセス許可が設定されているファイルに存在します。これらは Dropbox のグループの名前からマッピングされます。 -
_user_id
- ユーザー ID は、Dropbox のアクセス許可が設定されているファイルに存在します。これらは Dropbox の ID としてユーザーの E メールからマッピングされます。
AccessControlList
フィールドでは最大 200 個のエントリを追加できます。
Drupal データソースのユーザーコンテキストフィルタリング
Drupal データソースを使用する場合、Drupal Amazon Kendra インスタンスからユーザーとグループの情報を取得します。
グループ ID とユーザー ID は、次のようにマッピングされます。
-
_group_ids
- グループ ID は、Drupal のアクセス許可が設定されているファイルに存在します。これらは Drupal のグループの名前からマッピングされます。 -
_user_id
- ユーザー ID は、Drupal のアクセス許可が設定されているファイルに存在します。これらは Drupal の ID としてユーザーの E メールからマッピングされます。
AccessControlList
フィールドでは最大 200 個のエントリを追加できます。
データソースのユーザーコンテキストフィルタリング GitHub
GitHub データソースを使用すると、 Amazon Kendra GitHub インスタンスからユーザー情報を取得します。
GitHub ユーザー ID は次のようにマッピングされます。
-
_user_id
—ユーザー ID は、 GitHub アクセス権限が設定されているファイルに存在します。ユーザー E メールから ID としてマッピングされます。 GitHub
AccessControlList
フィールドでは最大 200 個のエントリを追加できます。
Gmail データソースのユーザーコンテキストフィルタリング
Gmail データソースを使用する場合、Gmail Amazon Kendra インスタンスからユーザー情報を取得します。
ユーザー ID は、次のようにマッピングされます。
-
_user_id
- ユーザー ID は、Gmail のアクセス許可が設定されているファイルに存在します。これらは Gmail の ID としてユーザーの E メールからマッピングされます。
AccessControlList
フィールドでは最大 200 個のエントリを追加できます。
Google Drive データソースのユーザーコンテキストフィルタリング
Google Workspace Drive データソースは、Google Drive のユーザーおよびグループのユーザー情報とグループ情報を返します。グループおよびドメインメンバーシップは、_group_ids
インデックスフィールドにマッピングされます。Google Drive のユーザー名は、_user_id
フィールドにマッピングされます。
Query
API で 1 つ以上のユーザーの E メールアドレスを指定する場合、それらの E メールアドレスと共有されているドキュメントのみが返されます。以下の AttributeFilter
パラメータは、「martha@example.com」と共有されているドキュメントのみを返します。
"AttributeFilter": { "EqualsTo":{ "Key": "_user_id", "Value": { "StringValue": "martha@example.com" } } }
クエリで 1 つ以上のグループの E メールアドレスを指定すると、グループと共有されているドキュメントのみが返されます。以下の AttributeFilter
パラメータは、「hr@example.com」グループと共有されているドキュメントのみを返します。
"AttributeFilter": { "EqualsTo":{ "Key": "_group_ids", "Value": { "StringListValue": ["hr@example.com"] } } }
クエリでドメインを指定すると、ドメインで共有されているすべてのドキュメントが返されます。以下の AttributeFilter
パラメータは、「example.com」ドメインと共有されているドキュメントのみを返します。
"AttributeFilter": { "EqualsTo":{ "Key": "_group_ids", "Value": { "StringListValue": ["example.com"] } } }
AccessControlList
フィールドでは最大 200 個のエントリを追加できます。
IBM DB2 データソースのユーザーコンテキストフィルタリング
IBM DB2 データソースを使用する場合、 Amazon Kendra ソーステーブルの列からユーザーとグループの情報を取得します。この列はコンソールで指定するか、CreateDataSourceAPI TemplateConfigurationの一部としてオブジェクトを使用します。
IBM DB2 データベースデータソースには、次の制限があります。
-
データベースデータソースの許可リストのみを指定できます。拒否リストを指定することはできません。
-
グループのみを指定できます。許可リストに個別のユーザーを指定することはできません。
-
データベース列は、セミコロンで区切られたグループのリストを含む文字列である必要があります。
Jira データソースのユーザーコンテキストフィルタリング
Jira データソースを使用すると、Jira Amazon Kendra インスタンスからユーザーとグループの情報を取得します。
Jira ユーザー ID は、次のようにマッピングされます。
-
_user_id
- ユーザー ID は、Jira のアクセス許可が設定されているファイルに存在します。これらは Jira のユーザー ID としてユーザーの E メールからマッピングされます。
AccessControlList
フィールドでは最大 200 個のエントリを追加できます。
Microsoft Exchange データソースのユーザーコンテキストフィルタリング
Microsoft Exchange データソースを使用する場合、Microsoft Exchange Amazon Kendra インスタンスからユーザー情報を取得します。
Microsoft Exchange のユーザ ID は次のようにマッピングされています。
-
_user_id
—Microsoft Exchange の権限には、ユーザが特定のコンテンツにアクセスするためのユーザ ID があります。これらはユーザー名から Microsoft Exchange の ID としてマッピングされます。
AccessControlList
フィールドでは最大 200 個のエントリを追加できます。
Microsoft OneDrive データソースのユーザーコンテキストフィルタリング
Amazon Kendra は、 OneDrive サイト上のドキュメントにインデックスを付けるときに、Microsoft からユーザーおよびグループの情報を取得します。ユーザーとグループの情報は、ホストしている基盤となる Microsoft SharePoint OneDrive サイトから取得されます。
OneDrive ユーザーまたはグループを使用して検索結果を絞り込む場合は、次のように ID を計算してください。
-
サイト名を取得します。例えば、
https://host.onmicrosoft.com/sites/siteName.
。 -
サイト名の MD5 ハッシュを取ります。例えば
430a6b90503eef95c89295c8999c7981
です。 -
MD5 ハッシュを縦棒 (|) と ID で連結して、ユーザーの E メールまたはグループ ID を作成します。たとえば、グループ名が "localGroupName" の場合、グループ ID は次のようになります。
"
430a6b90503eef95c89295c8999c7981 | localGroupName
"注記
縦棒の前後にスペースを入れてください。垂直バーは MD5
localGroupName
ハッシュで識別するために使用されます。ユーザー名が「someone@host.onmicrosoft.com」の場合、ユーザー ID は次のようになります。
"
430a6b90503eef95c89295c8999c7981 | someone@host.onmicrosoft.com
"
Query API を呼び出すときに、ユーザー ID _user_id
またはグループ ID Amazon Kendra _group_id
をまたは属性としてに送信します。たとえば、 AWS CLI グループを使用して検索結果をフィルタリングするコマンドは以下のようになります。
aws kendra query \ --index-id
index ID
--query-text "query text
" --attribute-filter '{ "EqualsTo":{ "Key": "_group_id", "Value": {"StringValue": "430a6b90503eef95c89295c8999c7981 | localGroupName"} }}'
AccessControlList
フィールドでは最大 200 個のエントリを追加できます。
Microsoft OneDrive v2.0 データソースのユーザーコンテキストフィルタリング
Microsoft OneDrive v2.0 データソースは、 OneDrive アクセス制御リスト (ACL) エンティティからセクションとページの情報を返します。 Amazon Kendra OneDrive OneDrive テナントドメインを使用してインスタンスに接続し、セクションやファイル名へのユーザーまたはグループのアクセスに基づいて検索結果をフィルタリングできます。
標準オブジェクトについては、_user_id
および _group_id
が次のように使用されます。
-
_user_id
— Microsoft OneDrive ユーザーの電子メール ID_user_id
がフィールドにマップされます。 -
_group_id
— Microsoft OneDrive_group_id
グループのメールがフィールドにマップされます。
AccessControlList
フィールドでは最大 200 個のエントリを追加できます。
Microsoft SharePoint データソースのユーザーコンテキストフィルタリング
Amazon Kendra SharePoint サイトドキュメントのインデックスを作成するときに、Microsoft からユーザーおよびグループの情報を取得します。ユーザーまたはグループのアクセスに基づいて検索結果をフィルタリングするには、API を呼び出すときにユーザーとグループの情報を入力します。Query
ユーザー名を使用してフィルタリングするには、ユーザーの E メールアドレスを使用します。例えば、johnstiles@example.com。
SharePoint グループを使用して検索結果を絞り込む場合は、次のようにグループ ID を計算します。
ローカルグループ用
-
サイト名を取得します。例えば、
https://host.onmicrosoft.com/sites/siteName.
。 -
サイト名の SHA256 ハッシュを取ります。例えば
430a6b90503eef95c89295c8999c7981
です。 -
SHA256 ハッシュを縦棒 (|) と ID で連結して、グループ ID を作成します。たとえば、グループ名が "localGroupName" の場合、グループ ID は次のようになります。
"
430a6b90503eef95c89295c8999c7981 | localGroupName
"注記
縦棒の前後にスペースを入れてください。縦棒は SHA256
localGroupName
ハッシュで識別するために使用されます。
Query API を呼び出すときに、グループ ID Amazon Kendra _group_id
を属性としてに送信します。たとえば、 AWS CLI コマンドは以下のようになります。
aws kendra query \ --index-id
index ID
--query-text "query text
" --attribute-filter '{ "EqualsTo":{ "Key": "_group_id", "Value": {"StringValue": "430a6b90503eef95c89295c8999c7981 | localGroupName"} }}'
AD グループ用
-
AD グループ ID を使用して検索結果のフィルタリングを設定します。
Query API を呼び出すときに、グループ ID Amazon Kendra _group_id
を属性としてに送信します。たとえば、 AWS CLI コマンドは以下のようになります。
aws kendra query \ --index-id
index ID
--query-text "query text
" --attribute-filter '{ "EqualsTo":{ "Key": "_group_id", "Value": {"StringValue": "AD group"} }}'
AccessControlList
フィールドでは最大 200 個のエントリを追加できます。
Microsoft SQL Server データソースのユーザーコンテキストフィルタリング
Microsoft SQL Server データソースを使用する場合、 Amazon Kendra ソーステーブルの列からユーザーとグループの情報を取得します。この列はコンソールで指定するか、CreateDataSourceAPI TemplateConfigurationの一部としてオブジェクトを使用します。
Microsoft SQL Server データベースデータソースには、次の制限があります。
-
データベースデータソースの許可リストのみを指定できます。拒否リストを指定することはできません。
-
グループのみを指定できます。許可リストに個別のユーザーを指定することはできません。
-
データベース列は、セミコロンで区切られたグループのリストを含む文字列である必要があります。
Microsoft Teams データソースのユーザーコンテキストフィルタリング
Amazon Kendra ドキュメントにインデックスを付けるときに Microsoft Teams からユーザー情報を取得します。ユーザー情報は、基盤となるMicrosoft Teamsインスタンスから取得されます。
AccessControlList
フィールドでは最大 200 個のエントリを追加できます。
Microsoft Yammer データソースのユーザーコンテキストフィルタリング
Amazon Kendra ドキュメントにインデックスを付けるときに Microsoft Yammer からユーザー情報を取得します。ユーザーとグループの情報は、基盤となる Microsoft Yammer インスタンスから取得されます。
Microsoft Yammer ユーザー ID は、次のようにマッピングされます。
-
_email_id
—_user_id
フィールドにマップされている Microsoft 電子メール ID。
AccessControlList
フィールドでは最大 200 個のエントリを追加できます。
MySQL データソースのユーザーコンテキストフィルタリング
MySQL データソースを使用する場合、 Amazon Kendra ソーステーブルの列からユーザーとグループの情報を取得します。この列はコンソールで指定するか、CreateDataSourceAPI TemplateConfigurationの一部としてオブジェクトを使用します。
MySQL データベースデータソースには、次の制限があります。
-
データベースデータソースの許可リストのみを指定できます。拒否リストを指定することはできません。
-
グループのみを指定できます。許可リストに個別のユーザーを指定することはできません。
-
データベース列は、セミコロンで区切られたグループのリストを含む文字列である必要があります。
Oracle Database データソースのユーザーコンテキストフィルタリング
Oracle Database データソースを使用する場合、 Amazon Kendra ソーステーブルの列からユーザーとグループの情報を取得します。この列はコンソールで指定するか、CreateDataSourceAPI TemplateConfigurationの一部としてオブジェクトを使用します。
Oracle Database データベースデータソースには、次の制限があります。
-
データベースデータソースの許可リストのみを指定できます。拒否リストを指定することはできません。
-
グループのみを指定できます。許可リストに個別のユーザーを指定することはできません。
-
データベース列は、セミコロンで区切られたグループのリストを含む文字列である必要があります。
PostgreSQL データソースのユーザーコンテキストフィルタリング
PostgreSQL データソースを使用する場合、 Amazon Kendra ソーステーブルの列からユーザーとグループの情報を取得します。この列はコンソールで指定するか、API TemplateConfigurationの一部としてオブジェクトを使用します。CreateDataSource
PostgreSQL データベースデータソースには、次の制限があります。
-
データベースデータソースの許可リストのみを指定できます。拒否リストを指定することはできません。
-
グループのみを指定できます。許可リストに個別のユーザーを指定することはできません。
-
データベース列は、セミコロンで区切られたグループのリストを含む文字列である必要があります。
Quip データソースのユーザーコンテキストフィルタリング
Quip データソースを使用する場合、Quip Amazon Kendra インスタンスからユーザー情報を取得します。
Quip ユーザー ID は、次のようにマッピングされます。
-
_user_id
- ユーザー ID は、Quip のアクセス許可が設定されているファイルに存在します。これらは Quip の ID としてユーザーの E メールからマッピングされます。
AccessControlList
フィールドでは最大 200 個のエントリを追加できます。
Salesforce データソースのユーザーコンテキストフィルタリング
Salesforce データソースは、Salesforce アクセスコントロールリスト (ACL) エンティティからユーザーおよびグループ情報を返します。Salesforce 標準オブジェクトおよび Chatter フィードにユーザーコンテキストフィルタリングを適用できます。ユーザーコンテキストフィルタリングは、Salesforce ナレッジ記事では使用できません。
標準オブジェクトについては、_user_id
および _group_ids
が次のように使用されます。
-
_user_id
- Salesforce ユーザーのユーザー名。 -
_group_ids
—-
Salesforce
Profile
の名前 -
Salesforce
Group
の名前 -
Salesforce
UserRole
の名前 -
Salesforce
PermissionSet
の名前
-
Chatter フィードの場合、_user_id
および _group_ids
は次のように使用されます。
-
_user_id
- Salesforce ユーザーのユーザー名。項目がユーザーのフィードに投稿されている場合にのみ使用できます。 -
_group_ids
- グループ ID は、次のように使用されます。フィードフィードが Chatter またはコラボレーショングループに投稿されている場合にのみ使用できます。-
Chatter グループまたはコラボレーショングループの名前。
-
グループが公開されている場合、
PUBLIC:ALL
。
-
AccessControlList
フィールドでは最大 200 個のエントリを追加できます。
ServiceNow データソースのユーザーコンテキストフィルタリング
ServiceNow のユーザーコンテキストフィルタリングは TemplateConfiguration API と ServiceNow Connector v2.0 でのみサポートされています。 ServiceNowConfigurationAPI と ServiceNow Connector v1.0 はユーザーコンテキストフィルタリングをサポートしていません。
ServiceNow データソースを使用する場合、 Amazon Kendra インスタンスからユーザーとグループの情報を取得します。 ServiceNow
グループ ID とユーザー ID は、次のようにマッピングされます。
-
_group_ids
—グループ ID は、 ServiceNow アクセス権限が設定されているファイルに存在します。insys_ids
のロール名からマッピングされます。 ServiceNow -
_user_id
—ユーザー ID は、 ServiceNow アクセス権限が設定されているファイルにあります。ユーザー E メールから ID としてマッピングされます。 ServiceNow
AccessControlList
フィールドでは最大 200 個のエントリを追加できます。
Slack データソースのユーザーコンテキストフィルタリング
Slack データソースを使用する場合、Slack Amazon Kendra インスタンスからユーザー情報を取得します。
Slack ユーザー ID は、次のようにマッピングされます。
-
_user_id
- ユーザー ID は、アクセス許可が設定されている Slack のメッセージとチャネルに存在します。これらは Slack の ID としてユーザーの E メールからマッピングされます。
AccessControlList
フィールドでは最大 200 個のエントリを追加できます。
Zendesk データソースのユーザーコンテキストフィルタリング
Zendesk データソースを使用する場合、Zendesk Amazon Kendra インスタンスからユーザーとグループの情報を取得します。
グループ ID とユーザー ID は、次のようにマッピングされます。
-
_group_ids
- グループ ID は、アクセス許可が設定されている Zendesk のチケットおよび記事に存在します。これらは Zendesk のグループの名前からマッピングされます。 -
_user_id
- グループ ID は、アクセス許可が設定されている Zendesk のチケットおよび記事に存在します。これらは Zendesk の ID としてユーザーの E メールからマッピングされます。
AccessControlList
フィールドでは最大 200 個のエントリを追加できます。