【发布时间】:2020-06-16 14:38:10
【问题描述】:
我们如何使用 AWS CLI 从 AWS Cognito 的特定用户池中删除所有用户?
【问题讨论】:
标签: amazon-web-services amazon-cognito
我们如何使用 AWS CLI 从 AWS Cognito 的特定用户池中删除所有用户?
【问题讨论】:
标签: amazon-web-services amazon-cognito
如果您安装并配置了 AWS Cli,我创建了一个从 Windows CMD 执行此操作的脚本,这将逐页删除所有用户,因此您需要运行它直到所有用户都被删除。
您需要下载 JQ 并将其路径添加到系统环境路径中,以便以下操作。
---delete.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)
---delete.bat---
【讨论】:
试试下面的:
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
【讨论】:
抱歉,无法添加评论。我在 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---
【讨论】:
使用 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
【讨论】:
这是一个基于@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。
【讨论】: