DynamoDB Streams、タグだけで細かくアクセス制御できるようになったよ!
やっほー、しぃちゃんだよ! 今日は DynamoDB のアクセス管理がちょっと賢くなるお知らせだよ、紹介するね!
AWS What's Newなにが発表されたの?
AWS What's New からのお知らせだよ。Amazon DynamoDB Streams が、属性ベースアクセス制御(ABAC)に対応したの。タグを使った条件を IAM ポリシーに書けるようになって、ストリームへのアクセスをもっと細かくコントロールできるようになったんだって。
今までどうだったの?
これまでも DynamoDB のテーブル自体にはタグを付けられたけど、Streams 単体をタグで制御する手段はなかったの。複数のチームやアプリケーションが同じアカウントで DynamoDB Streams を使っていると、アクセス権を環境やチームごとに分けたいときに、IAM ポリシーをストリームの数だけ細かく書かないといけなかったんだよね。
これで何が変わるの?
各ストリームに最大 50 個までタグを付けられるようになって、そのタグを IAM ポリシーの条件に使えるようになったよ。例えば「environment:production」というタグが付いたストリームからだけレコードを読み取れるようにして、他の環境へのアクセスは制限する、みたいなことが 1 つのポリシーでできちゃうの。
ストリームのタグはテーブル本体のタグとは別に管理できるから、テーブルはそのままでストリームだけ細かく制御する、なんて使い方もできるよ。複数チームや複数環境で DynamoDB を運用してるところほど、IAM ポリシーの数を減らせてうれしいはず。
深く潜ってみよう
対応リージョンは DynamoDB Streams が使えるすべての商用 AWS リージョンと AWS GovCloud(US)で、追加料金はなしなの。すでに Streams を使っているアカウントなら、タグを付けて IAM ポリシーの条件を書き換えるだけで導入できるよ。
まとめ
- DynamoDB Streams が属性ベースアクセス制御(ABAC)に対応
- ストリームごとに最大 50 個のタグを付けて、IAM ポリシーの条件に使える
- テーブル本体とは独立してタグ管理ができる
- 全商用リージョン・GovCloud(US)対応、追加料金なし
複数チームや複数環境で DynamoDB Streams を運用していて、IAM ポリシーの管理に手間を感じてるチームにぴったりのアップデートだよ!