View a markdown version of this page

Resource-based Beispiele für Richtlinien für Amazon Lex V2 - Amazon Lex

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Resource-based Beispiele für Richtlinien für Amazon Lex V2

Eine ressourcenbasierte Richtlinie ist an eine Ressource angehängt, z. B. an einen Bot oder einen Bot-Alias. Mit einer ressourcenbasierten Richtlinie können Sie angeben, wer Zugriff auf die Ressource hat und welche Aktionen sie damit ausführen können. Sie können beispielsweise ressourcenbasierte Richtlinien hinzufügen, die es einem Benutzer ermöglichen, einen bestimmten Bot zu ändern oder einem Benutzer die Verwendung von Laufzeitoperationen auf einem bestimmten Bot-Alias zu ermöglichen.

Wenn Sie eine ressourcenbasierte Richtlinie verwenden, können Sie anderen AWS-Services den Zugriff auf Ressourcen in Ihrem Konto ermöglichen. Beispielsweise können Sie Connect Customer den Zugriff auf einen Amazon Lex V2-Bot ermöglichen.

Informationen zum Erstellen eines Bot oder Bot-Alias finden Sie unterArbeiten mit Amazon Lex V2-Bots.

Verwenden Sie die Konsole, um eine ressourcenbasierte Richtlinie festzulegen

Sie können die Amazon Lex V2-Konsole verwenden, um die ressourcenbasierten Richtlinien für Ihre Bots und Bot-Aliase zu verwalten. Sie geben die JSON-Struktur einer Richtlinie ein und die Konsole ordnet sie der Ressource zu. Wenn einer Ressource bereits eine Richtlinie zugeordnet ist, können Sie die Richtlinie mithilfe der Konsole anzeigen und ändern.

Wenn Sie eine Richtlinie mit dem Richtlinieneditor speichern, überprüft die Konsole die Syntax der Richtlinie. Wenn die Richtlinie Fehler enthält, z. B. einen nicht existierenden Benutzer oder eine Aktion, die von der Ressource nicht unterstützt wird, gibt sie einen Fehler zurück und die Richtlinie wird nicht gespeichert.

Im Folgenden wird der ressourcenbasierte Richtlinieneditor für einen Bot in der Konsole gezeigt. Der Richtlinieneditor für einen Bot-Alias ist ähnlich.

Der ressourcenbasierte Richtlinieneditor der Amazon Lex V2-Konsole.
Um den Richtlinieneditor für einen Bot zu öffnen
  1. Melden Sie sich bei der AWS-Managementkonsole an und öffnen Sie die Amazon Lex-Konsole unter https://console.aws.amazon.com/lex/.

  2. Wählen Sie aus der Bot-Liste den Bot aus, dessen Richtlinie Sie bearbeiten möchten.

  3. Wählen Sie im Abschnitt „Resource-based Richtlinie“ die Option „Bearbeiten“ aus.

Um den Richtlinien-Editor für einen Bot-Alias zu öffnen
  1. Melden Sie sich bei der AWS-Managementkonsole an und öffnen Sie die Amazon Lex-Konsole unter https://console.aws.amazon.com/lex/.

  2. Wählen Sie aus der Bot-Liste den Bot aus, der den Alias enthält, den Sie bearbeiten möchten.

  3. Wählen Sie im linken Menü Aliase aus und wählen Sie dann den Alias aus, den Sie bearbeiten möchten.

  4. Wählen Sie im Abschnitt „Resource-based Richtlinie“ die Option „Bearbeiten“ aus.

Verwenden Sie die API, um eine ressourcenbasierte Richtlinie anzugeben

Sie können API-Operationen verwenden, um die ressourcenbasierten Richtlinien für Ihre Bots und Bot-Aliase zu verwalten. Es gibt Operationen zum Erstellen, Aktualisieren und Löschen von Richtlinien.

CreateResourcePolicy

Fügt einem Bot oder Bot-Alias eine neue Ressourcenrichtlinie mit den angegebenen Richtlinienanweisungen hinzu.

CreateResourcePolicyStatement

Fügt einem Bot oder Bot-Alias eine neue Erklärung zur Ressourcenrichtlinie hinzu.

DeleteResourcePolicy

Entfernt eine Ressourcenrichtlinie aus einem Bot oder Bot-Alias.

DeleteResourcePolicyStatement

Entfernt eine Erklärung zur Ressourcenrichtlinie von einem Bot oder Bot-Alias.

DescribeResourcePolicy

Ruft eine Ressourcenrichtlinie und die Änderung der Richtlinie ab.

UpdateResourcePolicy

Ersetzt die vorhandene Ressourcenrichtlinie für einen Bot oder Bot-Alias durch eine neue.

Java

Das folgende Beispiel zeigt, wie die ressourcenbasierten Richtlinienoperationen verwendet werden, um eine ressourcenbasierte Richtlinie zu verwalten.

/* * 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);

Erlauben Sie einer IAM-Rolle, einen Bot zu aktualisieren und Bot-Aliasse aufzulisten

Im folgenden Beispiel werden einer bestimmten IAM-Rolle Berechtigungen zum Aufrufen von Amazon Lex V2-API-Vorgängen zur Modellerstellung erteilt, um einen vorhandenen Bot zu ändern. Der Benutzer kann Aliase für einen Bot auflisten und den Bot aktualisieren, kann den Bot oder die Bot-Aliase jedoch nicht löschen.

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" ] } ] }

Erlauben Sie einem Benutzer, eine Unterhaltung mit einem Bot zu führen

Das folgende Beispiel erteilt einem bestimmten Benutzer die Erlaubnis, Amazon Lex V2-Laufzeit-API-Operationen für einen einzelnen Alias eines Bots aufzurufen.

Dem Benutzer wird ausdrücklich die Erlaubnis verweigert, den Bot-Alias zu aktualisieren oder zu löschen.

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" ] } ] }

Erlauben Sie einem AWS-Service, einen bestimmten Amazon Lex V2-Bot zu verwenden

Das folgende Beispiel erteilt einem Connect-Kunden die AWS Lambda Erlaubnis, Amazon Lex V2-Laufzeit-API-Operationen aufzurufen.

Der Bedingungsblock ist für Serviceprinzipale erforderlich und muss die globalen Kontextschlüssel AWS:SourceAccount und AWS:SourceArn verwenden.

Das AWS:SourceAccount ist die Konto-ID, die den Amazon Lex V2-Bot aufruft.

Das AWS:SourceArn ist der Ressourcen-ARN der Connect-Kundenservice-Instance oder der Lambda-Funktion, von der der Aufruf des Amazon Lex V2-Bot-Alias stammt.