對話日誌的 IAM 政策 - Amazon Lex

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

對話日誌的 IAM 政策

根據您選取的記錄類型,Amazon Lex V2 需要許可才能使用 Amazon CloudWatch Logs 和 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 Logs。

建立將對話文字記錄到 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 Logs 日誌群組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 Identity and Access Management 使用者指南 中的授予使用者許可,以將角色傳遞至 AWS 服務和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" } } } ] }