Link Search Menu Expand Document Documentation Menu

现有集群的 IAM 和安全组

本页面概述了将迁移工具与现有集群结合使用的安全场景,包括为确保它们之间正常通信所需的任何配置更改。

导入 Amazon OpenSearch Service 或 Amazon OpenSearch Serverless 目标集群

对于 Amazon OpenSearch Service 或 Amazon OpenSearch Serverless 目标集群,请使用以下场景。

OpenSearch Service

对于 OpenSearch 域,通常需要两项主要配置以确保迁移解决方案的正常运行

  1. 安全组配置

    域应具有一个安全组,允许来自适用的迁移服务(流量重放器、迁移控制台、Reindex-from-Snapshot)的通信。CDK 会自动创建一个 osClusterAccessSG 安全组,并将其应用于迁移服务。用户随后应将此安全组添加到其现有域中以允许访问。

  2. 访问策略配置应为以下之一

    • 允许所有访问的开放访问策略。
    • 配置为至少允许适用的迁移服务(流量重放器、迁移控制台、Reindex-from-Snapshot)的 AWS Identity and Access Management (IAM) 任务角色访问该域。

托管服务角色映射(跨托管集群迁移)

在两个托管集群之间迁移时,例如,当两个域都使用 Amazon OpenSearch Service 创建时,请为迁移助手组件提供足够的权限以修改源集群和目标集群。

使用以下步骤授予所需权限

  1. 在 AWS 管理控制台中,导航到 CloudFormation > 堆栈
  2. 找到以 OSMigrations-<stage>-<region> 开头的堆栈(在 CDK 部署期间创建)。
  3. 转到资源选项卡并找到以下 IAM 角色

    arn:aws:iam::****:role/OSMigrations-<stage>-<region>-MigrationServiceTaskRoleC-
    arn:aws:iam::****:role/OSMigrations-<stage>-<region>-reindexfromsnapshotTaskRo-
    arn:aws:iam::****:role/OSMigrations-<stage>-<region>-trafficreplayerdefaultTas-
    
  4. 在源集群和目标集群中,使用以下步骤将用户映射到每个 Amazon 资源名称 (ARN): A. 访问 OpenSearch Dashboards。如果您使用的是 Elasticsearch,请访问 Kibana。 B. 导航到 Security -> Roles -> all_access。 C. 在“Mapped users”(已映射用户)部分,将每个 ARN 添加为后端角色。 D. 保存您的更改。

OpenSearch Serverless

对于 OpenSearch Serverless 集合,您需要配置网络访问策略和数据访问策略

  1. 网络策略配置:
    集合应具有使用 VPC 访问类型的网络策略。这要求在用于解决方案的 VPC 上创建 VPC 端点。VPC 端点应配置用于 VPC 的私有子网,并应附加 osClusterAccessSG 安全组。

  2. 数据访问策略配置:
    数据访问策略应授予权限,允许对集合中的所有索引执行所有索引操作aoss:*)。适用的迁移服务(流量重放器、迁移控制台、Reindex-from-Snapshot)的 IAM 任务角色应作为此数据访问策略的主体。

源集群协调节点上的捕获代理

尽管 CDK 不会自动在源集群节点上设置捕获代理(演示解决方案除外),但捕获代理实例必须与 CDK 部署的资源(例如 Kafka)进行通信。本节概述了建立通信所需的步骤。

在源集群上设置捕获代理实例之前,请确保以下配置已到位

  1. 安全组配置:
    协调节点应添加 trafficStreamSourceSG 安全组,以允许将捕获的流量发送到 Kafka。

  2. IAM 策略配置:
    协调节点使用的 IAM 角色应具有将捕获的流量发布到 Kafka 的权限。您可以通过 AWS 控制台添加以下模板策略(IAM 角色 → 添加权限 → 创建内联策略 → JSON 视图)

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Action": "kafka-cluster:Connect",
            "Resource": "arn:aws:kafka:<REGION>:<ACCOUNT-ID>:cluster/migration-msk-cluster-<STAGE>/*",
            "Effect": "Allow"
        },
        {
            "Action": [
                "kafka-cluster:CreateTopic",
                "kafka-cluster:DescribeTopic",
                "kafka-cluster:WriteData"
            ],
            "Resource": "arn:aws:kafka:<REGION>:<ACCOUNT-ID>:topic/migration-msk-cluster-<STAGE>/*",
            "Effect": "Allow"
        }
    ]
}