As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Usando um JSON Web Token (JWT) com uma chave pública
Os exemplos a seguir mostram como usar o JSON Web Token (JWT) com uma chave pública para controle de acesso do usuário ao criar um índice. Para obter mais informações sobre o JWT, consulte jwt.io
- Console
-
-
Escolha Criar índice para começar a criar um novo índice.
-
Na página Especificar detalhes do índice, dê um nome e uma descrição ao índice.
-
Para o perfil do IAM, selecione uma função ou selecione Criar uma nova função para e especifique um nome de função para criar uma nova função. A IAM função 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 JWT com chave pública como o Tipo de token.
-
Em Parâmetros para assinar a chave pública, escolha o Tipo de senha. Você pode usar uma senha existente do AWS Secrets Manager ou criar outra.
Para criar uma nova senha, escolha Novo e siga estas etapas:
-
Em Novo AWS Secrets Manager segredo, especifique um nome secreto. O prefixo
AmazonKendra-
será adicionado ao salvar a chave pública. -
Especifique um ID de chave. O ID de chave é uma dica que indica qual foi a chave usada para proteger a JSON Web Signature (JWS) do token.
-
Escolha o Algoritmo de assinatura para o token. Esse é o algoritmo criptográfico usado para proteger o token de ID. Para obter mais informações sobre o RSA, consulte a Criptografia RSA
. -
Em Atributos do certificado, especifique uma Cadeia de certificados opcional. A cadeia de certificados é composta por uma lista de certificados. Ele começa com o certificado do servidor e termina com o certificado raiz.
-
Opcional Especifique a impressão digital ou do polegar. Ele deve ser uma confirmação de certificado, uma verificação além de todos os dados do certificado e sua assinatura.
-
Especifique o Expoente. Esse é o valor expoente da chave pública RSA. Ele é representado como um valor codificado como Base64urlUInt.
-
Especifique os Módulos. Esse é o valor expoente da chave pública RSA. Ele é representado como um valor codificado como Base64urlUInt.
-
Selecione Salvar chave para salvar a nova chave.
-
-
Opcional Na 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 seu índice seja criado. Amazon Kendra provisiona o hardware para seu índice. Essa operação pode levar algum tempo.
-
- CLI
-
Use o JWT com uma chave pública dentro de um AWS Secrets Manager. Você precisa do Secrets Manager ARN e sua Amazon Kendra função deve ter acesso ao
GetSecretValue
Secrets Manager recurso. Se você estiver criptografando o Secrets Manager recurso com AWS KMS, a função também deverá ter acesso à ação de descriptografia.Para criar um índice AWS CLI usando um arquivo de entrada JSON, primeiro crie um arquivo JSON com os parâmetros desejados:
{ "Name": "
user-context
", "Edition": "ENTERPRISE_EDITION
", "RoleArn": "arn:aws:iam::account id
:role:/my-role
", "UserTokenConfigurationList": [ { "JwtTokenTypeConfiguration": { "KeyLocation": "SECRET_MANAGER", "Issuer": "optional: specify the issuer url
", "ClaimRegex": "optional: regex to validate claims in the token
", "UserNameAttributeField": "optional: user
", "GroupAttributeField": "optional: group
", "SecretManagerArn": "arn:aws:secretsmanager:us-west-2
:account id
:secret:/my-user-context-secret
} } ], "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-index
usando o arquivo de entrada. Por exemplo, se o nome do arquivo JSON forcreate-index-openid.json
, use o seguinte:aws kendra create-index --cli-input-json file://create-index-openid.json
O segredo deve ter o seguinte formato em Secrets Manager:
{ "keys": [ { "alg": "RS256|RS384|RS512", "kty": "RSA", //this can be RSA only for now "use": "sig", //this value can be sig only for now "n": "
modulus of standard pem
", "e": "exponent of standard pem
", "kid": "key_id
", "x5t": "certificate thumprint for x.509 cert
", "x5c": [ "certificate chain
" ] } ] }Para obter mais informações sobre o JWT, consulte jwt.io
. - Python
-
response = kendra.create_index( Name='
user-context
', Edition='ENTERPRISE_EDITION
', RoleArn='arn:aws:iam::account id
:role:/my-role
', UserTokenConfigurationList=[ { "JwtTokenTypeConfiguration": { "KeyLocation": "URL", "Issuer": "optional: specify the issuer url
", "ClaimRegex": "optional: regex to validate claims in the token
", "UserNameAttributeField": "optional: user
", "GroupAttributeField": "optional: group
", "SecretManagerArn": "arn:aws:secretsmanager:us-west-2
:account id
:secret:/my-user-context-secret
" } } ], UserContextPolicy='USER_TOKEN' )