1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

cognitoからユーザ情報の一覧を取得する

Last updated at Posted at 2023-10-24

はじめに

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を指定します。
フォーマットは他にもtabletextといった形式が選べます。

ユーザ情報の取得方法

以下のコマンドで全ユーザの情報を取得できます。

$ 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 の設定で少し躓いたので同じ思いをする方が少しでも減れば幸いです。

参考サイト

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?