【问题标题】:Partial credentials found in env, missing: AWS_SECRET_ACCESS_KEY在 env 中找到的部分凭证,缺少:AWS_SECRET_ACCESS_KEY
【发布时间】:2021-09-13 12:38:54
【问题描述】:

刚刚使用我的 AWS 访问和密钥在我的计算机上配置了 AWS CLI。当我尝试使用 AWS CLI 时,虽然它给了我这个错误。

Partial credentials found in env, missing: AWS_SECRET_ACCESS_KEY

我去了 ~/.aws/config,果然这些凭证都在那里,包括 AWS 密钥,所以我不确定它为什么对我大喊大叫。

【问题讨论】:

  • 您的环境中是否设置了 AWS_SECRET_ACCESS_KEY?听起来 AWS_ACCESS_KEY_ID(或 AWS_ACCESS_KEY)是在环境中设置的,但不是 AWS_SECRET_KEY(或 AWS_SECRET_ACCESS_KEY)。根据您的编程环境和您使用的AWSCredentialsProvider,它可能会忽略您的~/.aws/credentials 文件。
  • 除了确保文件到位外,我还必须手动将这些变量导出到环境中
  • 同意@stdunbar,如果设置了环境变量并且环境变量包含一些其他值,则忽略该文件。

标签: amazon-web-services aws-cli secret-key aws-ecr


【解决方案1】:

你应该有这个文件~/.aws/credentials 内容格式如下:

[default]
aws_access_key_id = XXXXXXXXXXXXXXXXXX
aws_secret_access_key = XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

【讨论】:

  • 嗯,我检查了凭证文件,两个密钥都在那里。我什至执行了导出 AWS_PROFILE=default,但也没有用。
  • nvm 弄明白了,谢谢卡洛斯!
  • 除此之外,您还需要确保所有这些变量都已填充到您的环境变量中。没有它,即使我的文件格式是正确的,它对我也不起作用。设置环境变量后,它开始工作。
  • 我有这个文件,它已被导出,但在运行aws ecr get-login 时仍然收到 OP Partial credentials found in env, missing: AWS_SECRET_ACCESS_KEY 错误。秘密 id 中有一个正斜杠,我想知道它是否是这样的?
【解决方案2】:

对于遇到同样问题的任何人 - 这是对我有用的解决方案:

如果您使用的是 Windows - 请检查您的系统变量中是否未设置 AWS_ACCESS_KEY_ID。 AWS CLI 使用名为 configuration provider chain 的东西 - 环境变量优先于配置文件。就我而言,不知何故我只设置了 AWS_ACCESS_KEY_ID 因此错误消息。

【讨论】:

  • 当我发现这条评论时,我离沮丧而失去理智只有几分钟的路程。谢谢!
【解决方案3】:

如果您使用的是 MacOS,这可能是因为您在环境变量中设置了其他凭据。

将新凭据设置为环境变量可能会解决您的问题。

为此,请在终端中运行:

export AWS_ACCESS_KEY_ID=X
export AWS_SECRET_ACCESS_KEY=Y
export AWS_DEFAULT_REGION=REGION

将 X、Y 和 REGION 替换为与您的应用程序对应的值。

源文档:https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-envvars.html

【讨论】:

    猜你喜欢
    • 2022-01-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多