5
1

More than 3 years have passed since last update.

AWS Cognito ユーザープールID、クライアントIDが漏洩したときの影響

Posted at

影響範囲

↑こちらの記事に以下の質問と回答を見つけた。(2017/05/17)

Q8: UserPoolIdとClientIdが漏れたときの影響範囲について教えてください。

A8: UserPoolIdとClientIdを知ったクライアントがSignUpを実行できるようになります。しかし、一般的にConsumer向けのモバイルアプリやWebサービスはそもそもエンドユーザに新規ユーザ登録等の操作を許すことが多いため、Cognito Your User Poolsで構築したサービスに誰でもユーザ登録ができること自体は通常特に問題にはなりません。もし第三者によるユーザ登録操作を制限したいのであれば、ユーザ登録用のAPIを用意してクライアントからはそのAPIにアクセスするようにし、API内でAdminCreateUserなどを使ってユーザ登録を代行する方法などが考えられます。

テスト

1000人登録できるかテストしてみた。

for (i = 0; i < 1000; i++) {
  const userData = {
    userName: 'dummy-user-' + i,
    password: 'Ab12345!',
    email: 'xxxxxx@yyyyyy.zzz'
  };
  const poolData = {
    UserPoolId: 'ap-northeast-1_XXXXXX',
    ClientId: 'xxxxxxxxxxxxxxxxxxxxxxxxxx'
  }
  let attributeList = [];
  const dataEmail = {
      Name : 'email',
      Value : userData.email
  };
  const attributeEmail = new AmazonCognitoIdentity.CognitoUserAttribute(dataEmail);
  attributeList.push(attributeEmail);
  const userPool = new AmazonCognitoIdentity.CognitoUserPool(poolData);

  let cognitoUser;
  userPool.signUp(userData.userName, userData.password, attributeList, null, function(err, result){
      if (err) {
          alert(err);
          return;
      }
      cognitoUser = result.user;
      console.log('user name is ' + cognitoUser.getUsername());
  });
}

アラートが出た。

image.png

OKを連打していると新しいアラートが出た。

image.png

後はこの2つのアラートの繰り返しだった。

↓なぜか最初の555人は失敗していた。

image.png

結果

登録できたユーザー数:133
(dummy-user-556 ~ dummy-user-688)

image.png

参考記事

5
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
5
1