3
スナップショットリポジトリを登録しようとしています。場所にこのすべてを持った後AWS esドメインのスナップショットリポジトリを登録できません
from boto.connection import AWSAuthConnection
class ESConnection(AWSAuthConnection):
def __init__(self, region, **kwargs):
super(ESConnection, self).__init__(**kwargs)
self._set_auth_region_name(region)
self._set_auth_service_name("es")
def _required_auth_capability(self):
return ['hmac-v4']
if __name__ == "__main__":
client = ESConnection(
region='ap-south-1',
host='es.domain.com',
aws_access_key_id='test_id',
aws_secret_access_key='test_secret_id', is_secure=False)
print 'Registering Snapshot Repository'
resp = client.make_request(method='POST',
path='/_snapshot/snapshot-backup',
data='{"type": "s3","settings": { "bucket": "es-backuptest","region": "ap-south-1","role_arn": "arn:aws:iam::arn:aws:iam::arn:aws:iam::rolename"}}')
body = resp.read()
print body
:
{
"Version": "2012-10-17",
"Statement": [{
"Sid": "",
"Effect": "Allow",
"Principal": {
"Service": "es.amazonaws.com"
},
"Action": "sts:AssumeRole"
}]
}
し、以下のように政策:
{
"Version": "2012-10-17",
"Statement": [{
"Action": ["s3:ListBucket"],
"Effect": "Allow",
"Resource": ["arn:aws:s3:::es-backuptest"]
}, {
"Action": ["s3:GetObject", "s3:PutObject", "s3:DeleteObject", "iam:PassRole"],
"Effect": "Allow",
"Resource": ["arn:aws:s3:::es-backuptest/*"]
}]
}
そして、私はPythonスクリプトの下に使用しています私は以下の役割とポリシーを使用していました登録するPythonスクリプトを実行していますが、以下のエラーが表示されます。
{"Message":"Cross-account pass role is not allowed."}
私はここで何が欠けているのか教えてください。
あなたはこれを理解しましたか?私は同じ問題を抱えている。 – Doug
はいバケツ設定に間違いがありましたので、以下のように変更しました data = '{"type": "s3"、 "settings":{"バケット": "S3-test-bucket"、 "region": "us -east-1 "、" base_path ":" es-backuptest/"、" role_arn ":" arn:aws:iam :: rolename "}} ') –