

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

# MAC 安全在 Direct Connect
<a name="MACsec"></a>

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

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

**注意**  
MACsec 为以太网链路提供 point-to-point安全性；因此，它不提供跨多个连续以太网或其他网段的 end-to-end加密。

![\[MACsec 概览\]](http://docs.aws.amazon.com/zh_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)**-一种会话密钥，用于在MACsec 客户本地路由器与 Direct Connect 位置的连接端口之间建立连接。SAK 不是预共享的，而是通过加密密钥生成过程从 CKN/CAK 配对中自动派生的。在您提供和配置配对之后，这种推导发生在连接的 CKN/CAK 两端。出于安全考虑，无论何时建立会 MACsec 话，SAK 都会定期重新生成。
+ **连接关联密钥名称 (CKN)** 和**连接关联密钥 (CAK)**-这对中的值用于生成 MACsec 密钥。您可以生成配对值，将其与 Direct Connect 连接关联，然后在 Direct Connect 连接结束时在边缘设备上进行配置。Direct Connect 仅支持静态 CAK 模式，但不支持动态 CAK 模式。由于仅支持静态 CAK 模式，因此建议您在密钥生成、分发和轮换时遵循自己的密钥管理策略。
+ **密钥格式**：密钥格式应使用十六进制字符，长度恰好为 64 个字符。Direct Connect 仅支持用于专用连接的高级加密标准 (AES) 256 位密钥，该密钥对应于 64 个字符的十六进制字符串。
+ **加密模式** — Direct Connect 支持两种 MACsec加密模式：
  + must\$1encrypt — 在此模式下，连接需要对所有 MACsec 流量进行加密。如果 MACsec 协商失败或无法建立加密，则连接将不会传输任何流量。此模式提供了最高的安全保障，但如果存在任何 MACsec相关问题，可能会影响可用性。
  + should\$1encrypt — 在此模式下，连接尝试建立MACsec 加密，但如果MACsec 协商失败，连接将回退到未加密的通信。此模式提供了更大的灵活性和更高的可用性，但在某些失败情况下，可能会允许未加密的流量。

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

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

  Direct Connect MACsec 支持最多可存储三 CKN/CAK 对 MACsec 钥匙扣。这样，您就可以在不中断连接的情况下手动轮换这些长期密钥。使用`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)
+ [LAGs](#direct-connect-mac-sec-lags)
+ [合作伙伴互连](#direct-connect-mac-sec-partners)

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

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

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

以下内容可帮助您熟悉 MACsec Direct Connect 专用连接。使用不收取任何额外费用 MACsec。有关在专用连接 MACsec 上进行配置的步骤，请参阅[开始使用 MACsec 专用连接](create-macsec-dedicated.md)。

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

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

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

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

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

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

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

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

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

## 服务相关角色
<a name="mac-sec-service-linked-roles"></a>

Direct Connect 使用 AWS Identity and Access Management (IAM) [服务相关角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html#iam-term-service-linked-role)。服务相关角色是一种与之直接关联的 IAM 角色的独特类型。 Direct Connect服务相关角色由服务预定义 Direct Connect ，包括该服务代表您调用其他 AWS 服务所需的所有权限。服务相关角色使设置变得 Direct Connect 更加容易，因为您不必手动添加必要的权限。 Direct Connect 定义其服务相关角色的权限，除非另有定义，否则 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>

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

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

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

# 开始在专用 Direct Connect 连接 MACsec 上使用
<a name="create-macsec-dedicated"></a>

以下任务可以让你开始设置 MACsec 在 Direct Connect 专用连接上使用

## 步骤 1：创建连接
<a name="step-create-connection"></a>

 要开始使用 MACsec，您必须在创建专用连接时开启该功能。

## （可选）步骤 2：创建链接聚合组（LAG）
<a name="step-create-lag"></a>

 如果您使用多个连接实现冗余，则可以创建支持的 LAG MACsec。有关更多信息，请参阅 [MACsec 注意事项](lags.md#lag-macsec-considerations)和 [Create a LAG](create-lag.md)。

## 步骤 3：将 CKN/CAK 与连接或 LAG 关联
<a name="step-associate-key"></a>

创建支持的连接或 LAG 后 MACsec，需要将 CKN/CAK 与该连接关联。有关更多信息，请参阅以下任一文档：
+ [将 MACsec CKN/CAK 与连接关联](associate-key-connection.md)
+ [将 MACsec CKN/CAK 与 LAG 关联](associate-key-lag.md)

## 步骤 4：配置本地路由器
<a name="associate-key-router"></a>

使用 MACsec 密钥更新您的本地路由器。本地路由器上的 MACsec 密钥和 Direct Connect 位置的密钥必须匹配。有关更多信息，请参阅 [下载路由器配置文件](vif-router-config.md)。

## 步骤 5：（可选）移除与连接或 LAG 之间的关联 CKN/CAK
<a name="step-disassociate-key"></a>

您可以选择移除与连接或 LAG 之间的关联。如果需要移除关联，请参阅以下内容之一： CKN/CAK 
+ [移除 MACsec 密钥和连接之间的关联](disassociate-key-connection.md)
+ [移除 MACsec 密钥和 LAG 之间的关联](disassociate-key-lag.md)