我正在尝试为我在AWS上的elasticsearch注册一个快照。我的目标是在s3桶上创建elasticsearch域的快照。下面是我使用的命令:
curl -XPUT https://vpc-xxxxxxx.ap-southeast-2.es.amazonaws.com/_snapshot/es-snapshot -d '
{
"type": "s3",
"settings": {
"bucket": "$MY_BUCKET",
"region": "ap-southeast-2",
"role_arn": "arn:aws:iam::xxxx:role/es-snapshot-role"
}
}'
但我发现了一个错误:
{"Message":"User: anonymous is not authorized to perform: iam:PassRole on resource: arn:aws:iam::xxxx:role/es-snapshot-role"}
这似乎是一个角色许可问题。我已经将角色策略配置为:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "",
"Effect": "Allow",
"Action": [
"es:*",
"s3:*",
"iam:PassRole",
"es:ESHttpPut"
],
"Resource": [
"*"
]
}
]
}
它的信任关系是:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": "es.amazonaws.com"
},
"Action": "sts:AssumeRole"
}
]
}
我想知道我还错过了什么。
这篇文章AccessDenied for EC2 Instance with attached IAM Role
似乎与我的问题无关。
发布于 2019-09-16 05:45:14
注册手动快照库
必须向注册快照存储库,然后才能获取手动索引快照。此一次性操作要求您使用允许访问TheSnapshotRole的凭据对AWS请求进行签名,如手动快照先决条件中所述。 您不能使用curl来执行此操作,因为它不支持AWS请求签名。相反,使用示例Python客户端、邮递员或其他方法发送签名请求来注册快照存储库。请求采取以下形式:
PUT elasticsearch-domain-endpoint/_snapshot/my-snapshot-repo
{
"type": "s3",
"settings": {
"bucket": "s3-bucket-name",
"region": "region",
"role_arn": "arn:aws:iam::123456789012:role/TheSnapshotRole"
}
}
参考自AWS文档:使用服务索引快照
发布于 2019-09-16 06:29:05
将iam:PassRole
权限添加到您的IAM用户并尝试命令,
https://stackoverflow.com/questions/57949575
复制相似问题