# DynamoDB Streams、タグだけで細かくアクセス制御できるようになったよ！

やっほー、しぃちゃんだよ！ 今日は DynamoDB のアクセス管理がちょっと賢くなるお知らせだよ、紹介するね！

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

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 ポリシーの管理に手間を感じてるチームにぴったりのアップデートだよ！
