

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

# 内置 MAC 安全 Amazon Direct Connect
<a name="MACsec"></a>

MAC 安全（MACsec）是一项 IEEE 标准，可提供数据机密性、数据完整性和数据来源真实性。MacSec 通过交叉连接提供第 2 层点对点加密 Amazon，在两台第 3 层路由器之间运行。虽然 MacSec 可以保护您的路由器与第 2 层的 Direct Connect 位置之间的连接，但它通过网络在 Amazon Direct Connect 地点和区域之间流经网络时对物理层的所有数据进行加密，从而 Amazon 提供额外的安全性。 Amazon 这创建了一种分层安全方法，在这种方法中，您的流量在初始进入网络期间 Amazon 和通过 Amazon 网络传输期间都受到保护。

在下图中， Amazon Direct Connect 交叉连接必须连接到客户边缘设备上的 MACsec-capable接口。MACsec over Direct Connect 为 Direct Connect 边缘设备和客户边缘设备之间的点对点流量提供第 2 层加密。这种加密是在交叉连接两端的接口之间交换和验证安全密钥之后进行的。

**注意**  
MACsec 在以太网链路上提供点对点安全；因此，它不提供跨多个连续以太网或其他网段的端到端加密。

![MACsec 概述](http://docs.amazonaws.cn/directconnect/latest/UserGuide/images/macsec-overview.png)


## MACsec 概念
<a name="concepts"></a>

以下是 MACsec 的主要概念：
+ **MAC 安全（MACsec）**：一项 IEEE 802.1 第 2 层标准，可提供数据机密性、数据完整性和数据来源真实性。有关该协议的更多信息，请参阅 [802.1AE：MAC 安全（MACsec）](https://1.ieee802.org/security/802-1ae/)。
+ **安全关联密钥 (SAK)**：一种会话密钥，用于在客户本地路由器和 Direct Connect 位置的连接端口之间建立 MACsec 连接。SAK 不是预共享的，而是通过加密密钥生成过程从 CKN/CAK 配对中自动派生的。在您提供和配置配对之后，这种推导发生在连接的 CKN/CAK 两端。出于安全考虑，会定期重新生成 SAK，而且每当建立 MACsec 会话时，也会重新生成 SAK。
+ **连接关联密钥名称 (CKN)** 和**连接关联密钥 (CAK)**：这对密钥中的值用于生成 MACsec 密钥。您可以生成配对值，将其与 Amazon Direct Connect 连接关联，然后在 Amazon Direct Connect 连接结束时在边缘设备上进行配置。Direct Connect 仅支持静态 CAK 模式，但不支持动态 CAK 模式。由于仅支持静态 CAK 模式，因此建议您在密钥生成、分发和轮换时遵循自己的密钥管理策略。
+ **密钥格式**：密钥格式应使用十六进制字符，长度恰好为 64 个字符。Direct Connect 仅支持用于专用连接的高级加密标准 (AES) 256 位密钥，该密钥对应于 64 个字符的十六进制字符串。
+ **密钥分发渠道** — 要将新密钥 CKN-CAK配对发送到 Amazon，请使用 Amazon 控制台或 Direct Connect CLI 或 SDK 使用`associate-mac-sec-key`。我们建议您在将新 CKN-CAK 密钥对与专用连接关联时，仅使用 TLS 1.3 并强制使用后量子Module-Lattice-Based密钥交换算法，例如 ML-KEM （密钥封装机制）。有关更多信息，请查看 Amazon [SDK 和 CLI 指南](https://docs.amazonaws.cn/sdkref/latest/guide/pqtls-details.html)。使用 Amazon 控制台时，请使用支持连接安全的 Web 浏览器，ML-KEM 并查看连接安全性。
+ **加密模式**：Direct Connect 支持两种 MACsec 加密模式：
  + must\_encrypt：在此模式下，连接需要对所有流量进行 MACsec 加密。如果 MACsec 协商失败或无法建立加密，则连接将不会传输任何流量。此模式提供了最高的安全保障，但如果有任何 MACsec-related 问题，可能会影响可用性。
  + should\_encrypt：在此模式下，连接尝试建立 MACsec 加密，但如果 MACsec 协商失败，连接将回退到未加密的通信。此模式提供了更大的灵活性和更高的可用性，但在某些失败情况下，可能会允许未加密的流量。

  加密模式可以在连接配置期间设置，也可以在以后进行修改。默认情况下，新 MACsec-enabled 连接设置为 “should\_encrypt” 模式，以防止在初始设置期间出现潜在的连接问题。

## MACsec 密钥轮换
<a name="macset-key-rotation"></a>
+ **CNN/CAK 旋转（手动）**

  Direct Connect MacSec 支持 MacSec 钥匙串，最多可存储三对。 CKN/CAK 这样，您就可以在不中断连接的情况下手动轮换这些长期密钥。使用`associate-mac-sec-key`命令关联新 CKN/CAK 配对时，必须在设备上配置相同的配对。Direct Connect 设备尝试使用最近添加的密钥。如果该密钥与您设备的密钥不匹配，它将回退到之前的工作密钥，从而确保轮换期间的连接稳定性。

  有关使用 `associate-mac-sec-key` 的信息，请参阅 [associate-mac-sec-key](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/directconnect/associate-mac-sec-key.html)。
+ **安全关联密钥 (SAK) 轮换（自动）**

  源自活动 CKN/CAK 对的 SAK 会根据以下条件进行自动旋转：
  + 时间间隔
  + 加密流量的总量
  + MACsec 会话建立

  这种轮换由协议自动处理，在不中断连接的情况下以透明方式进行，并且不需要手动干预。SAK 从不永久存储，而是通过符合 IEEE 802.1X 标准的安全密钥派生过程重新生成。

## 支持的连接
<a name="supported-connections"></a>

MACsec 可在专用 Direct Connect 连接和链路聚合组上使用：

**Topics**
+ [专用 连接](#direct-connect-mac-sec-dedicated)
+ [LAG](#direct-connect-mac-sec-lags)
+ [合作伙伴互连](#direct-connect-mac-sec-partners)

**注意**  
使用受支持设备的合作伙伴可以使用 MACsec 对其边缘网络设备和 Direct Connect 设备之间的第 2 层连接进行加密。启用该功能的合作伙伴可以对通过安全链路的所有流量进行加密。MACsec 加密在第 2 层的两个特定设备之间运行，在托管连接上不支持。

有关如何订购支持 MACsec 的连接的信息，请参阅 [Amazon Direct Connect](https://www.amazonaws.cn/directconnect/?nc=sn&loc=0)。

### 专用 连接
<a name="direct-connect-mac-sec-dedicated"></a>

以下内容可帮助您熟悉 Amazon Direct Connect 专用连接上的 MacSec。使用 MACsec 无需支付额外费用。可以在 [开始使用 MACsec 专用连接](create-macsec-dedicated.md) 中查看在专用连接上配置 MACsec 的步骤。

合作伙伴互连操作遵循与专用连接相同的程序。当您为伙伴互连运行 CLI 或 SDK 命令时，响应将包括适用的MACsec-related 信息。

#### MACsec 专用连接的先决条件
<a name="mac-sec-prerequisites"></a>

请注意以下对专用连接上的 MACsec 的要求：
+ 选定入网点的 10 Gbps、100 Gbps 和 400 Gbps 专用 Direct Connect 连接支持 MACsec。对于上述连接，支持以下 MACSec 密码套件：
  +  对于 10Gbps 的连接， GCM-AES-256 以及。GCM-AES-XPN-256
  + 对于 100 Gbps 和 400 Gbps 的连接， GCM-AES-XPN-256
+ 仅支持 256 位 MACSec 密钥。
+ 100 Gbps 和 400 Gbps 连接需要扩展数据包编号（XPN）。对于 10Gbps 连接，Direct Connect 同时支持和GCM-AES-256 。 GCM-AES-XPN-256 High-speed 连接（例如 100 Gbps 和 400 Gbps 的专用连接）可能会很快耗尽 MacSec 最初的 32 位数据包编号空间，这将要求您每隔几分钟轮换一次加密密钥才能建立新的连接关联。为了避免这种情况，IEEE Std 802.1 AEbw-2013 修正案引入了扩展的数据包编号，将编号空间增加到64位，从而放宽了密钥轮换的及时性要求。
+ 安全通道标识符（SCI）是必填项，必须处于打开状态。此设置无法调整。
+ 不支持 IEEE 802.1Q (Dot1q/VLAN) tag offset/dot1q in-clear 用于将 VLAN 标签移到加密有效负载之外。

此外，在专用连接上配置 MACsec 之前，您应完成以下任务。
+ 为 MacSec 密钥创建 CKN/CAK 一对。

  您可以使用开放标准工具创建该对。该对必须满足 [步骤 4：配置本地路由器](create-macsec-dedicated.md#associate-key-router) 中指定的要求。
+ 确保连接端具有支持 MACsec 的设备。
+ 必须开启安全通道标识符（SCI）。
+ 仅支持 256 位 MACsec 密钥，提供最新的高级数据保护。

### LAG
<a name="direct-connect-mac-sec-lags"></a>

以下要求可帮助您熟悉 Direct Connect 链路聚合组 (LAG) 的 MACsec：
+  LAG 必须由支持 MacSec MACsec-capable 加密的专用连接组成
+ LAG 内的所有连接都必须具有相同的带宽并支持 MACsec
+ MACsec 配置统一应用于 LAG 中的所有连接
+ 启用 LAG 创建和 MACsec 可以同时完成
+ 任何时候在所有 LAG 链路上只能使用一个 MacSec 密钥。支持多个 MACsec 密钥的功能仅用于密钥轮换目的。

### 合作伙伴互连
<a name="direct-connect-mac-sec-partners"></a>

拥有互连的合作伙伴账户可以在该物理连接或 LAG 上使用 MACsec。这些操作与专用连接的操作相同，但是它们是使用合作伙伴特定的 API/SDK 呼叫来执行的。

## Service-Linked 角色
<a name="mac-sec-service-linked-roles"></a>

Amazon Direct Connect 使用 Amazon Identity and Access Management (IAM) [服务相关角色](https://docs.amazonaws.cn/IAM/latest/UserGuide/id_roles_terms-and-concepts.html#iam-term-service-linked-role)。服务相关角色是一种与之直接关联的 IAM 角色的独特类型。 Amazon Direct Connect Service-linked 角色由预定义 Amazon Direct Connect ，包括该服务代表您调用其他 Amazon 服务所需的所有权限。服务相关角色使设置变得 Amazon Direct Connect 更加容易，因为您不必手动添加必要的权限。 Amazon Direct Connect 定义其服务相关角色的权限，除非另有定义，否则 Amazon Direct Connect 只能担任其角色。定义的权限包括信任策略和权限策略，而且权限策略不能附加到任何其他 IAM 实体。有关更多信息，请参阅 [Direct Connect 的服务相关角色](security_iam_service-with-iam.md#security_iam_service-with-iam-roles-service-linked)。

## MacSec 预共享密钥注意事项 CKN/CAK
<a name="mac-sec-key-consideration"></a>

Amazon Direct Connect 使用 Amazon 托管 CMK 作为与连接或 LAG 关联的预共享密钥。Secrets Manager 将您预共享的 CKN 和 CAK 对，存储为 Secrets Manager 根密钥加密的密钥。有关更多信息，请参阅《Amazon Key Management Service 开发人员指南》**中的 [Amazon 托管 CMK](https://docs.amazonaws.cn/kms/latest/developerguide/concepts.html#master_keys)。

存储的密钥在设计上是只读的，但你可以使用 S Amazon ecrets Manager 控制台或 API 安排七到三十天的删除。当您计划删除时，无法读取 CKN，这可能会影响网络连接。发生这种情况时，我们会采用以下规则：
+ 如果连接处于待处理状态，我们会解除 CKN 与连接的关联。
+ 如果连接处于可用状态，我们会通过电子邮件通知连接所有者。如果您在 30 天内未采取任何行动，我们会解除 CKN 与连接的关联。

当我们解除最后一个 CKN 与连接的关联，并且连接加密模式设置为“必须加密”时，我们会将模式设置为“should\_encrypt”，以防止突然丢包。