本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
根據您選取的記錄類型,Amazon Lex V2 需要許可才能使用 Amazon CloudWatch Logs 和 Amazon Simple Storage Service (S3) 儲存貯體來存放您的日誌。您必須建立 AWS Identity and Access Management 角色和許可,才能讓 Amazon Lex V2 存取這些資源。
建立對話日誌的 IAM 角色和政策
若要啟用對話日誌,您必須授予 CloudWatch Logs 和 Amazon S3 的寫入許可。如果您為 S3 物件啟用物件加密,則需要將存取許可授予用於加密物件的 AWS KMS 金鑰。
您可以使用 IAM 主控台、IAM API 或 AWS Command Line Interface 來建立角色和政策。這些指示使用 AWS CLI 來建立角色和政策。
注意
下列程式碼是針對 Linux 和 MacOS 格式化的。若為 Windows,請將接續字元 (\) 取代為插入符號 (^)。
為對話日誌建立 IAM 角色
-
在稱為
LexConversationLogsAssumeRolePolicyDocument.json
的目前目錄中建立一個文件、將下列程式碼新增至其中,然後儲存它。此政策文件會將 Amazon Lex V2 做為信任的實體新增至角色。這可讓 Amazon Lex 擔任角色,將日誌交付至為對話日誌設定的資源。{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "lexv2.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 V2 寫入 CloudWatch Logs。
建立 IAM 政策,將對話文字記錄到 CloudWatch Logs
-
在名為 的目前目錄中建立文件
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 Logs 日誌群組的 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 V2 寫入儲存貯體。
建立 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 開發套件來指定用於對話日誌的 IAM 角色時,指定對話日誌的使用者 IAM 角色必須具有將角色傳遞至 Amazon Lex V2 的許可。若要允許使用者將角色傳遞至 Amazon Lex V2,您必須將PassRole
許可授予使用者的 IAM 使用者、角色或群組。
下列政策會定義授予使用者、角色或群組的許可。您可以使用 iam:AssociatedResourceArn
和 iam: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
"
}
}
}
]
}