# GameLift Streams が IAM ロール対応！長期アクセスキーとはもうサヨナラ！

やっほー、しぃちゃんだよ！今日は Amazon GameLift Streams のアップデートを見つけたよ。ゲームをクラウドでストリーミングするサービスなんだけど、地味に見えて実はすごく大事な、セキュリティまわりの改善なんだ！

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

AWS What's New で、Amazon GameLift Streams のストリームセッションに IAM ロールを割り当てられるようになったと発表されたよ。これによって、ストリーミング中のアプリケーションが Amazon S3 バケットや DynamoDB テーブルみたいな AWS リソースに、安全にアクセスできるようになるの。

セッションを開始するときに `RoleArn` パラメータを渡すだけで、アプリケーションは AWS SDK の標準的な認証情報解決チェーンを通じて、短命で自動更新される AWS の認証情報を自動的に受け取れるようになるんだって。しかもアプリ側のコード変更は不要なの！

## 今までどうだったの？

今までは、ストリーミング中のアプリケーションから AWS のサービスにアクセスしたいとき、長期間有効なアクセスキーをアプリケーションのバンドルに埋め込んだり、環境変数として渡したりする必要があったの。これだとキーが漏れたときのリスクが大きいし、ローテーションや管理の手間も運用としてはけっこう負担だったんだよね。

## これで何が変わるの？

認証情報の管理を GameLift Streams 側にお任せできるようになるから、開発者は長期アクセスキーをアプリに埋め込む必要がなくなるの。セキュリティのリスクを減らせるだけじゃなくて、キーのローテーションとか管理の手間からも解放されるのがうれしいポイントだよ。ゲームをクラウドでストリーミングしつつ、裏側で S3 や DynamoDB みたいな AWS リソースを使いたい開発者さんにとって、地味だけど確実に嬉しいアップデートなの。

## 深く潜ってみよう

仕組みとしては、Amazon ECS のタスクロールや Amazon EKS の Pod Identity で使われているのと同じ、コンテナ認証情報プロバイダーのしくみが使われているんだって。だからアプリケーション側は特別な実装をしなくても、標準的な AWS SDK の認証情報解決チェーンから自動で認証情報を取得できるの。

ロールの設定ミスは、セッション開始のタイミングでちゃんと検証されるから、実行中に急にエラーが出るんじゃなくて、最初の時点ではっきりしたエラーを返してくれるんだって。トラブルシューティングがしやすくなりそうだね。

設定は Amazon GameLift Streams のコンソールから直接できて、あらかじめ用意された信頼ポリシーのテンプレートを使えば、ロール設定がぐっと簡単になるみたい。IAM ロール対応は、Amazon GameLift Streams が使えるすべての AWS リージョンで利用できるよ。

詳しい設定手順は、Developer Guide の Session Credentials Setup ページにまとまってるみたい。

## まとめ

- Amazon GameLift Streams のストリームセッションに IAM ロールを割り当てられるようになった
- `RoleArn` を渡すだけで、短命・自動更新の AWS 認証情報をアプリが自動取得(コード変更不要)
- 今までは長期アクセスキーの埋め込みが必要で、セキュリティ・運用面の課題があった
- 仕組みは Amazon ECS タスクロールや Amazon EKS Pod Identity と同じコンテナ認証情報プロバイダー
- ロールの設定ミスはセッション開始時に検証され、コンソールには信頼ポリシーのテンプレートも用意されている
- 対応リージョンは GameLift Streams が使える全リージョン

クラウドでゲームをストリーミングしつつ AWS リソースにもアクセスしたい開発者さんに、地味だけど確実に刺さるアップデートだよ！
