交談記錄的 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 主控台、IAM API 或 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 日誌的角色。

若要建立 IAM 政策,將對話文字記錄到記 CloudWatch 錄
  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 服務AWS Identity and Access Management 使用者指南中的 IAM 和 AWS STS 條件上下文金鑰

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