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

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

## なにが発表されたの？

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 クラスターを運用していて、タグベースでアクセスをきれいに整理したいインフラ・セキュリティ担当のみんなにおすすめのアップデートだよ！
