当AWS Elasticsearch IAM主用户尝试放置数据时出现AuthorizationException,可能是因为缺少必要的权限。以下是解决此问题的步骤和代码示例:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AllowPutDataToES",
"Effect": "Allow",
"Action": [
"es:ESHttpPut"
],
"Resource": "*"
}
]
}
BasicAWSCredentials credentials = new BasicAWSCredentials("YOUR_ACCESS_KEY", "YOUR_SECRET_KEY");
AWSStaticCredentialsProvider credentialsProvider = new AWSStaticCredentialsProvider(credentials);
AmazonElasticsearchClientBuilder builder = AmazonElasticsearchClientBuilder.standard()
.withCredentials(credentialsProvider)
.withRegion("us-west-2"); // 替换为您的地区
AmazonElasticsearch client = builder.build();
ESHttpPut
操作将数据放置到Elasticsearch中。以下是使用Java SDK的示例代码:ESHttpPutRequest request = new ESHttpPutRequest("YOUR_ES_ENDPOINT", "/index/type/document");
request.setContent(new ByteArrayInputStream("Your data content".getBytes()));
ESHttpPutResult result = client.esHttpPut(request);
请确保将示例代码中的占位符(如YOUR_ACCESS_KEY,YOUR_SECRET_KEY,YOUR_ES_ENDPOINT)替换为您的实际值。
通过执行上述步骤,您应该能够解决AWS Elasticsearch IAM作为主用户尝试放置数据时出现的AuthorizationException异常。