【问题标题】:AWS Cognito - User pool xxxx does not existAWS Cognito - 用户池 xxxx 不存在
【发布时间】:2019-07-02 01:31:23
【问题描述】:

var client = new AmazonCognitoIdentityProviderClient("MYKEY", "MYSECRET", RegionEndpoint.USEast1);

var request = new AdminGetUserRequest();
request.Username = "USERNAME";
request.UserPoolId = "POOLID";

var user = client.AdminGetUserAsync(request).Result;                      

密钥/机密正在以具有管理员访问权限的用户身份进行身份验证。为了更好地衡量,我还为其提供了 AmazonCognitoPowerUser 政策。

区域端点正确,与我的用户池所在的端点相同。用户池 ID 正确。用户池 ID 的第一部分与区域匹配。

我不知道还有什么地方可能出错。有什么想法吗?

2019 年 8 月 2 日更新

手动 CLI 命令:

PM> aws cognito-idp list-user-pools --region us-east-1 --max-results 10
{
    "UserPools": []
}

地区是正确的,所以一定是权限有问题。有什么我可以尝试调整池的,或者我可能需要添加到用户的其他策略?

【问题讨论】:

  • 假设您的 CLI 配置了与您的应用相同的凭据,您可以输入 aws cognito-idp list-user-pools --region us-east-1 --max-results 10 并检查结果吗?
  • 顺便说一句,代码中的硬编码访问密钥和密钥被认为是一种糟糕的安全做法。我们强烈建议您改用 IAM 角色。
  • @SébastienStormacq 在主帖中更新。另外,这不是生产代码,凭据会被移动,我只需要先让它以最简单的形式工作。
  • 感谢您的更新。假设您的 CLI 和代码使用相同的凭据,您看到的错误消息是正确的:该区域中没有与该帐户关联的 Cognito 用户池。如果您从 AWS 控制台看到 Cognito 用户池,请问自己“我在哪个区域?”和“与此帐户关联的访问密钥/密钥是什么?”
  • 有。我已为该 IAM 用户添加了控制台访问权限,为 us-east-1 加载了 cognito,我可以查看和编辑用户池。使用相同的 IAM 用户,为什么我可以在控制台中看到它,使用控制台凭证登录,而不是通过 CLI 或以编程方式使用访问密钥/密钥?

标签: c# amazon-web-services amazon-cognito


【解决方案1】:

所以,这似乎是现有 IAM 用户的某种 AWS 故障。

创建了一个具有完全相同权限的新用户后,可以通过 CLI 和原始问题中的代码进行访问。

【讨论】:

    【解决方案2】:

    实际上你的配置可能是错误的,你下载了 awsconfiguration.json 并且看起来和我知道的一样。但是这个配置可能是错误的。当您检查 json 时,您会看到一个字段.. "CognitoUserPool": {PoolId, appclient id ..}

    您需要打开您的用户池并创建新的客户端或控制现有的客户端信息。使用此网页的池 id、appclient id 等再次检查您的 awsconfiguration.json。更新您的 json...它将解决问题。

    【讨论】:

      【解决方案3】:

      我在使用 AWS CLI 时遇到了这个问题,这也让我感到困惑,但我了解到我需要在参数列表中提供配置文件名称才能使其正常工作。所以它看起来像这样:

      aws cognito-idp admin-get-user --profile dev-account ....
      

      我的配置文件存储在我的 Mac 上 cat ~/.aws/config| grep 配置文件

      配置文件由内部自定义脚本创建。这是该文件的内容。

      [profile dev-account]
      sso_start_url = https://yourcompanyname.awsapps.com/start#/
      sso_region = us-east-1
      sso_account_id = 1234567890
      sso_role_name = PowerUserAccess
      region = us-east-1
      output = json
      

      此外,此文件夹中有一个“凭据”文件,其中包含以下变量的一些 JSON:配置文件名称、aws_access_key_idaws_secret_access_keyaws_session_tokenaws_expiration

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-02-04
        • 2018-01-31
        • 2018-11-07
        • 2020-06-14
        • 2018-12-07
        • 1970-01-01
        • 2021-02-09
        • 1970-01-01
        相关资源
        最近更新 更多