You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过AWS CLI v2在Identity Center创建含密码及邀请的用户?

通过AWS CLI v2创建带密码设置和邀请功能的AWS Identity Center用户

问题背景

我使用AWS CLI v2的identitystore create-user命令创建AWS Identity Center用户,执行命令如下:

aws identitystore create-user \
    --identity-store-id ${IDENTITY_STORE_INSTANCE_ID} \
    --user-name ${USERNAME} \
    --name '{ "FamilyName": "'${LAST_NAME}'", "GivenName": "'${FIRST_NAME}'" }' \
    --display-name "${DISPLAY_NAME}" \
    --emails '[{ "Value": "'${EMAIL}'", "Primary": true }]'

用户创建成功,但无法设置密码,也未收到邀请邮件。查看控制台的API调用过程后,发现CLI及官方API文档未提及两个关键属性:Active和PasswordMode,控制台发送的请求内容示例如下:

{
    "IdentityStoreId": "xxx",
    "UserName": "xxx",
    "UserAttributes": {
        "emails": {
            "ComplexListValue": [
                {
                    "value": {
                        "StringValue": "xxx@xxx.de"
                    },
                    "type": {
                        "StringValue": "work"
                    },
                    "primary": {
                        "BooleanValue": true
                    }
                }
            ]
        },
        "name": {
            "ComplexValue": {
                "givenName": {
                    "StringValue": "xxx"
                },
                "familyName": {
                    "StringValue": "xxx"
                }
            }
        },
        "displayName": {
            "StringValue": "xxx"
        }
    },
    "Active": true,
    "PasswordMode": "EMAIL"
}

解决方案

核心思路

identitystore create-user的CLI命令未暴露Active和PasswordMode参数,但可以通过--cli-input-json参数直接传递完整的API请求体,从而包含这两个隐藏属性,触发密码设置邀请邮件。

具体实现方式

方式1:使用JSON文件作为输入

  1. 创建名为create-user-request.json的文件,内容如下(替换占位符为实际值):
{
    "IdentityStoreId": "${IDENTITY_STORE_INSTANCE_ID}",
    "UserName": "${USERNAME}",
    "UserAttributes": {
        "emails": {
            "ComplexListValue": [
                {
                    "value": {
                        "StringValue": "${EMAIL}"
                    },
                    "type": {
                        "StringValue": "work"
                    },
                    "primary": {
                        "BooleanValue": true
                    }
                }
            ]
        },
        "name": {
            "ComplexValue": {
                "givenName": {
                    "StringValue": "${FIRST_NAME}"
                },
                "familyName": {
                    "StringValue": "${LAST_NAME}"
                }
            }
        },
        "displayName": {
            "StringValue": "${DISPLAY_NAME}"
        }
    },
    "Active": true,
    "PasswordMode": "EMAIL"
}
  1. 用环境变量替换占位符并执行命令:
envsubst < create-user-request.json > temp-request.json && aws identitystore create-user --cli-input-json file://temp-request.json && rm temp-request.json

方式2:直接传递内联JSON

在命令行中直接构造完整JSON请求(注意转义格式):

aws identitystore create-user --cli-input-json '{
    "IdentityStoreId": "'${IDENTITY_STORE_INSTANCE_ID}'",
    "UserName": "'${USERNAME}'",
    "UserAttributes": {
        "emails": {
            "ComplexListValue": [
                {
                    "value": {
                        "StringValue": "'${EMAIL}'"
                    },
                    "type": {
                        "StringValue": "work"
                    },
                    "primary": {
                        "BooleanValue": true
                    }
                }
            ]
        },
        "name": {
            "ComplexValue": {
                "givenName": {
                    "StringValue": "'${FIRST_NAME}'"
                },
                "familyName": {
                    "StringValue": "'${LAST_NAME}'"
                }
            }
        },
        "displayName": {
            "StringValue": "'${DISPLAY_NAME}'"
        }
    },
    "Active": true,
    "PasswordMode": "EMAIL"
}'

关键参数说明

  • PasswordMode: 设置为EMAIL时,AWS会自动向用户邮箱发送密码设置邀请邮件;
  • Active: 设置为true确保用户处于激活状态,否则无法接收邀请;
  • --cli-input-json: 绕过CLI参数限制,直接发送与控制台一致的API请求体。

内容的提问来源于stack exchange,提问作者qvt

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 09:13:27