

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

# JSON の使用
<a name="create-index-access-control-tokens-json"></a>

次の例は、インデックスの作成時にユーザーアクセスコントロールに JSON を使用する方法を示しています。

**警告**  
JSON トークンは検証されていないペイロードです。これは、Amazon Kendra へのリクエストが信頼できるサーバーから送信され、ブラウザからのリクエストではない場合にのみ使用してください。

------
#### [ Console ]

1. **[Create index]** (インデックスの作成) を選択して、新しいインデックスの作成を開始します。

1. **[Specify index details]** (インデックスの詳細の指定) ページで、インデックスに名前と説明を付けます。

1. **[IAM ロール]** には、[ロール] を選択するか、または **[新規ロールを作成]** を選択し、新しいロールを作成してロール名を指定します。IAM ロールには、プレフィックス「AmazonKendra-」が付いています。

1. その他のフィールドはすべてデフォルトのままにしておきます。**[Next]** (次へ) を選択します。

1. **[Configure user access control]** (ユーザーアクセスコントロールの設定) ページの、**[Access control settings]** (アクセスコントロールの設定) で、**[Yes]** (はい) を選択し、アクセス制御にトークンを使用します。

1. **[Token configuration]** (トークンの設定) で、**[Token type]** (トークンタイプ) は **[JSON]** を選択します。

1. **[ユーザー名]** を指定して ACL チェックで使用します。

1. 1 つ以上の **[Groups]** (グループ) を指定して、ACL チェックで使用します。

1. **[Next]** (次へ) を選択します。

1. **[Provisioning details]** (プロビジョニングの詳細) ページで、**[Developer edition]** (デベロッパーエディション) を選択します。

1. **[Create]** (作成) を選択してインデックスを作成します。

1. インデックスが作成されるまで待ちます。Amazon Kendra はインデックスのハードウェアをプロビジョニングします。この演算には時間がかかる場合があります。

------
#### [ CLI ]

JSON 入力ファイルを使用して AWS CLI でインデックスを作成するには、まず目的のパラメータを持つ JSON ファイルを作成します。

```
{
    "Name": "user-context",
    "Edition": "ENTERPRISE_EDITION",
    "RoleArn": "arn:aws:iam::account-id:role:/my-role",
    "UserTokenConfigurations": [
        {
            "JsonTokenTypeConfiguration": {
                "UserNameAttributeField": "user",
                "GroupAttributeField": "group"
            }
        }
    ],
    "UserContextPolicy": "USER_TOKEN"
}
```

次に、入力ファイルを使用して、`create-index` を呼び出します。例えば、JSON ファイルの名前が `create-index-openid.json` の場合、以下を使用できます。

```
aws kendra create-index --cli-input-json file://create-index-openid.json
```

AWS IAM アイデンティティセンター の Open ID を使用していない場合は、トークンを JSON 形式で送信できます。その場合は、JSON トークンのどのフィールドにユーザー名が含まれ、どのフィールドにグループが含まれているかを指定する必要があります。グループフィールドの値は JSON 文字列配列でなければなりません。例えば、SAML を使用している場合、トークンは次のようになります。

```
{
     "username" : "user1", 
     "groups": [
        "group1", 
        "group2"
     ]
}
```

`TokenConfiguration` は、ユーザー名とグループフィールド名を指定します。

```
{
    "UserNameAttributeField":"username",
    "GroupAttributeField":"groups"
}
```

------
#### [ Python ]

```
response = kendra.create_index(
    Name='user-context',
    Edition='ENTERPRISE_EDITION',
    RoleArn='arn:aws:iam::account-id:role:/my-role',
    UserTokenConfigurations=[
        {
            "JwtTokenTypeConfiguration": {
                "UserNameAttributeField": "user",
                "GroupAttributeField": "group",
            }
        }
    ],
    UserContextPolicy='USER_TOKEN'
)
```

------