我们如何使用 AWS CLI 从 AWS Cognito 中的特定用户池中删除所有用户?
5892 次
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 回答