

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

# 对 Amazon OpenSearch 无服务器的 IAM 身份中心支持
<a name="serverless-iam-identity-center"></a>

## 对 Amazon OpenSearch 无服务器的 IAM 身份中心支持
<a name="serverless-iam-identity-support"></a>

您可以使用 IAM 身份中心委托人（用户和群组）通过亚马逊应用程序访问亚马逊 OpenSearch 无服务器数据。 OpenSearch 要启用 Amazon OpenSearch Serverless 的 IAM 身份中心支持，您需要启用 IAM 身份中心。要了解有关如何执行此操作的更多信息，请参阅 [What is IAM Identity Center?](https://docs.aws.amazon.com/singlesignon/latest/userguide/what-is.html)

**注意**  
要使用 IAM 身份中心用户或群组访问 Amazon OpenSearch Serverless 集合，您必须使用 OpenSearch UI（应用程序）功能。不支持使用 IAM 身份中心凭证直接访问 OpenSearch 无服务器控制面板。有关更多信息，请参阅[ OpenSearch 用户界面入门](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/application.html)。

创建 IAM 身份中心实例后，客户账户管理员需要为 Amazon OpenSearch Serverless 服务创建 IAM 身份中心应用程序。这可以通过调用[CreateSecurityConfig:](https://docs.aws.amazon.com/opensearch-service/latest/ServerlessAPIReference/API_CreateSecurityConfig.html)来完成。客户账户管理员可指定用于授权请求的属性。使用的默认属性是 `UserId` 和 `GroupId.`

Amazon OpenSearch Serverless 的 IAM 身份中心集成使用以下 AWS IAM 身份中心 (IAM) 权限：
+ `aoss:CreateSecurityConfig`：创建 IAM Identity Center 提供程序
+ `aoss:ListSecurityConfig`：列出当前账户中的所有 IAM Identity Center 提供程序。
+ `aoss:GetSecurityConfig`：查看 IAM Identity Center 提供程序信息。
+ `aoss:UpdateSecurityConfig`：修改给定的 IAM Identity Center 配置
+ `aoss:DeleteSecurityConfig`：删除 IAM Identity Center 提供程序。

以下基于身份的访问策略可用于管理所有 IAM Identity Center 配置：

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

****  

```
{
"Version": "2012-10-17",
    "Statement": [
        {
"Action": [
                "aoss:CreateSecurityConfig",
                "aoss:DeleteSecurityConfig",
                "aoss:GetSecurityConfig",
                "aoss:UpdateSecurityConfig",
                "aoss:ListSecurityConfigs"
            ],
            "Effect": "Allow",
            "Resource": "*"
        }
    ]
}
```

------

**注意**  
`Resource` 元素必须是通配符。

## 创建 IAM Identity Center 提供程序（控制台）
<a name="serverless-iam-console"></a>

您可以创建 IAM 身份中心提供商以启用 OpenSearch应用程序身份验证。要为 OpenSearch 控制面板启用 IAM 身份中心身份验证，请执行以下步骤：

1. 登录[亚马逊 OpenSearch 服务控制台](https://console.aws.amazon.com/aos/home.)。

1. 在左侧导航面板上，展开**无服务器**，然后选择**身份验证**。

1. 选择 **IAM Identity Center 身份验证**。

1. 选择**编辑**。

1. 选中“使用 IAM Identity Center 进行身份验证”旁边的复选框。

1. 从下拉菜单中选择**用户和组**属性键。用户属性将用于根据 `UserName`、`UserId` 和 `Email` 对用户进行授权。组属性将用于根据 `GroupName` 和 `GroupId` 对用户进行身份验证。

1. 选择 **IAM Identity Center** 实例。

1. 选择**保存**

## 创建 IAM Identity Center 提供程序（AWS CLI）
<a name="serverless-iam-identity-center-cli"></a>

要使用 AWS Command Line Interface (AWS CLI) 创建 IAM 身份中心提供商，请使用以下命令：

```
aws opensearchserverless create-security-config \
--region us-east-2 \
--name "iamidentitycenter-config" \
--description "description" \
--type "iamidentitycenter" \
--iam-identity-center-options '{
    "instanceArn": "arn:aws:sso:::instance/ssoins-99199c99e99ee999",
    "userAttribute": "UserName",                  
    "groupAttribute": "GroupId"
}'
```

启用 IAM Identity Center 后，客户仅可修改**用户和组**属性。

```
aws opensearchserverless update-security-config \
--region us-east-1 \
--id <id_from_list_security_configs> \
--config-version <config_version_from_get_security_config> \
--iam-identity-center-options-updates '{
    "userAttribute": "UserId",
    "groupAttribute": "GroupId"
}'
```

要使用查看 IAM 身份中心提供商 AWS Command Line Interface，请使用以下命令：

```
aws opensearchserverless list-security-configs --type iamidentitycenter
```

## 删除 IAM Identity Center 提供程序
<a name="serverless-iam-identity-center-deleting"></a>

 IAM Identity Center 提供两个提供程序实例，一个用于组织账户，另一个用于成员账户。如果要更改 IAM Identity Center 实例，则需通过 `DeleteSecurityConfig` API 删除安全配置，并使用新的 IAM Identity Center 实例创建新的安全配置。要删除 IAM Identity Center 提供程序，可使用以下命令：

```
aws opensearchserverless delete-security-config \
--region us-east-1 \
--id <id_from_list_security_configs>
```

## 授予 IAM Identity Center 访问集合数据的权限
<a name="serverless-iam-identity-center-collection-data"></a>

启用 IAM Identity Center 提供程序后，您可以更新集合数据访问策略，以包含 IAM Identity Center 主体。需要按以下格式更新 IAM Identity Center 主体：

```
[
   {
"Rules":[
       ...  
      ],
      "Principal":[
         "iamidentitycenter/<iamidentitycenter-instance-id>/user/<UserName>",
         "iamidentitycenter/<iamidentitycenter-instance-id>/group/<GroupId>"
      ]
   }
]
```

**注意**  
Amazon OpenSearch Serverless 仅支持一个用于所有客户集合的 IAM 身份中心实例，并且单个用户最多可以支持 100 个群组。如果尝试使用超过允许的实例数量，您将遇到与数据访问策略授权处理不一致的情况，并收到 `403` 错误消息。

您可以授予针对集合、索引或两者的访问权限。如果您希望不同用户拥有不同权限，您将需要创建多条规则。有关可用权限的列表，请参阅[亚马逊 OpenSearch 服务中的 Identity and Access 管理](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/ac.html)。有关如何设置访问策略格式的信息，请参阅[授予 SAML 身份访问集合数据的权限](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/serverless-saml.html#serverless-saml-policies)。