0

执行 aws cli 命令时出现以下错误aws ec2 describe-instances --filters "Name=instance-type,Values=m1.small"

A client error (AuthFailure) occurred when calling the DescribeInstances operation: AWS was not able to validate the provided access credentials

凭据来自以下脚本:

import boto3

sts_client = boto3.client('sts')

assumedRoleObject = sts_client.assume_role(
    RoleArn="arn:aws:iam::<>:role/service-role/Test-Project",
    RoleSessionName="AssumeRoleSession2"
)
credentials = assumedRoleObject['Credentials']

print credentials['AccessKeyId']
print "#"*100
print credentials['SecretAccessKey']
print "#"*100
print credentials['SessionToken']
print "#"*100

我还测试了对角色启用管理员访问权限。还是行不通。

角色的信任关系如下:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": [
          "*",
          "arn:aws:iam::<>:user/<username>"
        ],
        "Service": [
          "lambda.amazonaws.com",
          "ec2.amazonaws.com"
        ]
      },
      "Action": "sts:AssumeRole"
    }
  ]
}
4

1 回答 1

1

我只能想到 2 个原因作为它不起作用的原因,只需检查它是否适合您的情况。

只是为了确保您正在导出会话中的所有 3 个变量,即

export AWS_ACCESS_KEY_ID="ASIAI******JQ"
export AWS_SECRET_ACCESS_KEY="n******u1pRocjL"
export AWS_SESSION_TOKEN="FQ*****vKJKTisUF"

或者,如果您在本地计算机中使用凭据文件,则其中包含所有 3 个变量,并且在默认配置文件下也是如此。

此外,由于会话令牌默认在一小时内有效,因此只需检查您的机器时间是否不同步(可能性很小,但值得检查。)

于 2017-05-24T10:04:20.100 回答