在 env 中找到部分凭据,缺少:AWS_SECRET_ACCESS_KEY 使用 Bitbucket 管道

Partial credentials found in env, missing: AWS_SECRET_ACCESS_KEY using Bitbucket pipeline

我在执行命令 运行 时收到在 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 因为我使用网络身份令牌生成临时凭据不需要它。

以下是 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 但运气不好。 有人可以帮我吗?

呃...我苦苦挣扎了两天,最后在Whosebug上发布后,我想到了清除ENV变量并且它起作用了。 AWS 密钥以某种方式存储在 env 中,不确定如何存储?我刚刚通过下面的 cmd 清除了它们并且它起作用了:D

- unset AWS_ACCESS_KEY_ID
- unset AWS_SECRET_ACCESS_KEY