前置き
以前から気にはなっていましたが、AWSコンソールからCognitoを操作する際、ロールを設定する画面でプルダウンにアカウントが持つ全てのロールが表示されていませんでした。問い合わせて回答をいただいたのでメモがてら共有しておこうと思います。
TL;DR
- ユーザープールとIDプールの2箇所で発生
- コンソール上で選べるロールの数は最大100件(現時点での仕様)
- プルダウンの表示順はアルファベット昇順
- 回避策はCLIの利用や、画面でのロールの新規作成など
詳細
以下の2箇所のプルダウンにはアカウントが持つロールが100個までしか表示されていません。
Cognito User Pool : Group作成時のロール設定
Cognito Federated Identity : 認証された・されていないユーザーへのロール設定
回避策
- AWS CLI
- 新しくロールを作成する
- アルファベットの昇順で表示されるように名前をつける(一応......)
1. AWS CLI
※リファレンスの例にはunauthのコマンドは見つからなかったけど、多分こんな感じでしょう。
aws cognito-identity set-identity-pool-roles \
--identity-pool-id "${YourIdentityPoolId}" \
--roles authenticated="${YourAuthenticatedRoleArn}" \
--roles unauthenticated="${YourUnauthenticatedRoleArn}"
2. 新しくロールを作成する
画像をもう一度見てみると、どちらもプルダウンのすぐ右に Create Role と、新しいRoleを作成しそのままアタッチすることが可能です。
3. アルファベットの昇順で表示されるように...
まぁ、、表示はされますよ...
挙げといてなんですが、1以外はおすすめしません。
最後に
不便っちゃ不便ですよね。
個人用のアカウントならまだしも、企業のアカウントとなるとロールの数は100をゆうに超えるでしょう。AWSの基本思想に則ると開発者用のアカウントではインフラ担当者がCLIの利用は制限していることが多く、CLIを使って設定するためにはSREやインフラ担当にお願いをする必要がありますからね。
機能改善としてフィードバックを挙げたのと、AWSの担当者的にも既知の状況であること(実際に使いづらい)は判明したので、これがきっかけとなって改善されるといいなぁ。