如果您使用的是 Amazon Lex V2,請改參閱 Amazon Lex V2 指南。
如果您使用的是 Amazon Lex V1,我們建議您將機器人升級至 Amazon Lex V2。我們不再將新功能新增至 V1,並強烈建議對所有新機器人使用 V2。
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
交談記錄的 IAM 政策
視您選取的記錄類型而定,Amazon Lex 需要使用 Amazon CloudWatch 日誌和 Amazon Simple Storage Service (S3) 貯體來存放日誌的許可。您必須建立AWS Identity and Access Management角色和許可,才能讓 Amazon Lex 存取這些資源。
建立對話日誌的 IAM 角色和政策
若要啟用交談日誌,您必須授與 CloudWatch 日誌和 Amazon S3 的寫入權限。如果您為 S3 物件啟用物件加密,則需要將存取許可授與用來加密物件的 AWS KMS 金鑰。
您可以使用 IAMAWS Management Console、IAM API 或建AWS Command Line Interface立角色和政策。這些指示會使用 AWS CLI 來建立角色和政策。如需有關使用者指南中的在 AWS Identity Management 使用者指南中的在 AWS Identity and Access Management 用者指南中的在 JSON 標籤上建立政策。
注意
下列程式碼是針對 Linux 和 MacOS 格式化的。若為 Windows,請將接續字元 (\) 取代為插入符號 (^)。
建立對話日誌的 IAM 角色
-
在稱為
LexConversationLogsAssumeRolePolicyDocument.json
的目前目錄中建立一個文件、將下列程式碼新增至其中,然後儲存它。本政策文件將 Amazon Lex 新增為該角色的受信任實體。這可讓 Lex 擔任將日誌傳遞至專為對話日誌設定的資源角色。{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "lex.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
-
在中AWS CLI,執行下列命令以建立對話日誌的 IAM 角色。
aws iam create-role \ --role-name
role-name
\ --assume-role-policy-document file://LexConversationLogsAssumeRolePolicyDocument.json
接下來,建立政策並將其附加到可讓 Amazon Lex 寫入 CloudWatch 日誌的角色。
建立 IAM 政策以將對話文字日誌記錄至 Lo CloudWatch gs
-
在目前名為的目錄中建立文件
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
:*" } ] } -
在中AWS CLI,建立將寫入權限授與記 CloudWatch 錄日誌群組的 IAM 政策。
aws iam create-policy \ --policy-name
cloudwatch-policy-name
\ --policy-document file://LexConversationLogsCloudWatchLogsPolicy.json -
將政策連接至您為對話日誌建立的 IAM 角色。
aws iam attach-role-policy \ --policy-arn arn:aws:iam::
account-id
:policy/cloudwatch-policy-name
\ --role-namerole-name
如果您要將音訊記錄到 S3 儲存貯體,請建立可讓 Amazon Lex 寫入儲存貯體的政策。
建立 IAM 政策以用於音訊日誌傳送給 S3 儲存貯體的音訊日誌
-
在稱為
LexConversationLogsS3Policy.json
的目前目錄中建立一個文件、將下列政策新增至其中,然後儲存它。{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:PutObject" ], "Resource": "arn:aws:s3:::
bucket-name
/*" } ] } -
在中AWS CLI,建立可授與 S3 儲存貯體寫入權限的 IAM 政策。
aws iam create-policy \ --policy-name
s3-policy-name
\ --policy-document file://LexConversationLogsS3Policy.json -
將此政策附加到您為對話日誌建立的角色。
aws iam attach-role-policy \ --policy-arn arn:aws:iam::
account-id
:policy/s3-policy-name
\ --role-namerole-name
授與傳遞 IAM 角色的權限
當您使用主控台AWS Command Line Interface、或AWS SDK 指定用於交談日誌的 IAM 角色時,指定交談日誌 IAM 角色的使用者必須具有將角色傳遞給 Amazon Lex 的權限。為了讓使用者將角色傳遞至 Amazon Lex,您必須將PassRole
許可授予使用者、角色或群組。
下列政策會定義授予使用者、角色或群組的許可。您可以使用 iam:AssociatedResourceArn
和 iam: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": "lex.amazonaws.com" }, "StringLike": { "iam:AssociatedResourceARN": "arn:aws:lex:region
:account-id
:bot:bot-name
:bot-alias
" } } } ] }