View a markdown version of this page

Resource-based esempi di policy per Amazon Lex V2 - Amazon Lex

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Resource-based esempi di policy per Amazon Lex V2

Una policy basata sulle risorse è associata a una risorsa, ad esempio un bot o un alias bot. Con una policy basata sulle risorse è possibile specificare chi ha accesso alla risorsa e le azioni che possono eseguire su di essa. Ad esempio, puoi aggiungere policy basate sulle risorse che consentono a un utente di modificare un bot specifico o di utilizzare le operazioni di runtime su un alias bot specifico.

Quando utilizzi una policy basata sulle risorse, puoi consentire ad altri servizi AWS di accedere alle risorse del tuo account. Ad esempio, puoi consentire a Connect Customer di accedere a un bot Amazon Lex V2.

Per informazioni su come creare un bot o un alias per bot, consulta. Utilizzo dei bot Amazon Lex V2

Usa la console per specificare una policy basata sulle risorse

Puoi utilizzare la console Amazon Lex V2 per gestire le policy basate sulle risorse per i tuoi bot e i bot alias. Inserisci la struttura JSON di una policy e la console la associa alla risorsa. Se è già presente una policy associata a una risorsa, è possibile utilizzare la console per visualizzare e modificare la policy.

Quando si salva una policy con l'editor delle policy, la console controlla la sintassi della policy. Se la policy contiene errori, ad esempio un utente inesistente o un'azione non supportata dalla risorsa, restituisce un errore e non salva la policy.

Quanto segue mostra l'editor di policy basato sulle risorse per un bot nella console. L'editor delle politiche per un alias bot è simile.

L'editor di policy basato sulle risorse della console Amazon Lex V2.
Per aprire l'editor delle politiche per un bot
  1. Accedi alla Console di gestione AWS e apri la console Amazon Lex all'indirizzo https://console.aws.amazon.com/lex/.

  2. Dall'elenco dei bot, scegli il bot di cui desideri modificare la policy.

  3. Nella sezione Resource-based policy, scegli Modifica.

Per aprire l'editor delle politiche per l'alias di un bot
  1. Accedi alla Console di gestione AWS e apri la console Amazon Lex all'indirizzo https://console.aws.amazon.com/lex/.

  2. Dall'elenco dei bot, scegli il bot che contiene l'alias che desideri modificare.

  3. Dal menu a sinistra, scegli Alias, quindi scegli l'alias da modificare.

  4. Nella sezione Resource-based politica, scegli Modifica.

Usa l'API per specificare una policy basata sulle risorse

Puoi utilizzare le operazioni API per gestire le politiche basate sulle risorse per i tuoi bot e gli alias dei bot. Sono disponibili operazioni per creare, aggiornare ed eliminare le policy.

CreateResourcePolicy

Aggiunge una nuova policy sulle risorse con le dichiarazioni di politica specificate a un bot o un alias bot.

CreateResourcePolicyStatement

Aggiunge una nuova dichiarazione sulla politica delle risorse a un bot o un alias bot.

DeleteResourcePolicy

Rimuove una policy relativa alle risorse da un bot o da un alias di bot.

DeleteResourcePolicyStatement

Rimuove una dichiarazione sulla politica delle risorse da un bot o da un alias di bot.

DescribeResourcePolicy

Ottiene una politica sulle risorse e la revisione della politica.

UpdateResourcePolicy

Sostituisce la politica delle risorse esistente per un bot o un alias bot con una nuova.

Java

L'esempio seguente mostra come utilizzare le operazioni di policy basate sulle risorse per gestire una policy basata sulle risorse.

/* * Create a new policy for the specified bot alias * that allows a role to invoke lex:UpdateBotAlias on it. * The created policy will have revision id 1. */ CreateResourcePolicyRequest createPolicyRequest = CreateResourcePolicyRequest.builder() .resourceArn("arn:aws:lex:Region:123456789012:bot-alias/MYBOTALIAS/TSTALIASID") .policy("{\"Version\": \"2012-10-17\",\"Statement\": [{\"Sid\": \"BotAliasEditor\",\"Effect\": \"Allow\",\"Principal\": {\"AWS\": \"arn:aws:iam::123456789012:role/BotAliasEditor\"},\"Action\": [\"lex:UpdateBotAlias\"],\"Resource\":[\"arn:aws:lex:Region:123456789012:bot-alias/MYBOTALIAS/TSTALIASID\"]]}") lexmodelsv2Client.createResourcePolicy(createPolicyRequest); /* * Overwrite the policy for the specified bot alias with a new policy. * Since no expectedRevisionId is provided, this request overwrites the current revision. * After this update, the revision id for the policy is 2. */ UpdateResourcePolicyRequest updatePolicyRequest = UpdateResourcePolicyRequest.builder() .resourceArn("arn:aws:lex:Region:123456789012:bot-alias/MYBOTALIAS/TSTALIASID") .policy("{\"Version\": \"2012-10-17\",\"Statement\": [{\"Sid\": \"BotAliasEditor\",\"Effect\": \"Deny\",\"Principal\": {\"AWS\": \"arn:aws:iam::123456789012:role/BotAliasEditor\"},\"Action\": [\"lex:UpdateBotAlias\"],\"Resource\":[\"arn:aws:lex:Region:123456789012:bot-alias/MYBOTALIAS/TSTALIASID\"]]}") lexmodelsv2Client.updateResourcePolicy(updatePolicyRequest); /* * Creates a statement in an existing policy for the specified bot alias * that allows a role to invoke lex:RecognizeText on it. * This request expects to update revision 2 of the policy. The request will fail * if the current revision of the policy is no longer revision 2. * After this request, the revision id for this policy will be 3. */ CreateResourcePolicyStatementRequest createStatementRequest = CreateResourcePolicyStatementRequest.builder() .resourceArn("arn:aws:lex:Region:123456789012:bot-alias/MYBOTALIAS/TSTALIASID") .effect("Allow") .principal(Principal.builder().arn("arn:aws:iam::123456789012:role/BotRunner").build()) .action("lex:RecognizeText") .statementId("BotRunnerStatement") .expectedRevisionId(2) .build(); lexmodelsv2Client.createResourcePolicyStatement(createStatementRequest); /* * Deletes a statement from an existing policy for the specified bot alias by statementId. * Since no expectedRevisionId is supplied, the request will remove the statement from * the current revision of the policy for the bot alias. * After this request, the revision id for this policy will be 4. */ DeleteResourcePolicyRequest deleteStatementRequest = DeleteResourcePolicyRequest.builder() .resourceArn("arn:aws:lex:Region:123456789012:bot-alias/MYBOTALIAS/TSTALIASID") .statementId("BotRunnerStatement") .build(); lexmodelsv2Client.deleteResourcePolicy(deleteStatementRequest); /* * Describe the current policy for the specified bot alias * It always returns the current revision. */ DescribeResourcePolicyRequest describePolicyRequest = DescribeResourcePolicyRequest.builder() .resourceArn("arn:aws:lex:Region:123456789012:bot-alias/MYBOTALIAS/TSTALIASID") .build(); lexmodelsv2Client.describeResourcePolicy(describePolicyRequest); /* * Delete the current policy for the specified bot alias * This request expects to delete revision 3 of the policy. Since the revision id for * this policy is already at 4, this request will fail. */ DeleteResourcePolicyRequest deletePolicyRequest = DeleteResourcePolicyRequest.builder() .resourceArn("arn:aws:lex:Region:123456789012:bot-alias/MYBOTALIAS/TSTALIASID") .expectedRevisionId(3); .build(); lexmodelsv2Client.deleteResourcePolicy(deletePolicyRequest);

Consenti a un ruolo IAM di aggiornare un bot ed elencare gli alias dei bot

L'esempio seguente concede le autorizzazioni per un ruolo IAM specifico per chiamare le operazioni API di creazione di modelli Amazon Lex V2 per modificare un bot esistente. L'utente può elencare gli alias di un bot e aggiornarlo, ma non può eliminare il bot o gli alias del bot.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "botBuilders", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::123456789012:role/BotBuilder" }, "Action": [ "lex:ListBotAliases", "lex:UpdateBot" ], "Resource": [ "arn:aws:lex:us-east-1:123456789012:bot/MYBOT" ] } ] }

Consenti a un utente di conversare con un bot

L'esempio seguente autorizza un utente specifico a chiamare le operazioni API di runtime di Amazon Lex V2 su un singolo alias di un bot.

All'utente viene specificamente negata l'autorizzazione ad aggiornare o eliminare l'alias del bot.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "botRunners", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::123456789012:user/botRunner" }, "Action": [ "lex:RecognizeText", "lex:RecognizeUtterance", "lex:StartConversation", "lex:DeleteSession", "lex:GetSession", "lex:PutSession" ], "Resource": [ "arn:aws:lex:us-east-1:123456789012:bot-alias/MYBOT/MYBOTALIAS" ] }, { "Sid": "botRunners", "Effect": "Deny", "Principal": { "AWS": "arn:aws:iam::123456789012:user/botRunner" }, "Action": [ "lex:UpdateBotAlias", "lex:DeleteBotAlias" ], "Resource": [ "arn:aws:lex:us-east-1:123456789012:bot-alias/MYBOT/MYBOTALIAS" ] } ] }

Consenti a un servizio AWS di utilizzare un bot Amazon Lex V2 specifico

L'esempio seguente consente a Connect Customer AWS Lambda e a Connect di chiamare le operazioni API di runtime di Amazon Lex V2.

Il blocco condizionale è obbligatorio per i service principal e deve utilizzare le chiavi di contesto globali e. AWS:SourceAccount AWS:SourceArn

AWS:SourceAccountÈ l'ID dell'account che chiama il bot Amazon Lex V2.

AWS:SourceArnÈ l'ARN della risorsa dell'istanza del servizio clienti Connect o della funzione Lambda da cui proviene la chiamata all'alias del bot Amazon Lex V2.