最近、新しい Amazon Elasticsearch Service の使用を開始しましたが、特定の IAM ロールが割り当てられた EC2 インスタンスからのみサービスにアクセスできるようにするために必要なアクセス ポリシーがわかりません。
以下は、私が現在 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]/*"
}
]
}
しかし、私が言ったように、これはうまくいきません。EC2 インスタンス (my_es_role
ロールがアタッチされている) にログインし、「https://*.es.amazonaws.com」エンドポイントで単純な curl 呼び出しを実行しようとすると、次のエラーが発生します。
{"メッセージ":"ユーザー: 匿名は実行する権限がありません: リソースに対する es:ESHttpGet: arn:aws:es:us-east-1:[ACCOUNT_ID]:domain/[ES_DOMAIN]/"}
これが機能するためにアクセスポリシーで何を変更する必要があるかを誰かが知っていますか?