Usando o OpenID
Para configurar um índice do Amazon Kendra para usar um token OpenID para controle de acesso, você precisa da URL JWKS (JSON Web Key Set) do provedor OpenID. Na maioria dos casos, a URL do JWKS está no seguinte formato (se elas estiverem seguindo a descoberta do OpenID) https://domain-name/.well_known/jwks.json:
Os exemplos a seguir mostram como usar um token do OpenID para controle de acesso do usuário ao criar um índice.
- Console
-
-
Escolha Criar índice para criar um novo índice.
-
Na página Especificar detalhes do índice, dê um nome e uma descrição ao índice.
-
Para a função do IAM, selecione uma função ou Criar uma nova função para e especifique um nome de função para criar uma nova função. O perfil do IAM terá o prefixo “AmazonKendra-”.
-
Deixe os outros campos nos padrões determinados. Escolha Próximo.
-
Na página Configurar controle de acesso do usuário, em Configurações de controle de acesso, escolha Sim para usar tokens para controle de acesso.
-
Em Configuração de token, selecione OpenID como o Tipo de token.
-
Especifique a URL da chave de assinatura. A URL deve apontar para um conjunto de chaves da web JSON.
-
Opcional Em Configuração avançada:
-
Especifique um Nome de usuário para usar na verificação da ACL.
-
Especifique um ou mais Grupos para serem usados na verificação da ACL.
-
Especifique o Emissor que validará o emissor do token.
-
Especifique o(s) ID(s) do cliente. Você deve especificar uma expressão regular que corresponda ao público no JWT.
-
-
Na página de Detalhes do provisionamento, escolha Developer Edition.
-
Escolha Criar para criar seu índice.
-
Aguarde até que o índice seja criado. O Amazon Kendra provisiona o hardware para seu índice. Essa operação pode levar algum tempo.
-
- CLI
-
Para criar um índice com a AWS CLI usando um arquivo de entrada JSON, crie primeiro um arquivo JSON com os parâmetros desejados:
{ "Name": "user-context", "Edition": "ENTERPRISE_EDITION", "RoleArn": "arn:aws:iam::account-id:role:/my-role", "UserTokenConfigurations": [ { "JwtTokenTypeConfiguration": { "KeyLocation": "URL", "Issuer": "optional: specify the issuer url", "ClaimRegex": "optional: regex to validate claims in the token", "UserNameAttributeField": "optional: user", "GroupAttributeField": "optional: group", "URL": "https://example.com/.well-known/jwks.json" } } ], "UserContextPolicy": "USER_TOKEN" }Você pode substituir os nomes de campo padrão do usuário e do grupo. O valor padrão para
UserNameAttributeFieldé "usuário". O valor padrão paraGroupAttributeFieldé "grupos".Em seguida, chame o
create-indexusando o arquivo de entrada. Por exemplo, se o nome do arquivo JSON forcreate-index-openid.json, você poderá usar o seguinte:aws kendra create-index --cli-input-json file://create-index-openid.json - Python
-
response = kendra.create_index( Name='user-context', Edition='ENTERPRISE_EDITION', RoleArn='arn:aws:iam::account-id:role:/my-role', UserTokenConfigurations=[ { "JwtTokenTypeConfiguration": { "KeyLocation": "URL", "Issuer": "optional: specify the issuer url", "ClaimRegex": "optional: regex to validate claims in the token", "UserNameAttributeField": "optional: user", "GroupAttributeField": "optional: group", "URL": "https://example.com/.well-known/jwks.json" } } ], UserContextPolicy='USER_TOKEN' )