

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

# 亚马逊 OpenSearch 无服务器中的 FIPS 合规性
<a name="fips-compliance-opensearch-serverless"></a>

Amazon OpenSearch Serverless 支持联邦信息处理标准 (FIPS) 140-2，这是美国和加拿大政府的一项标准，规定了保护敏感信息的加密模块的安全要求。当您使用 S OpenSearch erverless 连接到启用 FIPS 的端点时，加密操作将使用 FIPS 验证的加密库进行。

OpenSearch 在支持 FIPS AWS 区域 的地方，可以使用无服务器 FIPS 端点。这些端点采用 TLS 1.2 或更高版本以及经 FIPS 验证的加密算法处理所有通信。有关更多信息，请参阅《AWS 已验证访问用户指南》**中的 [FIPS 合规性](https://docs.aws.amazon.com/verified-access/latest/ug/fips-compliance.html)。

**Topics**
+ [将 FIPS 端点与无服务器一起使用 OpenSearch](#using-fips-endpoints-opensearch-serverless)
+ [将 FIPS 端点与 AWS SDKs](#using-fips-endpoints-aws-sdks)
+ [为 VPC 端点配置安全组](#configuring-security-groups-vpc-endpoints)
+ [使用 FIPS VPC 端点](#using-fips-vpc-endpoint)
+ [验证 FIPS 合规性](#verifying-fips-compliance)
+ [解决私有托管区中的 FIPS 端点连接问题](serverless-fips-endpoint-issues.md)

## 将 FIPS 端点与无服务器一起使用 OpenSearch
<a name="using-fips-endpoints-opensearch-serverless"></a>

在支持 FIPS AWS 区域 的地方，可通过标准端点和兼容 FIPS 的端点访问 OpenSearch 无服务器集合。有关更多信息，请参阅《AWS 已验证访问用户指南》**中的 [FIPS 合规性](https://docs.aws.amazon.com/verified-access/latest/ug/fips-compliance.html)。

在以下示例中，*AWS 区域*使用您的集合 ID *collection\$1id* 及其替换和 AWS 区域。
+ **标准端点**：**https://*collection\$1id*.*AWS 区域*.aoss.amazonaws.com**。
+ **符合 FIPS 标准的端点**：**https://*collection\$1id*.*AWS 区域*.aoss-fips.amazonaws.com**。

同样，可通过标准端点和符合 FIPS 的端点访问 OpenSearch 控制面板：
+ **标准控制面板端点**：**https://*collection\$1id*.*AWS 区域*.aoss.amazonaws.com/\$1dashboards**。
+ **符合 FIPS 标准的控制面板端点**：**https://*collection\$1id*.*AWS 区域*.aoss-fips.amazonaws.com/\$1dashboards**。

**注意**  
在启用 FIPS 的区域中，标准端点和符合 FIPS 标准的端点均提供符合 FIPS 标准的加密技术。FIPS 特定端点可帮助您满足合规性要求，这些要求明确规定必须使用名称中包含 **FIPS** 的端点。

## 将 FIPS 端点与 AWS SDKs
<a name="using-fips-endpoints-aws-sdks"></a>

使用时 AWS SDKs，可以在创建客户端时指定 FIPS 端点。在以下示例中，*AWS 区域*使用您的集合 ID *collection\$1id* 及其替换和 AWS 区域。

```
# Python SDK example
from opensearchpy import OpenSearch, RequestsHttpConnection, AWSV4SignerAuth
import boto3
host = '"https://collection_id.AWS 区域.aoss-fips.amazonaws.com"
region = 'us-west-2'
service = 'aoss'
credentials = boto3.Session().get_credentials()
auth = AWSV4SignerAuth(credentials, region, service)
client = OpenSearch(
    hosts = [{'host': host, 'port': 443}],
    http_auth = auth,
    use_ssl = True,
    verify_certs = True,
    connection_class = RequestsHttpConnection,
    pool_maxsize = 20
)
```

## 为 VPC 端点配置安全组
<a name="configuring-security-groups-vpc-endpoints"></a>

为确保与符合 FIPS 标准的 Amazon VPC (VPC) 终端节点进行正常通信，请创建或修改安全组，以允许来自您的 VPC 中需要访问无服务器的资源的入站 HTTPS 流量（TCP 端口 443）。 OpenSearch 然后在创建期间将此安全组与您的 VPC 端点相关联，或者在创建后修改端点。有关更多信息，请参阅《Amazon VPC 用户指南》**中的[创建安全组](https://docs.aws.amazon.com/vpc/latest/userguide/creating-security-groups.html)。

## 使用 FIPS VPC 端点
<a name="using-fips-vpc-endpoint"></a>

创建符合 FIPS 标准的 VPC 终端节点后，您可以使用它从 VPC 内的资源 OpenSearch 访问无服务器。要使用端点进行 API 操作，请将 SDK 配置为使用区域性 FIPS 端点，如 [将 FIPS 端点与无服务器一起使用 OpenSearch](#using-fips-endpoints-opensearch-serverless) 部分所述。要访问 OpenSearch 控制面板，请使用集合特定的控制面板 URL，从您的 VPC 内部访问时，该网址将自动通过符合 FIPS 的 VPC 终端节点进行路由。有关更多信息，请参阅 [在 Amazon OpenSearch 服务中使用 OpenSearch 控制面板](dashboards.md)。

## 验证 FIPS 合规性
<a name="verifying-fips-compliance"></a>

要验证您与 OpenSearch 无服务器的连接是否使用符合 FIPS 的加密技术，请使用监控 AWS CloudTrail 对无服务器进行的 API 调用。 OpenSearch 检查 CloudTrail 日志中是否显示了 API 调`aoss-fips.amazonaws.com`用的`eventSource`字段。

要访问 OpenSearch 控制面板，您可以使用浏览器开发者工具来检查 TLS 连接详细信息并验证是否使用了符合 FIPS 的密码套件。

# 解决私有托管区中的 FIPS 端点连接问题
<a name="serverless-fips-endpoint-issues"></a>

FIPS 终端节点可与具有公共访问权限的 Amazon OpenSearch 无服务器集合配合使用。对于使用新创建的 VPC 端点的全新 VPC 集合，FIPS 端点可正常运行。对于其他 VPC 集合，您可能需要执行手动设置以确保 FIPS 端点正常运行。

**在 Amazon Route 53 中配置 FIPS 私有托管区**

1. 打开 Route 53 控制台，网址为[https://console.aws.amazon.com/route53/](https://console.aws.amazon.com/route53/)。

1. 查看您的托管区：

   1. 找到 AWS 区域 您的馆藏所在的托管区域。

   1. 验证托管区的命名模式：
      + 非 FIPS 格式：`region.aoss.amazonaws.com`。
      + FIPS 格式：`region.aoss-fips.amazonaws.com`。

   1. 确认所有托管区的**类型**均设置为**私有托管区**。

1. 如果缺少 FIPS 私有托管区：

   1. 选择相应的非 FIPS 私有托管区。

   1. 复制**关联 VPCs**信息。例如：`vpc-1234567890abcdef0 | us-east-2`。

   1. 查找通配符域记录。例如：`*.us-east-2.aoss.amazonaws.com`。

   1. 复制**值/路由流量至**信息。例如：`uoc1c1qsw7poexampleewjeno1pte3rw.3ym756xh7yj.aoss.searchservices.aws`。

1. 创建 FIPS 私有托管区：

   1. 使用 FIPS 格式创建新的私有托管区。例如：`us-east-2.aoss-fips.amazonaws.com`。

   1. 在 “**关联**” 中 VPCs，输入您从非 FIPS 私有托管区域复制的 VPC 信息。

1. 使用以下设置添加新的记录：

   1. 记录名称：\$1

   1. 记录类型：CNAME

   1. 值：输入之前复制的**值/路由流量至**信息。

## 常见问题
<a name="serverless-fips-endpoint-common-problems"></a>

如果在使用符合 FIPS 标准的 VPC 端点时遇到连接问题，请参考以下信息协助解决该问题。
+ DNS 解析失败：无法在 VPC 内解析 FIPS 端点域名
+ 连接超时：对 FIPS 端点的请求已超时
+ 访问被拒错误：使用 FIPS 端点时身份验证或授权失败
+ 缺少 VPC 专用集合的私有托管区记录

**对 FIPS 端点连接进行故障排除**

1. 验证私有托管区配置：

   1. 确认 FIPS 端点域存在私有托管区（`*.region.aoss-fips.amazonaws.com`。

   1. 验证私有托管区是否已关联至正确的 VPC。

      有关更多信息，请参阅《Amazon Route 53开发人员指南》**中的[私有托管区](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/hosted- zones-private.html)以及《AWS PrivateLink 指南》**中的[管理 DNS 名称](https://docs.aws.amazon.com/vpc/latest/privatelink/manage-dns-names.html)。

1. 测试 DNS 解析：

   1. 连接到 VPC 中的 EC2 Linux 实例。

   1. 运行如下命令：

      ```
      nslookup collection-id.region.aoss-fips.amazonaws.com
      ```

   1. 确认响应中包含 VPC 端点的私有 IP 地址。

      有关更多信息，请参阅《Amazon VPC 用户指南》**中的[端点策略](https://docs.aws.amazon.com/vpc/latest/privatelink/vpc-endpoints- access.html#endpoint-dns-verification)和 [DNS 属性](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-dns.html#vpc- dns-troubleshooting)。

1. 检查安全组设置：

   1. 验证连接到 VPC 端点的安全组是否允许来自您资源的 HTTPS 流量（端口 443）。

   1. 确认资源的安全组允许流向 VPC 端点的出站流量。

   有关更多信息，请参阅《AWS PrivateLink 指南》**中的[端点策略](https://docs.aws.amazon.com/vpc/latest/privatelink/vpc-endpoints-access.html#vpc-endpoint-security-groups)以及《Amazon VPC 用户指南》**中的[安全组](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-security-groups.html#SecurityGroupRules)。

1. 检查网络 ACL 配置：

   1. 验证网络是否 ACLs 允许您的资源与 VPC 终端节点之间的流量。

     有关更多信息，请参阅 *Amazon VPC 用户指南 ACLs*中的[网络](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-network- acls.html#nacl-troubleshooting)。

1. 查看端点政策：

   1. 检查 VPC 终端节点策略是否允许对您的 OpenSearch 无服务器资源执行所需的操作。

     有关更多信息，请参阅《AWS PrivateLink 指南》**中的[所需的 VPC 端点权限](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/serverless-vpc.html#serverless-vpc-permissions)以及[端点策略](https://docs.aws.amazon.com/vpc/latest/privatelink/vpc-endpoints- access.html#vpc-endpoint-policies)。

**提示**  
如果您在 VPC 中使用自定义 DNS 解析器，请将其配置为将`*.amazonaws.com`域名请求转发到 AWS 服务器。