對話日誌的 IAM 政策 - Amazon Lex

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

對話日誌的 IAM 政策

視您選取的記錄類型而定,Amazon Lex V2 需要使用 Amazon CloudWatch 日誌和 Amazon Simple Storage Service (S3) 貯體來存放日誌的許可。您必須建立 AWS Identity and Access Management 可讓 Amazon Lex V2 存取這些資源的角色和許可。

建立交談記錄的IAM角色和原則

若要啟用交談日誌,您必須授與 CloudWatch 日誌和 Amazon S3 的寫入權限。如果您為 S3 物件啟用物件加密,則需要授與 AWS KMS 用來加密物件的金鑰。

您可以使用IAM主控台IAMAPI、或 AWS Command Line Interface 以建立角色和原則。這些說明使用 AWS CLI 以建立角色和原則。

注意

下列程式碼是針對 Linux 和 MacOS 格式化的。若為 Windows,請將接續字元 (\) 取代為插入符號 (^)。

建立交談記錄的IAM角色
  1. 在稱為 LexConversationLogsAssumeRolePolicyDocument.json 的目前目錄中建立一個文件、將下列程式碼新增至其中,然後儲存它。本政策文件將 Amazon Lex V2 新增為該角色的受信任實體。這可讓 Amazon Lex 擔任角色,將日誌傳遞到針對交談日誌設定的資源。

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "lexv2.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
  2. 在 AWS CLI,執行下列命令以建立交談記錄的IAM角色。

    aws iam create-role \ --role-name role-name \ --assume-role-policy-document file://LexConversationLogsAssumeRolePolicyDocument.json

接下來,建立政策並將其附加到可讓 Amazon Lex V2 寫入 CloudWatch 日誌的角色。

若要建立將交談文字記錄到記錄 CloudWatch 檔的IAM原則
  1. 在目前名為的目錄中建立文件LexConversationLogsCloudWatchLogsPolicy.json,將下列IAM原則新增至該文件,然後儲存。

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "logs:CreateLogStream", "logs:PutLogEvents" ], "Resource": "arn:aws:logs:region:account-id:log-group:log-group-name:*" } ] }
  2. 在 AWS CLI」中,建立將寫入權限授與 CloudWatch 記錄檔記錄群組的IAM原則。

    aws iam create-policy \ --policy-name cloudwatch-policy-name \ --policy-document file://LexConversationLogsCloudWatchLogsPolicy.json
  3. 將原則附加至您為交談記錄建立的IAM角色。

    aws iam attach-role-policy \ --policy-arn arn:aws:iam::account-id:policy/cloudwatch-policy-name \ --role-name role-name

如果您要將音訊記錄到 S3 儲存貯體,請建立可讓 Amazon Lex V2 寫入儲存貯體的政策。

若要建立 S3 儲存貯體的音訊記錄IAM政策
  1. 在稱為 LexConversationLogsS3Policy.json 的目前目錄中建立一個文件、將下列政策新增至其中,然後儲存它。

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:PutObject" ], "Resource": "arn:aws:s3:::bucket-name/*" } ] }
  2. 在 AWS CLI,建立授與 S3 儲存貯體寫入權限的IAM政策。

    aws iam create-policy \ --policy-name s3-policy-name \ --policy-document file://LexConversationLogsS3Policy.json
  3. 將此政策附加到您為對話日誌建立的角色。

    aws iam attach-role-policy \ --policy-arn arn:aws:iam::account-id:policy/s3-policy-name \ --role-name role-name

授與傳遞IAM角色的權限

當您使用主控台時, AWS Command Line Interface,或 AWS SDK若要指定用於交談日誌的IAM角色,指定交談日誌IAM角色的使用者必須具有將角色傳遞給 Amazon Lex V2 的權限。若要允許使用者將角色傳遞給 Amazon Lex V2,您必須將PassRole權限授與使用者的IAM使用者、角色或群組。

下列政策會定義授予使用者、角色或群組的許可。您可以使用 iam:AssociatedResourceArniam:PassedToService 條件金鑰來限制許可的範圍。如需詳細資訊,請參閱授與使用者將角色傳遞給 AWS 服IAM及 AWS STS 中的條件內容索引鍵 AWS Identity and Access Management 用戶指南

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iam:PassRole", "Resource": "arn:aws:iam::account-id:role/role-name", "Condition": { "StringEquals": { "iam:PassedToService": "lexv2.amazonaws.com" }, "StringLike": { "iam:AssociatedResourceARN": "arn:aws:lex:region:account-id:bot:bot-name:bot-alias" } } } ] }