尝试使用java sdk更新CloudSearch中的服务访问策略

时间:2014-05-19 21:56:06

标签: java amazon-cloudsearch

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

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

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

' withAccessPolicy'的在线文档和javadoc两者都这样说: "您要配置的访问规则。这些规则取代了现有规则。"

您应该使用单个String定义多个访问规则这一事实意味着UpdateServiceAccessPoliciesRequest类是一个用于http请求的多边形设计容器,我可以忍受,但是有谁知道是什么"访问政策" update String在这个上下文中看起来像?

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

1 个答案:

答案 0 :(得分: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"]
         }
       }
     }
  ]
}

何处'陈述'是一个规则更改列表。

希望这可以为其他人带来类似的麻烦:)