提问者:小点点

Boto3-在不使用访问密钥的情况下使用Amazon Cognito进行身份验证


我正在开发一个python脚本,该脚本与使用Amazon Cognito(我不熟悉)作为身份验证后端的Web服务交互,我在登录时遇到了困难。

我的主要问题是boto3需要AWS访问密钥和密钥(不提供那些我得到的NoCretal alsError),但由于此脚本将驻留在多个不受信任的计算机上,我不想存储/嵌入这些密钥,出于明显的安全原因。

这些不受信任的计算机将有权访问的信息是:

  • 用于登录Web服务的用户名和密码
  • Cognito身份池ID
  • Cognito用户池ID
  • Cognito客户端ID

根据这些客户端拥有的信息,是否有可能正确地使用Cognito进行身份验证?如果是,如何进行?


共1个答案

匿名用户

是的。调用get_credentials_for_identity()。它不需要任何凭据。使用如下:

import boto3
cognito = boto3.client('cognito-identity')
response = cognito.get_credentials_for_identity(IdentityId="id")

其中"id"是Cognito身份池ID。response应该返回一个cript,包括临时访问密钥、秘密访问密钥、会话令牌和到期日期。