我正在尝试通过cli访问我的S3存储桶。我已经进行了所有设置,例如在进行此cli工作的地方有一个credentials
文件,请确保$AWS_SECRET_ACCESS_KEY
和$AWS_ACCESS_KEY_ID
的环境变量中包含正确的内容,并手动进行使用aws configure
设置它们。
credentials
包含以下信息,所有信息都为空白:
[sts]
aws_access_key_id = ASIAXXXXXXXXXXXXXXXX
aws_secret_access_key = XXXXXXXXXXXXXXXXXXXXXXXXX
aws_security_token = XXXXXXXXXXXXXXXXXXXXXX
aws_session_expiration = 2018-11-03T00:21:25+0000
aws_session_token = XXXXXXXXXXXXXXXXXXXXXXX
[default]
aws_access_key_id = ASIAXXXXXXXXXXXXXXXXXXX
aws_secret_access_key = XXXXXXXXXXXXXXXXXXX
还要确保已完成所有设置,我还运行了aws configure
:
(venv) ~/.aws $ aws configure list
Name Value Type Location
---- ----- ---- --------
profile <not set> None None
access_key ****************XXXX shared-credentials-file
secret_key ****************XXXX shared-credentials-file
region
us-east-1 config-file ~/.aws/config
但是,当我运行以下命令时,它说我有此错误:
(venv) ~/.aws $ aws s3 sync s3://mybucket/my/path ~/my/path
fatal error: An error occurred (InvalidAccessKeyId) when calling the ListObjectsV2 operation: The AWS Access Key Id you provided does not exist in our records.
我不知道如何解决此问题,并用尽了我所有的Google搜索选项。
答案 0 :(得分:4)
以ASIA
开头的凭据是通过安全令牌服务生成的临时凭据,必须与令牌一起使用。
运行aws s3 sync
命令时,它使用的是[Default]凭据,但未定义aws_security_token
。
尝试将--profile sts
添加到命令中,以使其使用[sts]凭据。