Amazon web services AWS访问密钥Id在我们的记录中不存在
我创建了一个新的访问密钥,并在AWS CLI中使用Amazon web services AWS访问密钥Id在我们的记录中不存在,amazon-web-services,amazon-s3,aws-cli,Amazon Web Services,Amazon S3,Aws Cli,我创建了一个新的访问密钥,并在AWS CLI中使用AWS configure对其进行了配置。它在~/.aws/config中创建了.ini文件。当我运行aws s3 ls时,它给出: 调用ListBucket操作时发生客户端错误(InvalidAccessKeyId):您提供的AWS访问密钥Id在我们的记录中不存在 AmazonS3FullAccess策略也附加到用户。如何解决这个问题 看起来像是~/.aws/credentials未创建。尝试使用以下内容手动创建它: [default] aws
AWS configure
对其进行了配置。它在~/.aws/config
中创建了.ini
文件。当我运行aws s3 ls时,它给出:
调用ListBucket操作时发生客户端错误(InvalidAccessKeyId):您提供的AWS访问密钥Id在我们的记录中不存在
AmazonS3FullAccess
策略也附加到用户。如何解决这个问题 看起来像是~/.aws/credentials
未创建。尝试使用以下内容手动创建它:
[default]
aws_access_key_id = sdfesdwedwedwrdf
aws_secret_access_key = wedfwedwerf3erfweaefdaefafefqaewfqewfqw
(在我的测试盒上,如果我在没有凭据文件的情况下运行aws
命令,则错误为无法找到凭据。您可以通过运行“aws configure”来配置凭据。
)
您是否可以尝试从尝试运行aws的同一个shell运行这两个命令:
$ export AWS_ACCESS_KEY_ID=AKIAIOSFODNN7EXAMPLE
$ export AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
然后尝试
aws
命令。另一个可能导致这种情况的原因,即使所有设置都正确,是从生成文件运行该命令。例如,我有一条规则:
awssetup:
aws configure
aws s3 sync s3://mybucket.whatever .
当我运行
make awssetup
时,我得到一个错误:致命错误:调用ListObjects操作时发生错误(InvalidAccessKeyId):您提供的AWS访问密钥Id在我们的记录中不存在。
。但是从命令行运行它是有效的。可能是您通过env变量(bash_profile)导出了旧密钥,并且由于env变量的优先级高于凭证文件,因此会出现错误“访问密钥id不存在”
从bash_配置文件中删除旧密钥,您就可以开始了
发生在我之前的一次,当时我忘了我在bash_配置文件中有凭据,这让我头痛了好长一段时间:)看起来环境变量AWS_ACCESS\u KEY\u ID和AWS_SECRET\u ACCESS\u KEY已经设置了一些值 如果是这样的话,在执行下面的命令时可以看到一些值
echo $AWS_SECRET_ACCESS_KEY
echo $AWS_ACCESS_KEY_ID
unset AWS_ACCESS_KEY_ID
unset AWS_SECRET_ACCESS_KEY
如果使用的是aws configure,则需要重置这些变量
要重置,请执行以下命令
echo $AWS_SECRET_ACCESS_KEY
echo $AWS_ACCESS_KEY_ID
unset AWS_ACCESS_KEY_ID
unset AWS_SECRET_ACCESS_KEY
对我来说,我依靠
IAM EC2角色
为我们的机器提供访问特定资源的权限
我甚至不知道在~/.aws/credentials
上有一个凭证
文件,直到我在IAM控制台上旋转/删除了一些AccessKey以加强安全性,这突然使其中一个脚本在一台机器上停止工作
删除该
凭证
文件为我修复了它。您可以使用在bash_配置文件中配置配置文件
<profile_name>
aws_access_key_id = <access_key>
aws_secret_access_key = <acces_key_secret>
aws\u访问\u密钥\u id=
aws\u密码\u访问\u密钥=
如果您使用多个配置文件。然后使用:
aws s3 ls --profile <profile_name>
aws s3 ls--配置文件
所有投票赞成的答案都不适合我。最后,我使用客户端API在python脚本中传递凭据
import boto3
client = boto3.client(
's3',
aws_access_key_id=ACCESS_KEY,
aws_secret_access_key=SECRET_KEY,
aws_session_token=SESSION_TOKEN)
请注意,aws_会话_令牌参数是可选的。不建议用于公共工作,但简单试用会使生活更轻松。我尝试了以下步骤,效果良好: 1.光盘~ 2.cd.aws 3.六全权证书 4.删除 aws\u访问\u密钥\u id= aws\u密码\u访问\u密钥= 将光标放在该行上,然后按dd(vi命令删除该行)
删除行和检查增益。再添加一个答案,因为以上所有案例都不适用于我 在AWS控制台中,检查您的凭据(我的安全凭据),并查看您是否输入了正确的凭据 感谢这次讨论:
如果您有AWS教育帐户,并且遇到此问题: 调用ListBucket操作时发生错误(InvalidAccessKeyId):您提供的AWS访问密钥Id在我们的记录中不存在” 解决方案如下:
C:///code>驱动器,在windows主文件夹中搜索.aws
文件夹
您可能需要设置
AWS\u DEFAULT\u REGION
环境变量。需要在凭据中添加AWS\u session\u token
,以及AWS\u access\u key\u id
,AWS\u secret\u access\u key
这可能会发生,因为您的AWS secret access key\u密钥出现问题ode>AWS Amplify
,我遇到了这个问题。最快的方法是创建一对新的AWS访问密钥ID
和AWS秘密访问密钥
,然后再次运行AWS configure
。
我为我工作。我希望这会有所帮助。对于那些运行aws s3 ls的人来说,并获得此异常。确保您对所提供的aws帐户下的所有区域都有权限。当运行aws s3 ls时,您尝试提取aws帐户下的所有s3存储桶。因此,如果您没有对所有区域的权限,您将获得此异常-
调用ListBucket操作时发生错误(InvalidAccessKeyId):您提供的AWS访问密钥Id在我们的记录中不存在。
查看更多信息。假设您已经检查了
Access Key ID
和Secret
。您可能需要检查团队提供者信息.json文件,该文件可以在放大/
文件夹下找到
"awscloudformation": {
"AuthRoleName": "<role identifier>",
"UnauthRoleArn": "arn:aws:iam::<specific to your account and role>",
"AuthRoleArn": "arn:aws:iam::<specific to your account and role>",
"Region": "us-east-1",
"DeploymentBucketName": "<role identifier>",
"UnauthRoleName": "<role identifier>",
"StackName": "amplify-test-dev",
"StackId": "arn:aws:cloudformation:<stack identifier>",
"AmplifyAppId": "<id>"
}
“awscloudformation”:{
“AuthRoleName”:“,
“学习”:“arn:aws:iam::”,
“AuthRoleArn”:“arn:aws:iam::”,
“区域”:“us-east-1”,
“DeploymentBucketName”:“”,
“未授权名称”:“,
“StackName”:“放大测试开发”,
“StackId”:“arn:aws:cloudformation:”,
“appid”:”
}
此处引用的IAM角色应为b
aws s3 ls
aws --endpoint-url=https://<your_s3_endpoint_url> s3 ls
s3.config.update({
accessKeyId: 'ACCESS_KEY_ID',
secretAccessKey: 'SECRET_ACCESS_KEY',
region: 'REGION',
});
path = .aws/
filename = credentials
export aws_access_key_id = AK###########GW
export aws_secret_access_key = g#############################J