我正在尝试在ubuntu计算机上自动将数据库备份上传到s3。我正确生成了数据库备份,但是当我尝试上传到s3时,我收到以下错误:
A client error (InvalidAccessKeyId) occurred when calling the PutObject
operation: The AWS Access Key Id you provided does not exist in our records.
我使用命令行aws configure命令配置我的凭据,然后打开〜/ .aws / config文件并确保它是正确的。我也跑了
aws configure list
并收到以下内容:
Name Value Type Location
---- ----- ---- --------
profile <not set> None None
access_key ****************B6YQ config_file ~/.aws/config
secret_key ****************Vstu config_file ~/.aws/config
region cn-north-1 config_file ~/.aws/config
当这不起作用时,我尝试为root用户和IAM用户重新生成新凭据,但仍然无效。 我尝试使用IAM模拟器来查看S3 put命令是否可以正常运行。
有没有人对我能做什么有任何想法?
答案 0 :(得分:0)
AWS CLI使用提供商链在多个不同位置查找AWS凭证,包括系统或用户环境变量以及本地AWS配置文件。
AWS CLI按以下顺序查找凭据和配置设置:
命令行选项 - 可以将区域,输出格式和配置文件指定为命令选项以覆盖默认设置。
环境变量 -
AWS_ACCESS_KEY_ID
,AWS_SECRET_ACCESS_KEY
等AWS凭证文件 - 位于Linux,MacOS或Unix上的
~/.aws/credentials
或Windows上的C:\Users\USERNAME \.aws\credentials
。除默认配置文件外,此文件还可包含多个命名配置文件。CLI配置文件 - 通常位于Linux,macOS或Unix上的
~/.aws/config
或Windows上的C:\Users\USERNAME \.aws\config
。此文件可以包含默认配置文件,命名配置文件以及每个配置文件的CLI特定配置参数。- 醇>
实例配置文件凭据 - 这些凭据可用于具有指定实例角色的EC2实例,并通过Amazon EC2元数据服务提供。
您也可能拥有AWS_DEFAULT_PROFILE
集,该集将覆盖配置文件中使用的凭据。