

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# Amazon Connect 的安全最佳实践
<a name="security-best-practices"></a>

Amazon Connect 提供了在您开发和实施自己的安全策略时需要考虑的大量安全功能。以下最佳实操是一般准则，并不代表完整的安全解决方案。这些最佳实操可能不适合您的环境或不满足您的环境要求，请将其视为有用的考虑因素而不是惯例。

**Topics**
+ [Amazon Connect 预防性安全最佳实践](#bp-security-profiles)
+ [Amazon Connect 检测性安全性最佳实践](#bp-security-detective)
+ [Amazon Connect 的聊天安全最佳实践](#bp-security-chat)
+ [Amazon Connect WebRTC 安全最佳实践](#bp-webrtc-security)

## Amazon Connect 预防性安全最佳实践
<a name="bp-security-profiles"></a>
+ 确保所有配置文件权限的限制性都尽可能高。仅允许访问用户角色绝对需要的那些资源。例如，不要授予座席在 Amazon Connect 中创建、读取或更新用户的权限。
+ 确保通过 SAML 2.0 身份提供商或 Radius 服务器（如果这更适用于您的应用场景）设置多重身份验证 (MFA)。设置 MFA 后，Amazon Connect 登录页面上会显示第三个文本框以提供第二个因素。
+ 如果您使用现有目录 Directory Service 或基于 SAML 的身份验证进行身份管理，请确保遵守适用于您的用例的所有安全要求。
+ 仅**在紧急情况下使用 AWS 控制台实例页面上的登录紧急访问**网址，而不是日常使用。有关更多信息，请参阅 [紧急登录 Amazon Connect 管理网站](emergency-admin-login.md)。

### 使用服务控制策略 (SCPs)
<a name="use-scp"></a>

服务控制策略 (SCPs) 是一种组织策略，可用于管理组织中的权限。SCP 为账户管理员可以委派给受影响账户中的用户和角色的操作定义防护机制或设置限制。您可以使用 SCPs 来保护与您的 Amazon Connect 工作负载相关的关键资源。

#### 设置服务控制策略以防止删除关键资源
<a name="set-scp"></a>

如果您使用基于 SAML 2.0 的身份验证并删除用于对 Amazon Connect 用户进行身份验证的 AWS IAM 角色，则用户将无法登录 Amazon Connect 实例。您将需要删除并重新创建用户才能与新角色相关联。这样会导致删除与这些用户相关联的所有数据。

为了防止意外删除关键资源并保护 Amazon Connect 实例的可用性，您可以将[服务控制策略](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps.html) (SCP) 设置为额外的控制。

以下是 SCP 示例，可以应用于 AWS 账户、组织单位或组织根目录，以防止删除 Amazon Connect 实例和相关角色：

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

****  

```
{    
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "AmazonConnectRoleDenyDeletion",
      "Effect": "Deny",
      "Action": [
        "iam:DeleteRole"
      ],
      "Resource": [
        "arn:aws:iam::*:role/{{ConnectUserRole}}"
      ]
    },
    {
      "Sid": "AmazonConnectInstanceDenyDeletion",
      "Effect": "Deny",
      "Action": [
        "connect:DeleteInstance"         
      ],
      "Resource": [
         "arn:aws:connect:{{us-east-1}}:{{111122223333}}:instance/{{InstanceId}}"
      ]
    }
  ]
}
```

------

## Amazon Connect 检测性安全性最佳实践
<a name="bp-security-detective"></a>

日志记录和监控对于联系中心的可用性、可靠性和性能非常重要。您应该[记录来 CloudWatch自 Amazon Connect 流的相关信息](contact-flow-logs.md)，[并基于这些信息创建警报和通知](contact-flow-log-alerts.md)。

尽早定义日志保留要求和生命周期策略，并计划尽快将日志文件移至经济高效的存储位置。Amazon Connect 公共 APIs登录到 CloudTrail；有关更多信息，请参阅[使用记录 Amazon Connect API 调用 AWS CloudTrail](logging-using-cloudtrail.md)。根据 CloudTrail 日志查看并自动执行操作。

建议采用 Amazon S3 对日志数据进行长期保留和存档，特别是对于具有合规性计划的组织更是如此，这些组织要求以本机格式对日志数据进行审计。将日志数据存入 Amazon S3 存储桶后，定义生命周期规则以自动强制执行保留策略，并将这些对象移至其它经济高效的存储类别，例如 Amazon S3 Standard：不频繁访问（标准：IA）或 Amazon Glacier。

 AWS 云提供了灵活的基础架构和工具，以支持复杂的合作伙伴产品和自我管理的集中式日志解决方案。这包括诸如亚马逊 OpenSearch 服务和亚马逊 CloudWatch 日志之类的解决方案。

您可以根据自己的要求自定义 Amazon Connect 流，从而对传入联系人实施欺诈检测和防范。例如，您可以在 Dynamo DB 中对照之前的联系人活动来检查传入联系人，然后采取措施，例如断开拒绝列表上的联系人的连接。

## Amazon Connect 的聊天安全最佳实践
<a name="bp-security-chat"></a>

当您直接与 Amazon Connect 参与者服务（或使用 Amazon Connect Chat Java 脚本库）集成，并使用终端节点 WebSocket 或流式传输终端节点接收前端应用程序或网站的消息时，必须保护您的应用程序免受基于 DOM 的 XSS（跨站点脚本）攻击。

以下安全建议有助于防范 XSS 攻击：
+ 采用适当的输出编码，帮助防止执行恶意脚本。
+ 不要直接改变 DOM。例如，不要使用 `innerHTML` 呈现聊天回复内容。它可能包含可导致 XSS 攻击的恶意 Javascript 代码。使用 React 等前端库来逃避和清理聊天回复中包含的任何可执行代码。
+ 实施内容安全策略 (CSP)，限制应用程序可以从中加载脚本、样式和其他资源的来源。这样就多了一层保护。

## Amazon Connect WebRTC 安全最佳实践
<a name="bp-webrtc-security"></a>

对于 WebRTC 和聊天联系人，参与者都会获得一个参与者令牌，这是一个在联系会话中唯一标识他们的不记名令牌。由于拥有此令牌会授予访问权限，因此其泄露可能导致模拟攻击。因此，保护此令牌至关重要。

以下安全建议有助于防范模拟攻击：
+ **在发放令牌之前对用户进行身份验证**。在向任何客户或外部服务出售参与者令牌之前，请确保执行严格的身份验证和授权检查。
+ **尽可能地减少令牌泄露**。请勿登录参与者令牌或将其嵌入其中 URLs。使用安全传输（HTTPS/TLS）进行所有令牌交换。
+ **快速应对令牌泄露**。如果检测到令牌泄漏，请立即终止或停止关联的联系人以防止未经授权的访问。
+ **使用最低权限原则**。尽可能限制令牌的使用寿命，确保令牌仅在必要的持续时间内有效。
+ **监控和审计**。跟踪令牌的使用和访问模式，以检测异常或潜在的滥用行为。