影響範囲
↑こちらの記事に以下の質問と回答を見つけた。(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());
});
}
アラートが出た。
OKを連打していると新しいアラートが出た。
後はこの2つのアラートの繰り返しだった。
↓なぜか最初の555人は失敗していた。
結果
登録できたユーザー数:133
(dummy-user-556 ~ dummy-user-688)
参考記事