如何获取AWS ECS泊坞化器容器中的AWS凭证?

首先,我使用服务器环境:

  • sever:django + nginx + uwsgi
  • 云:docker+ AWS ECS
  • 日志logging:AWS CloudWatch日志服务+了望塔第三方应用程序

我正在使用AWS CloudWatch日志服务的了望第三方应用程序。 所以,我需要将AWS凭据信息提供给Docker容器。

在本地testing时, docker run -v $ HOME / .aws: /root/.aws --rm -it -p 8080: 80 image_name将本地凭据连接到卷。

但是我不知道如何在AWS ECS中应用它。

http://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-config.html

我正在关注上面的文章,并按照上面的文章编写了.aws / ecs.confg文件。

 AWS_DEFAULT_REGION=ap-northeast-1 AWS_ACCESS_KEY_ID=bbbbbbbbb AWS_SECRET_ACCESS_KEY=aaaaaaaaaaaa 

我添加命令到Dockerfile喜欢贝洛。

 COPY .aws/ecs.config /etc/ecs/ecs.config 

但是,访问ECS时发生内部服务器错误。

我也尝试在“任务定义”时为容器分配“IAMangular色”,即使您创build“CloudWatchLogsFullAccess IAMangular色”,“任务定义”创build屏幕angular色下拉列表中也不会显示任何内容。

如果您有其他方法,请帮助我。

谢谢。

这是我的日志logging设置。 在本地testing中,测井工作正常。

 LOGGING = { 'version': 1, 'disable_existing_loggers': False, 'formatters': { 'verbose': { 'format': '%(levelname)s %(asctime)s %(module)s %(process)d %(thread)d %(message)s' }, 'simple': { 'format': '%(levelname)s %(message)s' }, }, 'handlers': { 'watchtower': { 'level': 'DEBUG', 'class': 'watchtower.CloudWatchLogHandler', 'formatter': 'verbose', }, 'console': { 'level': 'INFO', 'class': 'logging.StreamHandler', }, }, 'loggers': { 'django': { 'handlers': ['watchtower', 'console'], 'level': 'INFO', 'propagate': True, }, 'django.user': { 'handlers': ['watchtower'], 'level': DJANGO_LOG_LEVEL, 'propagate': False, }, 'django.partner': { 'handlers': ['watchtower'], 'level': DJANGO_LOG_LEVEL, 'propagate': False, }, } } 

使用Amazon ECS任务的IAMangular色,您可以指定任务中的容器可用于访问AWS资源的IAMangular色。