HaneCa

独り立ちへ向けた長い道

AWS CloudFormationでCognitoユーザの作成方法について

投稿日: 2019年8月16日

ここでは、CloudFormationを用いて、Cognitoユーザを作成する方法について紹介します。まず、CognitoのユーザプールやFederatred Identitiesの作成方法については、多く情報が見るかるので、今回は省略することにします。

 

目次

前提条件

ここでは、他のCloudFormationのスタックでこれらのユーザ認証に必要なCognitoのコンポーネントについては既に作成されており、ユーザプールのIDがCognitoUserPoolIdという名前で取得できるものとします。

 

CloudFormationのスクリプトについて

今回、既に作成されているユーザプールに、新たにユーザとグループを作成し、さらに、作成したユーザを作成したグループのメンバーとして所属させるスクリプトを作成します。

 

Cognitoユーザ作成のスクリプト

Cognitoユーザを作成する場合は、次のようなスクリプトを作成します。

# Cognito Admin User
CognitoAdminUser:
  Type: AWS::Cognito::UserPoolUser
  Properties:
    Username: admin
    UserPoolId: !ImportValue CognitoUserPoolId # 他のスタックでエクスポートされた値を読み込む
    UserAttributes:
      - Name: email
        Value: admin@example.com # 実際のメールアドレスに置き換え

 

Cognitoグループ作成のスクリプト

Cognitoグループを作成する場合は、次のようなスクリプトを作成します。

# Cognito Admin Group
CognitoAdminGroup:
  Type: AWS::Cognito::UserPoolGroup
  Properties:
    GroupName: admin
    UserPoolId: !ImportValue CognitoUserPoolId # 他のスタックでエクスポートされた値を読み込む

 

Cognitoユーザ・グループ関連付け

Cognitoでユーザとグループを関連づける場合、次のようなスクリプトを作成します。

# Attach user with group
CognitoAdminUserToAdminGroupAttachment:
  Type: AWS::Cognito::UserPoolUserToGroupAttachment
  Properties:
    UserPoolId: !ImportValue CognitoUserPoolId # 他のスタックでエクスポートされた値を読み込む
    GroupName: !Ref CognitoAdminGroup
    Username: !Ref CognitoAdminUser

 

今回のポイント

今回のポイントは、ユーザ作成の部分にあります。なぜなら、このスクリプトのように(受信可能な)メールアドレスを設定することで、自動的にCognitoが一時パスワードを作成し、登録されたメールアドレスに一時パスワードを送信してくれます。

これを行うことで、環境構築後にWebコンソールを活用してユーザ作成する作業は必要なくなります。

 

参考サイト

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください