Elastic Beanstalk ebcli 不接受 AWSeducate 凭证

AWSeducate credentials are not accepted for Elastic Beanstalk ebcli

当我登录到我的 awseducate 帐户并单击 帐户详细信息 时,我得到了我的凭据。 See the credentials generated by the account

我成功地将这些凭据与我的 S3 存储桶一起使用来上传和下载文件。但是当我尝试将这些凭证与弹性 beantalk 服务 - ebcli(eb init 命令)一起使用时,我收到消息 ERROR: NotAuthorizedError - Operation Denied。请求中包含的安全令牌无效。

F:\cloud-developer-master\course-02\project\image-filter-starter-code>eb init

Select a default region
1) us-east-1 : US East (N. Virginia)
2) us-west-1 : US West (N. California)
3) us-west-2 : US West (Oregon)
4) eu-west-1 : EU (Ireland)
...
(default is 3): 1
You have not yet set up your credentials or your credentials are incorrect
You must provide your credentials.
(aws-access-id): ASIxxxxxxxxxxxxxxxxxxxxxxxx
(aws-secret-key): hVCExxxxxxxxxxxxxxxxxxxxxxx
ERROR: NotAuthorizedError - Operation Denied. The security token included in the request is invalid.

有什么线索不接受这些吗?

注意:我无法为新用户创建新凭证,因为此 AWS 学生账户不允许执行此操作。 我尝试重新刷新页面以获取新凭据,但仍然没有成功。

我尝试创建 .aws/credentials 文件并复制并粘贴了这些凭据,但仍未被接受:

F:\cloud-developer-master\course-02\project\image-filter-starter-code>eb init

Select a default region
1) us-east-1 : US East (N. Virginia)
2) us-west-1 : US West (N. California)
3) us-west-2 : US West (Oregon)
...
(default is 3): 1
ERROR: The current user does not have the correct permissions. Reason: Operation Denied. The security token included in the request is invalid.
ERROR: The current user does not have the correct permissions. Reason: Operation Denied. The security token included in the request is invalid.
You have not yet set up your credentials or your credentials are incorrect
You must provide your credentials.
(aws-access-id): ASIxxxxxxxxxxxxxxxxxxxxxxxxxxxx
(aws-secret-key): 1Ssxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
ERROR: NotAuthorizedError - Operation Denied. The security token included in the request is invalid.

AWS Educate 为您提供临时 凭据,这些凭据会在一段时间后过期。它们是通过 AWS 安全令牌服务 (STS) 生成的。

临时凭证包括:

  • 访问密钥
  • 密钥
  • 会话令牌

您显示的 eb init 脚本只要求前两项,而不是 Session Token。没有会话令牌,凭据无效。

可能可以用这种方法克服:

  • 运行 aws configure,这将要求您提供凭据,然后将其存储在 ~.aws/credentials(包括安全令牌)
  • 运行 eb init,应使用该文件中的凭据

最坏的情况,通过 aws configure --profile foo 使用替代配置文件,然后 eb init --profile foo

多亏了一个伪 Gambit- 的人,我找到了问题的解决方案 (details here)。 您必须在文件夹中创建两个文件:C:\Users\YOURUSERNAME\.aws

配置

[default] 
region = us-east-1 # replace this with your region (don't select it in the CLI) 
output = json

凭据

[default]
aws_access_key_id=REPLACE_WITH_YOUR_ACCESS_KEY
aws_secret_access_key=REPLACE_WITH_YOUR_SECRET_KEY
aws_session_token=REPLACE_WITH_YOUR_TOKEN

一点解释: 当您 selectcmd 中的区域时,eb-cli 将通过生成并存储名为 [eb cli][ 的新配置文件来自动更新 config 文件=30=] 这将填充您在 cmd 中的 select 的信息。但是,我确实将配置文件 [default] 放在文件 credentials 中,这是两个不同的配置文件。因此,认证失败。

另外,感谢 John Rotenstein 的帮助