

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

# 开始使用 Amazon OpenSearch 服务中的 OpenSearch 用户界面
<a name="application-getting-started"></a>

在 Amazon OpenSearch 服务中，*应用程序*是 OpenSearch用户界面 (OpenSearch UI) 的实例。每个应用程序可关联多个数据来源，而单个数据来源也可关联多个应用程序。您可以使用不同的受支持身份验证选项，为不同的管理员创建多个应用程序。

使用本主题中的信息来指导您完成使用 AWS 管理控制台 或创建 OpenSearch UI 应用程序的过程 AWS CLI。

**Topics**
+ [创建亚马逊 OpenSearch 服务应用程序所需的权限](#application-prerequisite-permissions)
+ [创建 OpenSearch UI 应用程序](#create-application)
+ [管理应用程序管理员](#managing-application-administrators)

## 创建亚马逊 OpenSearch 服务应用程序所需的权限
<a name="application-prerequisite-permissions"></a>

创建应用程序之前，请确认您已获得执行该任务所需的权限。如有需要，请联系账户管理员获取帮助。

### 通用权限
<a name="prerequisite-permissions-general"></a>

要在 S OpenSearch ervice 中使用应用程序，您需要具有以下策略中显示的权限。这些权限可用于以下用途：
+ 创建和管理应用程序需要五大 `es:*Application` 权限。
+ 在应用程序中添加、列出和删除标签需要三大 `es:*Tags` 权限。
+ 关联数据来源需要 `aoss:BatchGetCollection`、`es:DescribeDomain` 和 `es:GetDirectQueryDataSource` 权限。
+ 访问数据来源需要 `aoss:APIAccessAll`、`es:ESHttp*` 以及 4 大 `opensearch:*DirectQuery*` 权限。
+ 向 Amazon S OpenSearch ervice `iam:CreateServiceLinkedRole` 提供了在您的账户中创建服务相关角色 (SLR) 的权限。使用此角色可以让 OpenSearch UI 应用程序在您的账户中发布 Amazon CloudWatch 指标。有关更多信息，请参阅 [Permissions](slr-aos.md#slr-permissions)主题中的 [使用服务关联角色创建 VPC 域，直接查询数据来源](slr-aos.md)。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": [
                "es:CreateApplication",
                "es:DeleteApplication",
                "es:GetApplication",
                "es:ListApplications",
                "es:UpdateApplication",
                "es:AddTags",
                "es:ListTags",
                "es:RemoveTags",
                "aoss:APIAccessAll",
                "es:ESHttp*",
                "opensearch:StartDirectQuery",
                "opensearch:GetDirectQuery",
                "opensearch:CancelDirectQuery",
                "opensearch:GetDirectQueryResult",
                "aoss:BatchGetCollection",
                "aoss:ListCollections",
                "es:DescribeDomain",
                "es:DescribeDomains",
                "es:ListDomainNames",
                "es:GetDirectQueryDataSource",
                "es:ListDirectQueryDataSources"
            ],
            "Resource": "*"
        },
        {
            "Sid": "VisualEditor1",
            "Effect": "Allow",
            "Action": "iam:CreateServiceLinkedRole",
            "Resource": "arn:aws:iam::*:role/aws-service-role/opensearchservice.amazonaws.com/AWSServiceRoleForAmazonOpenSearchService"
        }
    ]
}
```

------

### 创建使用 IAM Identity Centity 身份验证的应用程序的权限（可选）
<a name="prerequisite-permissions-idc"></a>

默认情况下，控制面板应用程序使用 AWS Identity and Access Management (IAM) 进行身份验证，以管理 AWS 资源用户的权限。但是，您可以选择使用 IAM Identity Center 提供单点登录体验，该中心允许您使用现有的身份提供商登录 OpenSearch 界面应用程序。在这种情况下，您将在本主题后面的步骤中选择 “**使用 IAM 身份中心进行身份验证**” 选项，然后向 IAM Identity Center 用户授予访问 OpenSearch UI 应用程序所需的权限。）

要创建使用 IAM Identity Center 身份验证的应用程序，您需要以下权限。将 *placeholder values* 替换为您自己的信息。如有需要，请联系账户管理员获取帮助。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "IDCPermissions",
            "Effect": "Allow",
            "Action": [
                "es:CreateApplication",
                "es:DeleteApplication",
                "es:GetApplication",
                "es:ListApplications",
                "es:UpdateApplication",
                "es:AddTags",
                "es:ListTags",
                "es:RemoveTags",
                "aoss:BatchGetCollection",
                "aoss:ListCollections",
                "es:DescribeDomain",
                "es:DescribeDomains",
                "es:ListDomainNames",
                "es:GetDirectQueryDataSource",
                "es:ListDirectQueryDataSources",
                "sso:CreateApplication",  
                "sso:DeleteApplication",  
                "sso:PutApplicationGrant",  
                "sso:PutApplicationAccessScope",  
                "sso:PutApplicationAuthenticationMethod",  
                "sso:ListInstances",  
                "sso:DescribeApplicationAssignment",  
                "sso:DescribeApplication",  
                "sso:CreateApplicationAssignment",  
                "sso:ListApplicationAssignments",  
                "sso:DeleteApplicationAssignment",
                "sso-directory:SearchGroups",
                "sso-directory:SearchUsers",
                "sso:ListDirectoryAssociations",
                "identitystore:DescribeUser",
                "identitystore:DescribeGroup",
                "iam:ListRoles"
            ],
            "Resource": "*"
        },
        {
            "Sid": "SLRPermission",
            "Effect": "Allow",
            "Action": "iam:CreateServiceLinkedRole",
            "Resource": "arn:aws:iam::*:role/aws-service-role/opensearchservice.amazonaws.com/AWSServiceRoleForAmazonOpenSearchService"
        },
        {
            "Sid": "PassRolePermission",
            "Effect": "Allow",
            "Action": "iam:PassRole",
            "Resource": "arn:aws:iam::111122223333:role/iam-role-for-identity-center"
        }
    ]
}
```

------

## 创建 OpenSearch UI 应用程序
<a name="create-application"></a>

创建需指定应用程序名称、身份验证方法和管理员的应用程序，可通过以下任一步骤实现。

**Topics**
+ [在控制台中创建使用 IAM 身份验证的 OpenSearch UI 应用程序](#create-application-iam-authentication-console)
+ [在控制台中创建使用 AWS IAM Identity Center 身份验证的 OpenSearch UI 应用程序](#create-application-iam-identity-center-authentication-console)
+ [创建使用 AWS IAM Identity Center 身份验证的 OpenSearch UI 应用程序 AWS CLI](#create-application-iam-identity-center-authentication-cli)

### 在控制台中创建使用 IAM 身份验证的 OpenSearch UI 应用程序
<a name="create-application-iam-authentication-console"></a>

**在控制台中创建使用 IAM 身份验证的 OpenSearch UI 应用程序**

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

1. 在左侧导航窗格中，选择 **OpenSearch UI（控制面板）**。

1. 选择**创建应用程序**。

1. 在**应用程序名称**中，输入应用程序的名称。

1. 请勿选择**使用 IAM Identity Center 进行身份验证**复选框。有关通过身份验证创建应用程序的信息 AWS IAM Identity Center，请参阅本主题[在控制台中创建使用 AWS IAM Identity Center 身份验证的 OpenSearch UI 应用程序](#create-application-iam-identity-center-authentication-console)后面的部分。

1. （可选）您创建的应用程序将自动将您添加为管理员。在**OpenSearch 应用程序管理员管理**区域中，您可以向其他用户授予管理员权限。
**注意**  
 OpenSearch UI 应用程序管理员角色授予编辑和删除 OpenSearch UI 应用程序的权限。应用程序管理员还可以在 OpenSearch 用户界面应用程序中创建、编辑和删除工作区。

   要向其他用户授予管理员权限，请选择以下任一操作：
   + **向特定用户授予管理员权限** — 在**OpenSearch应用程序管理员**字段的**属性**弹出列表中，选择 **IAM 用户或** 

     **AWS IAM Identity Center 用户**，然后选择要向其授予管理员权限的单个用户。
   + **向所有用户授予管理员权限**：将向您组织或账户中的所有用户授予管理员权限。

1. （可选）配置加密设置。默认情况下， OpenSearch 用户界面元数据使用 AWS 自有密钥进行加密。要使用您自己的客户托管密钥 (CMK) 进行加密，请参阅[使用客户托管密钥加密 OpenSearch UI 应用程序元数据](application-encryption-cmk.md)。

1. （可选）在**标签**区域中，将一个或多个标签密钥 name/value 对应用于应用程序。

   标签是您分配给资源的可选元数据。标签可让您按不同的方式（如用途、拥有者或环境）对资源进行分类。

1. 选择**创建**。

### 在控制台中创建使用 AWS IAM Identity Center 身份验证的 OpenSearch UI 应用程序
<a name="create-application-iam-identity-center-authentication-console"></a>

要创建使用 AWS IAM Identity Center 身份验证的 OpenSearch UI 应用程序，您必须拥有本主题前面所述的 IAM 权限[创建使用 IAM Identity Centity 身份验证的应用程序的权限（可选）](#prerequisite-permissions-idc)。

**在控制台中创建使用 AWS IAM Identity Center 身份验证的 OpenSearch UI 应用程序**

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

1. 在左侧导航窗格中，选择 **OpenSearch UI（控制面板）**。

1. 选择**创建应用程序**。

1. 在**应用程序名称**中，输入应用程序的名称。

1. （可选）要为组织或账户启用单点登录，请执行以下操作：

   1. 选择**使用 IAM Identity Center 进行身份验证**复选框，如下图所示：  
![\[“单点登录身份验证”区域中，选中“使用 IAM Identity Center 进行身份验证”复选框。\]](http://docs.aws.amazon.com/zh_cn/opensearch-service/latest/developerguide/images/ui-Single-sign-on-authentication.png)

   1. 请执行以下操作之一：
      + 在 Ident **ity Center 的 IAM 角色应用程序**列表中，选择一个现有 IAM 角色，该角色为 IAM Identity Center 提供访问 OpenSearch 用户界面和相关数据源所需的权限。请参阅下文的策略，了解该角色必须具备的权限。
      + 创建具有所需权限的新角色。按照《IAM 用户指南》**中的以下步骤，使用指定选项创建新角色，并配置必要的权限策略和信任策略。
        + 流程：[创建 IAM 策略（控制台）](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/access_policies_create-console.html)

          在执行本流程的步骤时，请将以下策略粘贴到策略编辑器的 **JSON** 字段中：

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

****  

          ```
          {
              "Version":"2012-10-17",		 	 	 
              "Statement": [
                  {
                      "Sid": "IdentityStoreOpenSearchDomainConnectivity",
                      "Effect": "Allow",
                      "Action": [
                          "identitystore:DescribeUser",
                          "identitystore:ListGroupMembershipsForMember",
                          "identitystore:DescribeGroup"
                      ],
                      "Resource": "*",
                      "Condition": { 
                          "ForAnyValue:StringEquals": {
                              "aws:CalledViaLast": "es.amazonaws.com"
                          }
                      }
                  },
                  {
                      "Sid": "OpenSearchDomain",
                      "Effect": "Allow",
                      "Action": [
                          "es:ESHttp*"
                      ],
                      "Resource": "*"
                  },
                  {
                      "Sid": "OpenSearchServerless",
                      "Effect": "Allow",
                      "Action": [
                          "aoss:APIAccessAll"
                      ],
                      "Resource": "*"
                  }
              ]
          }
          ```

------
        + 流程：[使用自定义信任策略创建角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-custom.html)

          按照此流程中的步骤进行操作时，将**自定义信任策略**框中的占位符 JSON 替换为以下内容：
**提示**  
如果要向现有角色添加信任策略，请在该角色的**信任关系**选项卡上添加该策略。

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

****  

          ```
          {
              "Version":"2012-10-17",		 	 	 
              "Statement": [
                  {
                      "Effect": "Allow",
                      "Principal": {
                          "Service": "application.opensearchservice.amazonaws.com"
                      },
                      "Action": "sts:AssumeRole"
                  },
                  {
                      "Effect": "Allow",
                      "Principal": {
                          "Service": "application.opensearchservice.amazonaws.com"
                      },
                      "Action": "sts:SetContext",
                      "Condition": {
                          "ForAllValues:ArnEquals": {
                          "sts:RequestContextProviders": "arn:aws:iam::123456789012:oidc-provider/portal.sso.us-east-1.amazonaws.com/apl/application-id"
                          }
                      }
                  }
              ]
          }
          ```

------

   1. 如果您的组织或账户中已经创建了 IAM 身份中心实例，则控制台会报告 Amazon OpenSearch Dashboards 已连接到 IAM Identity Center 的组织实例，如下图所示。  
![\[“连接到 IAM 身份中心账户实例的 Amazon OpenSearch 控制面板” 区域显示现有 IAM 身份中心账户实例的 URL。\]](http://docs.aws.amazon.com/zh_cn/opensearch-service/latest/developerguide/images/ui-connected-instance.png)

      如果您的组织或账户中还没有 IAM Identity Center，您或具备所需权限的管理员可以创建组织实例或账户实例。将 A **mazon OpenSearch 控制面板连接到 IAM 身份中心**区域为两者提供了选项，如下图所示：  
![\[“将 Amazon OpenSearch 控制面板连接到 IAM 身份中心” 区域提供了用于创建组织实例或账户实例的按钮。\]](http://docs.aws.amazon.com/zh_cn/opensearch-service/latest/developerguide/images/ui-no-connected-instance.png)

       在此情况下，您可以在 IAM Identity Center 中创建账户实例以进行测试，或者请求管理员在 IAM Identity Center 中创建组织实例。有关更多信息，请参阅《AWS IAM Identity Center 用户指南》**中的以下主题：
**注意**  
如果您想在不同于您的 IAM Identity Center 组织实例 AWS 区域 中创建 OpenSearch UI 应用程序，请参阅在[多个实例中使用 IAM 身份中心 AWS 区域](https://docs.aws.amazon.com/singlesignon/latest/userguide/multi-region-iam-identity-center.html)。
      + [IAM 身份中心的组织实例](https://docs.aws.amazon.com/singlesignon/latest/userguide/organization-instances-identity-center.html)
      + [IAM Identity Center 的账户实例](https://docs.aws.amazon.com/singlesignon/latest/userguide/account-instances-identity-center.html)
      + [启用 AWS IAM Identity Center](https://docs.aws.amazon.com/singlesignon/latest/userguide/enable-identity-center.html)

1. （可选）您创建的应用程序将自动将您添加为管理员。在**OpenSearch 应用程序管理员管理**区域中，您可以向其他用户授予管理员权限，如下图所示：  
![\[“OpenSearch 应用程序管理员管理” 区域提供了向选定用户或所有用户授予管理员权限的选项。\]](http://docs.aws.amazon.com/zh_cn/opensearch-service/latest/developerguide/images/ui-admins-management.png)
**注意**  
 OpenSearch UI 应用程序管理员角色授予编辑和删除 OpenSearch UI 应用程序的权限。应用程序管理员还可以在 OpenSearch 用户界面应用程序中创建、编辑和删除工作区。

   要向其他用户授予管理员权限，请选择以下任一操作：
   + **向特定用户授予管理员权限** — 在**OpenSearch应用程序管理员**字段的**属性**弹出列表中，选择 **IAM 用户或** 

     **AWS IAM Identity Center 用户**，然后选择要向其授予管理员权限的单个用户。
   + **向所有用户授予管理员权限**：将向您组织或账户中的所有用户授予管理员权限。

1. （可选）在**标签**区域中，将一个或多个标签密钥 name/value 对应用于应用程序。

   标签是您分配给资源的可选元数据。标签可让您按不同的方式（如用途、拥有者或环境）对资源进行分类。

1. 选择**创建**。

### 创建使用 AWS IAM Identity Center 身份验证的 OpenSearch UI 应用程序 AWS CLI
<a name="create-application-iam-identity-center-authentication-cli"></a>

要使用创建使用 AWS IAM Identity Center 身份验证的 OpenSearch 用户界面应用程序，请使用带有以下 AWS CLI选项的 [create-ap](https://docs.aws.amazon.com/cli/latest/reference/opensearch/create-application.html) plication 命令：
+ `--name`：应用程序的名称。
+ `--iam-identity-center-options`—（可选）用于身份验证和访问控制的 IAM 身份中心实例和 IAM 角色。 OpenSearch 

将 *placeholder values* 替换为您自己的信息。

```
aws opensearch create-application \
    --name application-name \
    --iam-identity-center-options "
          {
          \"enabled\":true,
          \"iamIdentityCenterInstanceArn\":\"arn:aws:sso:::instance/sso-instance\",
          \"iamRoleForIdentityCenterApplicationArn\":\"arn:aws:iam::account-id:role/role-name\"
          }
    "
```

## 管理应用程序管理员
<a name="managing-application-administrators"></a>

 OpenSearch 用户界面应用程序管理员是具有编辑和删除 OpenSearch 用户界面应用程序权限的已定义角色。

默认情况下，作为 OpenSearch UI 应用程序的创建者，您是 OpenSearch UI 应用程序的第一位管理员。

### 使用控制台管理 OpenSearch UI 管理员
<a name="managing-application-administrators-console"></a>

您可以在应用程序创建工作流程中为 OpenSearch 用户界面应用程序添加其他管理员 AWS 管理控制台，也可以在应用程序创建后的 **“编辑**” 页面中添加其他管理员。

 OpenSearch UI 应用程序管理员角色授予编辑和删除 OpenSearch UI 应用程序的权限。应用程序管理员还可以在 OpenSearch 用户界面应用程序中创建、编辑和删除工作区。

在应用程序详情页面上，您可以搜索 IAM 主体的 Amazon 资源名称（ARN），也可以搜索 IAM Identity Center 用户的名称。

**使用控制台管理 OpenSearch UI 管理员**

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

1. 在左侧导航窗格中，选择 **OpenSearch UI（控制面板）**。

1. 在**OpenSearch 应用程序**区域中，选择现有应用程序的名称。

1. 选择 **Edit (编辑)**。

1. 要向其他用户授予管理员权限，请选择以下任一操作：
   + **向特定用户授予管理员权限** — 在**OpenSearch应用程序管理员**字段的**属性**弹出列表中，选择 **IAM 用户或** 

     **AWS IAM Identity Center 用户**，然后选择要向其授予管理员权限的单个用户。
   + **向所有用户授予管理员权限**：将向您组织或账户中的所有用户授予管理员权限。

1. 选择**更新**。

您可以移除其他管理员，但每个 OpenSearch UI 应用程序必须至少保留一名管理员。

### 使用管理 OpenSearch 用户界面管理员 AWS CLI
<a name="managing-application-administrators-cli"></a>

您可以使用创建和更新 OpenSearch UI 应用程序管理员 AWS CLI。

#### 使用创建 OpenSearch 用户界面管理员 AWS CLI
<a name="creating-application-administrators-cli"></a>

以下是在创建 OpenSearch UI 应用程序时将 IAM 委托人和 IAM 身份中心用户添加为管理员的示例。

##### 示例 1：创建将 IAM 用户添加为管理员的 OpenSearch UI 应用程序
<a name="add-admin-examples-iam-user-cli"></a>

运行以下命令创建将 IAM 用户添加为管理员的 OpenSearch UI 应用程序。将 *placeholder values* 替换为您自己的信息。

```
aws opensearch create-application \
    --name application-name \
    --app-configs "
        {
        \"key\":\"opensearchDashboards.dashboardAdmin.users\",
        \"value\":\"arn:aws:iam::account-id:user/user-id\"
        }
    "
```

##### 示例 2：创建 OpenSearch 启用 IAM 身份中心并将 IAM 身份中心用户 ID 添加为 OpenSearch UI 应用程序管理员的 UI 应用程序
<a name="add-admin-examples-iam-identify-center-user-cli"></a>

运行以下命令创建启用 IAM Identity Center 并以 OpenSearch UI 应用程序管理员身份添加 IAM 身份中心用户 ID 的 OpenSearch UI 应用程序。将 *placeholder values* 替换为您自己的信息。

`key`指定要设置的配置项目，例如 OpenSearch UI 应用程序的管理员角色。有效值包括 `opensearchDashboards.dashboardAdmin.users` 和 `opensearchDashboards.dashboardAdmin.groups`。

*xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx*表示分配给密钥的值，例如 IAM 用户的亚马逊资源名称 (ARN)。

```
aws opensearch create-application \
    --name myapplication \
    --iam-identity-center-options "
        {
        \"enabled\":true,
        \"iamIdentityCenterInstanceArn\":\"arn:aws:sso:::instance/ssoins-instance-id\",
        \"iamRoleForIdentityCenterApplicationArn\":\"arn:aws:iam::account-id:role/role-name\"
        }
    " \
    --app-configs "
        {
        \"key\":\"opensearchDashboards.dashboardAdmin.users\",
        \"value\":\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"
        }
    "
```

#### 使用更新 OpenSearch 用户界面管理员 AWS CLI
<a name="updating-application-administrators-cli"></a>

以下是更新分配为现有 OpenSearch应用程序管理员的 IAM 委托人和 IAM Identity Center 用户的示例。

##### 示例 1：将 IAM 用户添加为现有 OpenSearch 应用程序的管理员
<a name="update-admin-examples-iam-user-cli"></a>

运行以下命令更新 OpenSearch UI 应用程序以将 IAM 用户添加为管理员。将 *placeholder values* 替换为您自己的信息。

```
aws opensearch update-application \
    --id myapplication \
    --app-configs "
        {
        \"key\":\"opensearchDashboards.dashboardAdmin.users\",
        \"value\":\"arn:aws:iam::account-id:user/user-id\"
        }
    "
```

##### 示例 2：更新 OpenSearch UI 应用程序以将 IAM Identity Center 用户 ID 添加为 OpenSearch UI 应用程序管理员
<a name="update-admin-examples-iam-identify-center-user-cli"></a>

运行以下命令更新 OpenSearch UI 应用程序，以将 IAM Identity Center 用户 ID 添加为 OpenSearch UI 应用程序管理员。将 *placeholder values* 替换为您自己的信息。

`key`指定要设置的配置项目，例如 OpenSearch UI 应用程序的管理员角色。有效值包括 `opensearchDashboards.dashboardAdmin.users` 和 `opensearchDashboards.dashboardAdmin.groups`。

*xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx*表示分配给密钥的值，例如 IAM 用户的亚马逊资源名称 (ARN)。

```
aws opensearch update-application \
    --id myapplication \
    --app-configs "
        {
        \"key\":\"opensearchDashboards.dashboardAdmin.users\",
        \"value\":\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"
        }
    "
```