在 env 中找到的部分凭证,缺少:AWS_SECRET_ACCESS_KEY 使用 Bitbucket 管道
Posted
技术标签:
【中文标题】在 env 中找到的部分凭证,缺少:AWS_SECRET_ACCESS_KEY 使用 Bitbucket 管道【英文标题】:Partial credentials found in env, missing: AWS_SECRET_ACCESS_KEY using Bitbucket pipeline 【发布时间】:2022-01-18 16:17:39 【问题描述】:在运行以下命令时,我在 env 错误中发现了部分凭据。
aws sts assume-role-with-web-identity --role-arn $AWS_ROLE_ARN --role-session-name build-session --web-identity-token $BITBUCKET_STEP_OIDC_TOKEN --duration-seconds 1000
我使用的是低于 AWS CLI 和 Python 的版本-
aws-cli/2.2.9 Python/3.8.8 Linux/5.4.92-flatcar exe/x86_64.debian.11 prompt/off
我还在环境变量中设置了 AWS_WEB_IDENTITY_TOKEN_FILE 和 AWS_ROLE_ARN。我仍然收到此错误。我没有配置 aws 凭据 ~/.aws/credentials
和配置文件 ~/.aws/config
,因为我使用 Web 身份令牌来生成临时凭据,所以这不是必需的。
下面是bitbucket流水线步骤:
- step:
oidc: true
name: Build
image: python:3.7
script:
- export AWS_REGION=us-east-2
- export AWS_ROLE_ARN=arn:aws:iam::XXXXXX:role/bitbucket-pipelines-sso
- export AWS_WEB_IDENTITY_TOKEN_FILE=$(pwd)/web-identity-token
- echo $BITBUCKET_STEP_OIDC_TOKEN > $(pwd)/web-identity-token
- curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64-2.2.9.zip" -o "awscliv2.zip" && unzip awscliv2.zip
- ./aws/install -i /usr/local/aws-cli -b /usr/local/bin
- aws sts assume-role-with-web-identity --role-arn $AWS_ROLE_ARN --role-session-name build-session --web-identity-token $BITBUCKET_STEP_OIDC_TOKEN --duration-seconds 1000 >> irp-cred.txt
我见过this、this,但没有运气。 有人可以帮帮我吗?
【问题讨论】:
【参考方案1】:呃......我挣扎了两天,最后在***上发布后,我想到了清除ENV变量并且它起作用了。 不知何故,AWS Keys 被存储在 env 中,不确定如何?我刚刚通过下面的 cmd 清除了它们,它起作用了:D
- unset AWS_ACCESS_KEY_ID
- unset AWS_SECRET_ACCESS_KEY
【讨论】:
是的,这是没有博文的文档。我也对此很好奇,所以我什至查看了atlassian/aws-ecr-push-image
的来源,他们在使用 OIDC 时会这样做以上是关于在 env 中找到的部分凭证,缺少:AWS_SECRET_ACCESS_KEY 使用 Bitbucket 管道的主要内容,如果未能解决你的问题,请参考以下文章