はじめに
cognitoからユーザのメールアドレス一覧を取得しようとしたのですが、cognitoの管理画面からはエクスポートすることが出来ず、代わりにCLIから取得する方法があったのでその方法を書き記しておきます。
AWS CLIの設定
既にAWS CLIをインストールしている人は読み飛ばしてください。
AWS CLIをインストール
$ pip install awscli
以下のコマンドでIAMユーザの情報を設定
$ aws configure
実行するといろいろ聞かれるのでそれぞれ情報を入力する
AWS Access Key ID [None]: <アクセスキーID>
AWS Secret Access Key [None]: <シークレットアクセスキー>
Default region name [None]: <リージョン名>
Default output format [None]: <フォーマット名>
アクセスキーID
とシークレットアクセスキー
は、コンソール画面右上のユーザメニュー > セキュリティ認証情報 > アクセスキー から発行できます。既に発行している場合はそちらを使用してください。
リージョン名は使用しているリージョン、フォーマットはjson
を指定します。
フォーマットは他にもtable
やtext
といった形式が選べます。
ユーザ情報の取得方法
以下のコマンドで全ユーザの情報を取得できます。
$ aws cognito-idp list-users --user-pool-id <ユーザプールID> > output.json
ユーザプールIDはcognitoのユーザプールの管理画面から確認できます。
ap-northeast-1_<識別子>
みたいなやつです。
output.json
の中身↓
{
"Users": [
{
"Username": "hoge",
"Attributes": [
{
"Name": "sub",
"Value": "xxx-xxx-xxx"
},
...
],
"UserCreateDate": 123456789.000,
"UserLastModifiedDate": 123456789.000,
...
},
...
これでデータを取得できたので、あとは任意のプログラムでoutput.json
を読み込んで利用することが出来ます。参考にしたサイトではjqを使って特定の属性を抽出していました。
私はメールアドレスの一覧が欲しかったのでPythonで読み込んでメールアドレスを抽出しました。
さいごに
ユーザ情報の取得自体はコマンドひとつで出来たので非常に簡単でしたが、私はその前の AWS CLI の設定で少し躓いたので同じ思いをする方が少しでも減れば幸いです。
参考サイト