我最近开始使用新的Amazon Elasticsearch Service,我似乎无法弄清楚我需要的访问策略,因此我只能从我的EC2实例访问具有特定IAM角色的服务.
以下是我目前为ES域分配的访问策略的示例:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "",
"Effect": "Allow",
"Principal": {
"AWS": [
"arn:aws:iam::[ACCOUNT_ID]:role/my_es_role",
]
},
"Action": "es:*",
"Resource": "arn:aws:es:us-east-1:[ACCOUNT_ID]:domain/[ES_DOMAIN]/*"
}
]
}
Run Code Online (Sandbox Code Playgroud)
但正如我所说,这不起作用.我登录到EC2实例(my_es_role附加了角色)并尝试在"https://*.es.amazonaws.com"端点上运行简单的curl调用,我收到以下错误:
{"消息":"用户:匿名无权执行:es:ESHttpGet on resource:arn:aws:es:us-east-1:[ACCOUNT_ID]:domain/[ES_DOMAIN] /"}
有没有人知道我必须在访问策略中更改什么才能使其正常工作?
amazon-ec2 amazon-web-services elasticsearch amazon-iam amazon-elasticsearch
我正在尝试使用这个简单的Go程序输出1x1透明GIF图像(在base64中预先生成),尽管我似乎无法使其正常工作.有没有人知道如何使用预先生成的base64字符串或磁盘中的文件来执行此操作?
我很感激帮助.
package main
import (
"net/http"
"io"
"encoding/base64"
)
const base64GifPixel = "R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs="
func respHandler(res http.ResponseWriter, req *http.Request) {
res.Header().Set("Content-Type","image/gif")
output,_ := base64.StdEncoding.DecodeString(base64GifPixel)
io.WriteString(res,string(output))
}
func main() {
http.HandleFunc("/", respHandler)
http.ListenAndServe(":8086", nil)
}
Run Code Online (Sandbox Code Playgroud)