将 ElasticSearch 添加为 AWS Data Migration Service 的目标时连接失败

Connection fails when adding ElasticSearch as a Target for AWS Data Migration Service

我正在尝试在 DMS 中设置 ElasticSearch 端点,但无论我在测试连接时尝试什么,我都会收到此一般错误:

Test Endpoint failed: Application-Status: 1020912, Application-Message: Endpoint initialization failed.

我创建了一个受 dms.amazonaws.com 信任的角色:

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

并授予它所有权限:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "*"
            ],
            "Resource": "*"
        }
    ]
}

我还将我的 Elasticsearch 域配置为 public,我可以连接到它并访问 Kibana。

我跟着这个 'tutorial' 但现在我不知道在哪里寻找 Elastic 的 logs/potential 问题。

我 运行 遇到了同样的问题,不得不修改 Elasticsearch 域的访问策略以允许附加到我的 DMS 目标端点的角色访问它。

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::{accountNumber}:role/{serviceRoleUsedForDmsTargetEndpoint}"
      },
      "Action": [
        "es:ESHttpDelete",
        "es:ESHttpGet",
        "es:ESHttpHead",
        "es:ESHttpPost",
        "es:ESHttpPut"
      ],
      "Resource": "{yourElasticsearchDomainArn}"
    }
  ]
}

这不是我通过 tutorials/documentation 找到的解决方案,而是通过支持案例找到的。

事实证明,这里的原因是 Elastic url 中的尾部斜线。我将 url 设置为:

https://my-elastic-search-name-1lllsyiodfokjalksnd.eu-west-1.es.amazonaws.com/

当我切换到将 url 设置为时失败了:

https://my-elastic-search-name-1lllsyiodfokjalksnd.eu-west-1.es.amazonaws.com

一切都开始正常工作了,希望尽快修复一个错误。