【问题标题】:How to create a new user in AWS如何在 AWS 中创建新用户
【发布时间】:2012-10-03 15:40:31
【问题描述】:

我试图弄清楚如何使用适用于 Java 的 AWS API 创建新用户,但我不知道我需要做什么。

到目前为止,我设法编写了这段代码,它为我提供了一个 CreateUserRequest、一个 CreateAccessKeyRequest 和一个 BasicAWSCredentials,所有字段都已填写。

我只是不知道下一步该做什么。我必须使用 CreateUserResult 吗?怎么样?

    CreateUserRequest user = new CreateUserRequest("userName");

    CreateAccessKeyRequest key = new CreateAccessKeyRequest();

    BasicAWSCredentials cred = new BasicAWSCredentials("access", "secret");

    key.withUserName(user.getUserName());
    key.setRequestCredentials(cred);

    user.setRequestCredentials(key.getRequestCredentials());
    user.setPath("/");

编辑:我今天仍在努力。

我想我需要使用 AmazonIdentityManagementClient 类的 createUser(CreateUserRequest) 方法。 (它返回一个 CreateUserResult,我不应该手动实例化这个类)

问题是,我不知道如何使用正确的 AWSCredentials 正确初始化这个类(我使用的是账户的 AccessKey 和 SecretAccessKey)。

【问题讨论】:

  • 你解决了这个问题吗??接受的答案对我不起作用。

标签: java amazon-web-services amazon-iam


【解决方案1】:
CreateUserRequest user = new CreateUserRequest("userName");

CreateAccessKeyRequest key = new CreateAccessKeyRequest();

BasicAWSCredentials cred = new BasicAWSCredentials("access", "secret");

key.withUserName(user.getUserName());
key.setRequestCredentials(cred);

user.setRequestCredentials(key.getRequestCredentials());
user.setPath("/");
AmazonIdentityManagementClient client =  new AmazonIdentityManagementClient(cred);
CreateUserResult result = client.createUser(user);

【讨论】:

  • 我正在尝试这样的事情,但我输入的凭据不断出现此错误。(我还尝试使用 20 字符的 accessKey 和 40 字符的 secretKey,但没有任何改变)状态代码:403,AWS 服务:AmazonIdentityManagement,AWS 请求 ID:f15e9c40-0e09-11e2-a5c4-871c4c40223d,AWS 错误代码:InvalidClientTokenId,AWS 错误消息:请求中包含的安全令牌无效。我不应该使用主帐户凭据来创建用户吗?
  • @EugenioLaghi 您可以使用主帐户凭据,但不建议这样做。但这不是问题。问题是您的令牌无效。如果您确实使用了正确的安全凭证,您能否检查一下您的安全凭证?您的帐户是否允许创建用户?
  • 我只是在测试 AWS 以备将来在我的公司中使用,所以我可以处理主帐户,只是为了让您了解我的情况。 :) 无论如何,我将帐户的凭据复制粘贴到一个 .properties 文件中,我在测试其他服务时使用该文件,所以我相信它们是正确的。不知道,我要和我的一位管理员用户再试一次..
  • 好的,现在我确定我为 AmazonIdentityManagementClient 使用了正确的凭证:我通过 Java 为我的管理员用户创建了一个新的 AccessKey。问题可能出在我尝试分配给新用户的凭据上,我将处理这些凭据。
  • 嗨!尽管此代码有效,但方法 setRequestCredentials() 显示为已弃用。此实现是否有更新的版本可用?
【解决方案2】:

也许这个链接可以帮助你:

http://docs.amazonwebservices.com/IAM/latest/APIReference/API_CreateUser.html

我没有使用过 Amazon S3 服务,但使用了其他类似的服务,我必须手动创建请求并使用正确的数据对请求进行签名。

【讨论】:

  • 感谢您的帮助,但我已经浏览了大部分这些页面以寻找信息,它们在重要部分也充满了空白......
猜你喜欢
  • 2017-12-22
  • 2018-02-22
  • 2022-11-11
  • 2014-11-16
  • 2016-07-11
  • 2015-01-14
  • 2012-02-15
  • 1970-01-01
  • 2022-06-30
相关资源
最近更新 更多