AWS Cloudwatch日志与Docker容器 – NoCredentialProviders:链中没有有效的提供者

我的docker – 撰写文件:

version: '2' services: scraper: build: ./Scraper/ logging: driver: "awslogs" options: awslogs-region: "eu-west-1" awslogs-group: "doctors-logs" awslogs-stream: "scrapers-stream" volumes: - ./Scraper/spiders:/spiders 

我已经使用aws configure命令将我的AWS证书添加到我的mac,并且证书正确存储在〜/ .aws / credentials中

当我运行docker-compose时,出现以下错误:

错误:刮板无法启动服务刮板:无法初始化日志驱动程序:NoCredentialProviders:链中没有有效的提供程序。

已过时。 有关详细消息,请参阅aws.Config.CredentialsChainVerboseErrors

错误:提出项目时遇到错误。

我相信这是因为我需要在Docker守护进程中设置AWS凭证,但是我无法弄清楚在macOs Sierra上这是如何完成的。

我想通了。 在滚动您自己的EC2实例时(不使用Beanstalk等自动化解决scheme),您需要为您的EC2实例分配一个angular色,以便能够与其他AWS服务进行通信。

政策

该策略是Docker文档在https://docs.docker.com/engine/admin/logging/awslogs/中提供的策略

 { "Version": "2012-10-17", "Statement": [ { "Action": [ "logs:CreateLogStream", "logs:PutLogEvents" ], "Effect": "Allow", "Resource": "*" } ] } 

那么您需要将此策略附加到angular色

EC2角色

该angular色是第一个名为“Amazon EC2”的读取“允许EC2实例以您的名义呼叫AWS服务”的angular色。

由于您仅限于访问CloudWatch,因此您可以轻松前往。 然后,在您的EC2列表中,使用“附加/replaceIAMangular色”将angular色附加到您的实例:

IAM角色

附加IAM角色

你应该很好走!