0

我正在尝试在 java 代码中更新 Amazon CloudSearch 域的访问策略,这似乎是可能的,但似乎缺少它的 API。到目前为止,我的代码是:

cloudSearchClient.updateServiceAccessPolicies(
            new UpdateServiceAccessPoliciesRequest()
                    .withDomainName("test-eme1")
                    .withAccessPolicies("???"));

UpdateServiceAccessPoliciesRequest 只接受两个参数:CloudSearch 域(一个字符串)和访问策略(另一个字符串)。

'withAccessPolicy' 的在线文档和 javadoc 都有这样的说法: “您要配置的访问规则。这些规则替换现有规则。”

您应该在此处使用单个字符串定义多个访问规则这一事实意味着 UpdateServiceAccessPoliciesRequest 类是用于 http 请求的多设计容器,我可以忍受,但有人知道什么是“访问策略”在这种情况下更新字符串看起来像?

我正在使用 AWS Java SDK 版本 1.7.9,我几乎肯定它使用了 CloudSearch REST API 版本 2013-01-01。

4

1 回答 1

0

我进一步挖掘,发现 UpdateServiceAccessPoliciesRequest 被序列化为 x-www-form-urlencoded,并且 AccessPolicies 参数需要一个大的旧 JSON 字符串:

{
  "Version":"2012-10-17",
  "Statement":[
    {
      "Effect":"Allow",
      "Principal": {
        "AWS":["*"]
      },
      "Action":"cloudsearch:*",
      "Resource":"arn:aws:cloudsearch:us-east-1:000123456789:domain/test-eme1",
      "Condition":{
        "IpAddress":{
          "aws:SourceIp":["0.0.0.0/0"]
         }
       }
     }
  ]
}

其中“声明”是规则更改列表。

希望这可以避免其他人类似的头痛:)

于 2014-05-19T22:20:59.860 回答