LoginSignup
0
0

More than 3 years have passed since last update.

OpenDistroで FGAC

Last updated at Posted at 2020-08-13

前提

CloudTrailのログを流し込んでいるとします。

Kibanaでの管理者操作

一般ユーザー作成

画面左メニューの"Security"をクリックし、人型マークの"Internal User Database"をクリック

スクリーンショット 0002-08-13 13.06.24.png

"+"をクリックし、以下の値を入れ"Submit"をクリックしユーザー作成
ユーザー名:user4
パスワード:任意の値

スクリーンショット 0002-08-13 13.07.48.png

テナントの作成

"Tenants"をクリック

スクリーンショット 0002-08-13 13.06.24.png

"+"をクリック

スクリーンショット 0002-08-13 13.28.52.png

テナント名に"yokogushi"と入れて[Submit]

スクリーンショット 0002-08-13 13.29.31.png

ロール作成

"Roles"をクリック

スクリーンショット 0002-08-13 13.06.24.png

"+"をクリック

スクリーンショット 0002-08-13 13.11.44.png

以下の値を入力し、[Save Role Definition]をクリックする

  • Overviewタブ

    • Role name:kansa-role
  • Cluster Permissionsタブ

    • "Permissions:Action Groups"で[Add Action Group]をクリックして"data_access"を選択
  • Index Permissionsタブ

    • [Add index permissions]をクリック、Index patternsに"log-aws-cloudtrail-*"を入力
    • "Permissions:Action Groups"で[Add Action Group]をクリックして"read"を選択
  • Tenant Permissionsタブ

    • [Add tenant permissions]をクリックし、「Add tenant pattern]をクリックし、"yokogushi*"を入力
    • Permissionsで[Add Field]をクリックし、"kibana_all_read"を選択

スクリーンショット 0002-08-13 13.34.02.png

Action Group

ロールで設定した"data_access"と"read"はAction Groupと呼ばれ、権限のセットです。
例えば、readは、"indices:data/read*"と"indices:admin/pammpings/fields/get*"のSingle Permissionのセットです。
https://opendistro.github.io/for-elasticsearch-docs/docs/security/access-control/default-action-groups/

このAction Groupの中にAction Groupをセットすることもできます。data_accessがそんな感じでした。

ユーザーとロールのマッピング

"Role Mappings"をクリック

スクリーンショット 0002-08-13 13.06.24.png

"+"をクリック

スクリーンショット 0002-08-13 13.22.05.png

ロールにkansa-roleを選び、ユーザーにuser4を選び[Submit]をクリック

スクリーンショット 0002-08-13 13.23.55.png

Index Pattern/Visual/Dashboard作成

テナントを"yokogushi"に移動します。
左メニューのTenantsをクリックして、yokogushiの文字列をクリックします。

スクリーンショット 0002-08-29 10.07.17.png

このテナントにはインデックスパターン定義がないので作成します。
左メニューのManagementをクリックし、画面右上の[Create Index Pattern]をクリックします。

スクリーンショット 0002-08-29 10.10.28.png

今回はcloudtrailとGuardDutyのインデックスパターンを作ります。
一般ユーザーにはCloudTrailのみ許可しているので、CloudTrailは見えるがGuardDutyは見えないというシナリオです。

スクリーンショット 0002-08-29 10.10.56.png

Discoverでデータが見えることを確認します。

スクリーンショット 0002-08-29 10.17.47.png

時間があればVisualやDashboardも作成してください

Kibanaでの一般ユーザー操作

user4でログインし直す

テナントyokogushiを選択

スクリーンショット 0002-08-13 13.38.13.png

Discoverで
log-aws-cloudtrail-*のログは見える

スクリーンショット 0002-08-29 10.45.01.png

他は見えない

スクリーンショット 0002-08-29 10.46.37.png

ダッシュボードで、
左側のlog-aws-cloudtrail-*を元にしたものは見える
右側のGuadDutyを元にしたものは権限がないので見えない

スクリーンショット 0002-08-29 10.45.40.png

イメージ図

図1.png

感想

同じテナント内だと、そもそもDiscoverでのIndexマッピング情報や、ダッシュボードなどが見えてしまう(中身はエラーとなり見えない)。FGACのPermissionでは、indexのリスト、ダッシュボードのリストの制限はできなそう
必要がないIndexマッピングやダッシュボードなどを見せたくない場合はテナントを分けることになりそう。Indexマッピングやダッシュボードを他のテナントでも使いたい場合は、テンプレートとしてエクスポートし、他のテナントでインポートになりそう

シングルテナントでやる場合

  • メリット:
    • ダッシュボードを見るなどの表示やサーチだけの用途なら権限設定がシンプルになる
    • 管理者側でダッシュボード作成が1つのテナントだけで済むので手間が少ない
  • デメリット:
    • indexやダッシュボードはリストされちゃう。選択してもエラーにはなる
    • アラートや異常値検知やダッシュボード作ったりなど書き込み操作するニーズが出てきたら細かい権限制御が必要になる。

マルチテナント

  • メリット:
    • indexやダッシュボードが自身のテナントのものだけが表示されて見やすい
    • アラートや異常値検知やダッシュボード作ったりなど書き込み操作するニーズが出てきても、制御しやすい
  • デメリット
    • 管理者側でダッシュボード作成をテナントごとにしないといけない。テンプレート化するなどで手間は減らせるが手間はある。

参考情報

AmazonESのFGAC
https://docs.aws.amazon.com/ja_jp/elasticsearch-service/latest/developerguide/fgac.html

Access Control Permission
https://opendistro.github.io/for-elasticsearch-docs/docs/security/access-control/permissions/

OpenDistro Security
https://opendistro.github.io/for-elasticsearch/features/security.html

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0