3

在运行以下命令时,我在 env 错误中发现了部分凭据。

aws sts 假设-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

我见过这个这个但没有运气。有人可以帮我吗?

4

1 回答 1

3

呃......我挣扎了两天,最后在stackoverflow上发布后,我想到了清除ENV变量并且它起作用了。不知何故,AWS Keys 被存储在 env 中,不确定如何?我刚刚通过下面的 cmd 清除了它们,它起作用了:D

- unset AWS_ACCESS_KEY_ID
- unset AWS_SECRET_ACCESS_KEY
于 2021-12-15T13:44:20.797 回答