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

使用Boto3调用AWS IdentityStore API创建用户时遇属性不存在错误

解决IdentityStore客户端无create_user方法的问题

问题原因

你遇到的错误核心是:Boto3的identitystore客户端本身没有create_user方法。这个客户端仅用于查询、读取或更新Identity Store中已存在的用户/组信息,而创建用户的操作需要使用AWS IAM Identity Center(原AWS SSO)对应的sso-admin客户端。

正确实现代码

要完成从DynamoDB读取用户并创建到Identity Store的需求,需改用boto3.client('sso-admin')调用其create_user方法,示例代码如下:

import boto3

# 初始化sso-admin客户端
sso_admin_client = boto3.client('sso-admin')

# 从DynamoDB读取用户数据
dynamodb = boto3.resource('dynamodb')
user_table = dynamodb.Table('你的DynamoDB用户表名')
db_response = user_table.scan()
user_list = db_response['Items']

# 循环创建Identity Store用户
for user in user_list:
    try:
        create_result = sso_admin_client.create_user(
            InstanceArn='arn:aws:sso:::instance/ssoins-xxxxxxxxxxxxxx', # 替换为你的IAM Identity Center实例ARN
            UserName=user['username'],
            DisplayName=user['display_name'],
            # 可选:补充邮箱、姓名等字段
            Emails=[
                {
                    'Value': user['email'],
                    'Type': 'work'
                }
            ],
            FamilyName=user['last_name'],
            GivenName=user['first_name']
        )
        print(f"用户创建成功,ID:{create_result['UserId']}")
    except Exception as e:
        print(f"创建用户{user['username']}失败:{str(e)}")

关键注意事项

  • 权限配置:确保执行代码的IAM角色拥有sso:CreateUser权限,同时需添加dynamodb:Scan(或对应查询权限)以读取DynamoDB数据。
  • InstanceArn获取:可在IAM Identity Center控制台的「设置」页面找到对应的实例ARN。
  • 必填参数:InstanceArn和UserName是创建用户的必填项,其余字段可根据业务需求补充。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 01:00:58