はじめての Elasticsearch on AWS 作成時のロール・ポリシー・権限設定
前書き
- この記事は自分が Elasticsaerch 作成にあたって権限周りでわからなかったことをまとめた記事です。
- 詳細・最新・正確な情報などは公式ドキュメントに全部書いてあるので、基本的にそちらを参照ください。
やりたいこと
- Elasticsearch on AWS を Create Domain から新しく始めるとき、仕組みを理解した上でロールの設定をしたい。
先に結論
- もしService-linked Roleについて理解してないなら、これをきちんと理解するのが大事だった。(というか、この記事的にもあまりES関係ない)
- IAM にてロールを作成して、下記2つのアクションを許可したポリシーも持たせる。
es:CreateElasticsearchServiceRole
iam:CreateServiceLinkedRole
- (REF: Amazon ES のサービスにリンクされたロールの使用 - Amazon Elasticsearch Service)
- 下記のロールはユーザーへの割り当ては不要。(ユーザーに付与する用途ではなくて、自動的に Elasticsearch に対して付与される用途のものだから。)
AWSServiceRoleForAmazonElasticsearchService
Serivce-linked role について
この設定の前に、Serviced-linked roleについて理解しておく必要があった。
IAMロールとservice-lilnked Roleの比較・詳細な説明はこちらを参照
ただ、自分の場合はこれだけでは、イメージがつきにくかったので、具体例を考えながら理解する。
具体例:前提
- 具体例として扱うサービスは Elasticsearch(以後、ElasticsearchかES)
- 「Elasticsearch を作成する」を実現していく。
具体例:内容
-
「何かの操作」をしたときに、Service-linked Role は「自動的」に作成される。
- 今回の例だと「ES の作成」の操作をすることで、Serviced-linked Roleも自動的に作成される。
-
Serviced-Linked Role の具体的な内容(アクションなど)はサービス・操作によって違う。
-
今回の例だと「ES の作成」の場合は、AmazonElasticsearchServiceRolePolicy のロールも自動的に作成される。(そのためService-linked roleの作成権限もユーザーに必要。後述する)
-
このロールと ES はリンクされる。その結果、ES はAmazonElasticsearchServiceRolePolicyにて許可されてる範囲の操作も行えるようになる。
-
具体例:事前
そのため今回のケースだと、ES を作成しようとしているユーザーに対して、下記のアクション許可が事前に必要になる。
-
es:CreateElasticsearchServiceRole
- Elasticsaerch自体を作成する権限
-
iam:CreateServiceLinkedRole
- Service-linked Role を作成する権限
おわりに
Elasticsearchのインフラを作ることになったので0から調べていった。
最終的にはES周りの知識というよりも、前提として Serviced-linked Role についての理解が浅かったのが原因でした。インフラ構築とこの文章の作成で思考が整理できたので、ここに記事としてまとめておきます。