6

我们如何使用 AWS CLI 从 AWS Cognito 中的特定用户池中删除所有用户?

4

5 回答 5

20

尝试以下:

aws cognito-idp list-users --user-pool-id $COGNITO_USER_POOL_ID |
jq -r '.Users | .[] | .Username' |
while read uname1; do
  echo "Deleting $uname1";
  aws cognito-idp admin-delete-user --user-pool-id $COGNITO_USER_POOL_ID --username $uname1;
done
于 2020-03-04T07:20:11.847 回答
2

如果您安装并配置了 AWS Cli,我创建了一个从 Windows CMD 执行此操作的脚本,这将逐页删除所有用户,因此您需要运行它直到所有用户都被删除。

您需要下载JQ并将其路径添加到系统环境路径中,以便以下工作。

---删除.bat---

@echo off setlocal

for /f "delims=" %%I in 
  ('aws cognito-idp list-users --user-pool-id  $COGNITO_USER_POOL_ID ^| 
    jq -r ".Users | .[] | .Username"')
do 
  (aws cognito-idp admin-delete-user --user-pool-id $COGNITO_USER_POOL_ID --username %%I 
   echo %%I deleted)

---删除.bat---

于 2020-03-04T06:42:33.853 回答
0

这是基于@ajilpm 的批处理脚本的 bash 版本:

# deleteAllUsers.sh
COGNITO_USER_POOL_ID=$1

aws cognito-idp list-users --user-pool-id $COGNITO_USER_POOL_ID |
jq -r '.Users | .[] | .Username' |
while read user; do
  aws cognito-idp admin-delete-user --user-pool-id $COGNITO_USER_POOL_ID --username $user
  echo "$user deleted"
done

您必须安装jq并记住使脚本可执行:chmod +x deleteAllUsers.sh.

用户池 id 可以作为命令行参数提供:./deleteAllUsers.sh COGNITO_USER_POOL_ID.

于 2021-10-08T01:08:36.037 回答
0

使用 Python 和 boto3:我使用电子邮件作为用户名

import boto3 as aws
import pandas as pd

client_cognito = aws.client('cognito-idp')
getProperties = pd.read_csv('CognitoUsers.csv',header=0)
usernames = getProperties['email']

for username in usernames:
    response = client_cognito.admin_delete_user(
        UserPoolId="us-east-1_xxxxxxxxx",
        Username = username,
    )

您需要使用您的 AWS 访问密钥 ID 和 AWS 秘密访问密钥登录 aws-cli

于 2021-05-03T21:31:07.540 回答
0

抱歉无法添加评论。我在 Windows 10 中为我工作的ajilpm 提到的命令有相同的要求和轻微修改。您需要下载 jq.exe 并在命令行中保持路径

---Start.bat---

@echo off setlocal

for /f "delims=" %%I in ('aws cognito-idp list-users --user-pool-id us-west-2_O7rRBQ5rr --profile dev-hb ^| jq -r ".Users | .[] | .Username"') do ( aws cognito-idp admin-delete-user --user-pool-id us-west-2_O7rRBQ5rr --username %%I --profile dev-hb)

---delete.bat---
于 2020-08-27T07:18:09.570 回答