Docker CLI 不理解 AWS CLI SSO 凭证

问题描述 投票:0回答:1

我正在使用 AWS 的单点登录 (SSO) 身份验证。

在终端中,我成功登录我的 SSO 帐户:

aws sso login --profile dev

导航到 docker-compose.yml 文件的目录,并在 Amazon ECS 上下文中使用 Docker,命令

docker compose up -d
失败并显示:

NoCredentialProviders: no valid providers in chain. Deprecated.
        For verbose messaging see aws.Config.CredentialsChainVerboseErrors

我已删除旧的(非 SSO)访问密钥和配置文件:

~/.aws/config

~/.aws/credentials

所以现在上述目录中存在的就是我的 SSO 帐户。

在 SSO(使用 IAM 用户)之前,

docker compose up -d
按预期工作,因此我认为问题在于 Docker 难以通过 CLI 上的 SSO 连接到 AWS。

非常感谢这里的任何帮助。

有关 Docker ECS 集成的文档:https://docs.docker.com/cloud/ecs-integration/

docker-compose.yml
文件如下所示:

version: "3.4"

x-aws-vpc: "vpc-xxxxx"
x-aws-cluster: "test"
x-aws-loadbalancer: "test-nlb"

services:
  test:
    build:
      context: ./
      dockerfile: Dockerfile
      target: development
    image: xxx.dkr.ecr.eu-west-1.amazonaws.com/xxx:10
    environment:
      - AWS_ACCESS_KEY_ID=${AWS_ACCESS_KEY_ID}
      - AWS_SECRET_ACCESS_KEY=${AWS_SECRET_ACCESS_KEY}
      - ENABLE_SWAGGER=${ENABLE_SWAGGER:-true}
      - LOGGING_LEVEL=${LOGGING_LEVEL:-INFO}
    ports:
      - "9090:9090"
amazon-web-services docker-compose single-sign-on amazon-ecs
1个回答
0
投票

解决方案是这样的:

export AWS_PROFILE=dev
docker login -u AWS -p $(aws ecr get-login-password) xxx.dkr.ecr.eu-west-1.amazonaws.com/xxx
© www.soinside.com 2019 - 2024. All rights reserved.