shiichan

Amazon Neptune、タグだけでアクセス制御できるようになったって知ってた?

みんな、しぃちゃんだよ!今日はグラフデータベースのアクセス制御をぐっと楽にしてくれるアップデートを見つけたよ。

AWS What's New aws.amazon.com

なにが発表されたの?

AWS の What's New によると、Amazon Neptune Database が IAM のタグベースアクセス制御(TBAC)に対応したの。AWS のリソースタグや IAM プリンシパルのタグを、IAM ポリシーや SCP(サービスコントロールポリシー)の条件として使えるようになって、Neptune のデータプレーン操作へのアクセスを制御できるようになったんだって。

今までどうだったの?

Neptune にはもともと VPC による隔離や TLS 暗号化、IAM 認証といったセキュリティの仕組みがあったの。でも複数のクラスターを大規模に管理しているチームにとっては、組織のアクセス境界を守るための、もっと動的で属性ベースの仕組みが欲しかったんだよね。これまでは、ポリシーの中にクラスターの ARN を一つひとつ書き並べて管理する必要があったの。

これで何が変わるの?

TBAC を使うと、管理者はポリシーの中に個別のクラスター ARN を書き並べなくても、クラスターへのアクセスを管理できるようになるよ。たとえば Project=FraudDetection というタグを持つ IAM プリンシパルは、同じタグを持つ Neptune クラスターに対してだけ neptune-db:* の操作ができる、という仕組みなの。共有 VPC 環境の中での横展開リスクをなくせるし、プロジェクトやチーム・環境ごとのアクセスの境界も強制しやすくなるよ。SAML や OIDC のセッションタグを使ったフェデレーション認証のワークフローもサポートされているんだって。

深く潜ってみよう

neptune-db:QueryLanguage のようなきめ細かい権限も、TBAC と組み合わせて使えるから、より粒度の細かいアクセス制御ができるよ。

利用には Neptune エンジンバージョン 1.2.0.0 以降が必要で、IAM 認証を有効にしていることが前提になるの。対応リージョンは、Amazon Neptune が使える全 AWS リージョンだよ。

まとめ

  • Amazon Neptune が IAM のタグベースアクセス制御(TBAC)に対応
  • リソースタグとプリンシパルタグが一致する場合のみ neptune-db:* 操作を許可する仕組み
  • クラスター ARN を個別に列挙しなくてもアクセス境界を管理できる
  • SAML/OIDC のセッションタグにも対応、neptune-db:QueryLanguage など細かい権限とも併用可能
  • Neptune エンジン 1.2.0.0 以降・IAM 認証が前提、Neptune 対応の全 AWS リージョンで利用可能

複数の Neptune クラスターを運用していて、タグベースでアクセスをきれいに整理したいインフラ・セキュリティ担当のみんなにおすすめのアップデートだよ!