

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

# 设置开源 OpenSearch 权限
<a name="opensearch-granting-access"></a>

如果您使用开源 OpenSearch，则必须能够从您的开放搜索集群访问您的 Amazon Personalize 资源。要授予访问权限，请执行以下操作：
+ 如果您是 OpenSearch 从头开始设置，则可以使用[快速启动 bash 脚本](https://github.com/opensearch-project/search-processor/blob/main/helpers/personalized_search_ranking_quickstart.sh)在 Docker 容器中运行 OpenSearch 集群。该脚本使用您的 AWS 个人资料中的默认凭据。您可以在运行该脚本时指定备用配置文件。

  这些证书必须与有权为您的 Amazon Personalize 活动执行 GetPersonalizedRanking操作的用户或角色相关联。如需 IAM 策略示例，请参阅 [IAM 策略示例](#opensearch-role-policy-example)。或者，此类凭证必须有权代入具有这些权限的角色。您可以在为 Amazon Personalize 搜索排名插件创建管道时，为此角色提供 Amazon 资源名称 (ARN)。
+ 如果您不使用[快速启动 bash 脚本](https://github.com/opensearch-project/search-processor/blob/main/helpers/personalized_search_ranking_quickstart.sh)，则可以手动将凭据添加到 OpenSearch 密钥库中。这些证书必须与有权为您的 Amazon Personalize 活动执行 GetPersonalizedRanking 操作的用户或角色相对应。

  要手动将您的 AWS 凭据添加到 OpenSearch 密钥库中，请在 OpenSearch 集群运行的地方（例如 Docker 容器）运行以下命令。然后，提供每个凭证。如果您不使用会话令牌，则可以省略命令中的最后一行。

  ```
  opensearch-keystore add \
  personalized_search_ranking.aws.access_key \
  personalized_search_ranking.aws.secret_key \
  personalized_search_ranking.aws.session_token
  ```
+ 如果您在 Amazon EC2 实例上运行 OpenSearch 集群，则可以使用 IAM 实例配置文件授予权限。该角色所附的政策必须授予其在您的 Amazon Personalize 活动中执行 GetPersonalizedRanking 操作的权限。它还必须向 Amazon EC2 授予代入角色的权限。

  有关 Amazon EC2 实例配置文件的信息，请参阅[使用实例配置文件](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2_instance-profiles.html)。有关策略示例，请参阅[IAM 策略示例](#opensearch-role-policy-example)。

## IAM 策略示例
<a name="opensearch-role-policy-example"></a>

以下策略示例向用户或角色授予从 Amazon Personalize 市场活动中获得个性化排名的最低权限。对于 `Campaign ARN`，为 Amazon Personalize 市场活动指定 Amazon 资源名称 (ARN)。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "personalize:GetPersonalizedRanking"
            ],
            "Resource": "arn:aws:personalize:us-east-1:111122223333:campaign/YourResourceId"
        }
    ]
}
```

------

此外，如果您在 Amazon EC2 实例上运行 OpenSearch 集群并使用 IAM 实例配置文件授予权限，则该角色的信任策略必须按如下方式授予 Amazon EC2 `AssumeRole` 权限。有关 Amazon EC2 实例配置文件的信息，请参阅[使用实例配置文件](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2_instance-profiles.html)。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Service": "ec2.amazonaws.com"
            },
            "Action": "sts:AssumeRole"
        }
    ]
}
```

------