

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

# 對話日誌的 IAM 政策
<a name="conversation-logs-policies"></a>

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

## 建立對話日誌的 IAM 角色和政策
<a name="conversation-logs-role-and-policy"></a>

若要啟用對話日誌，您必須授予 CloudWatch Logs 和 Amazon S3 的寫入許可。如果您為 S3 物件啟用物件加密，則需要將存取許可授予用於加密物件的 AWS KMS 金鑰。

您可以使用 IAM 主控台、IAM API 或 AWS Command Line Interface 來建立角色和政策。這些指示會使用 AWS CLI 來建立角色和政策。

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



**為對話日誌建立 IAM 角色**

1. 在稱為 **LexConversationLogsAssumeRolePolicyDocument.json** 的目前目錄中建立一個文件、將下列程式碼新增至其中，然後儲存它。此政策文件會將 Amazon Lex V2 新增為角色的信任實體。這可讓 Amazon Lex V2 擔任角色，將日誌交付至為對話日誌設定的資源。

------
#### [ JSON ]

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Effect": "Allow",
         "Principal": {
           "Service": "lexv2.amazonaws.com"
         },
         "Action": "sts:AssumeRole"
       }
     ]
   }
   ```

------

1. 在 AWS CLI 中，執行下列命令來建立對話日誌的 IAM 角色。

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

接著，建立政策並將其連接至 角色，讓 Amazon Lex V2 寫入 CloudWatch Logs。

**建立將對話文字記錄到 CloudWatch Logs 的 IAM 政策**

1. 在名為 的目前目錄中建立文件**LexConversationLogsCloudWatchLogsPolicy.json**，將下列 IAM 政策新增至其中，然後儲存它。

1. 在 AWS CLI 中，建立將寫入許可授予 CloudWatch Logs 日誌群組的 IAM 政策。

   ```
   aws iam create-policy \
       --policy-name cloudwatch-policy-name \
       --policy-document file://LexConversationLogsCloudWatchLogsPolicy.json
   ```

1. 將政策連接至您為對話日誌建立的 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 寫入儲存貯體的政策。

**建立 IAM 政策以將音訊記錄到 S3 儲存貯體**

1. 在稱為 **LexConversationLogsS3Policy.json** 的目前目錄中建立一個文件、將下列政策新增至其中，然後儲存它。

------
#### [ JSON ]

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
         {
             "Effect": "Allow",
             "Action": [
                 "s3:PutObject"
             ],
             "Resource": "arn:aws:s3:::bucket-name/*"
         }
     ]
   }
   ```

------

1. 在 AWS CLI 中，建立將寫入許可授予 S3 儲存貯體的 IAM 政策。

   ```
   aws iam create-policy \
       --policy-name s3-policy-name \
       --policy-document file://LexConversationLogsS3Policy.json
   ```

1. 將此政策附加到您為對話日誌建立的角色。

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

## 授予許可以傳遞 IAM 角色
<a name="conversation-logs-pass-role"></a>

當您使用 主控台 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 和條件內容金鑰的許可](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_passrole.html)。 [AWS STS](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_iam-condition-keys.html) *AWS Identity and Access Management *

------
#### [ JSON ]

****  

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

------