Armazenamento da configuração da instância de contêiner do Amazon ECS no Amazon S3 - Amazon Elastic Container Service

Armazenamento da configuração da instância de contêiner do Amazon ECS no Amazon S3

A configuração do agente de contêiner do Amazon ECS é controlada com a variável de ambiente. As variantes do Linux da AMI otimizada para Amazon ECS procuram essas variáveis em /etc/ecs/ecs.config quando o agente de contêiner é iniciado e configuram o agente adequadamente. Determinadas variáveis de ambiente inócuas, como ECS_CLUSTER, podem ser transmitidas para a instância de contêiner na inicialização com os dados de usuário do Amazon EC2 e gravadas nesse arquivo sem consequências. Contudo, outras informações confidenciais, como suas credenciais da AWS ou a variável ECS_ENGINE_AUTH_DATA, nunca devem ser passadas para uma instância em dados de usuário ou ser gravadas em /etc/ecs/ecs.config de forma a permitir que sejam exibidas em um arquivo .bash_history.

Armazenar informações de configuração em um bucket privado no Amazon S3 e conceder acesso somente leitura à função do IAM de instância de contêiner é uma maneira segura e prática de permitir a configuração da instância de contêiner na inicialização. É possível armazenar uma cópia do seu arquivo ecs.config em um bucket privado. É possível usar os dados do usuário do Amazon EC2 para instalar a AWS CLI e copiar as informações de configuração em /etc/ecs/ecs.config quando a instância for iniciada.

Para armazenar um arquivo ecs.config no Amazon S3
  1. Você deve conceder permissões para ter acesso somente leitura ao Amazon S3 ao perfil de instância de contêiner (ecsInstanceRole). É possível fazer isso ao atribuir AmazonS3ReadOnlyAccess ao perfil ecsInstanceRole. Para obter informações sobre como anexar uma política a um perfil, consulte Modificar a política de permissões de uma função (console) no Guia do usuário do AWS Identity and Access Management.

  2. Crie um arquivo ecs.config com variáveis de configuração válidas do agente Amazon ECS usando o formato a seguir. Este exemplo configura a autenticação de registro privado. Para ter mais informações, consulte Uso de imagens de contêiner que não são da AWS no Amazon ECS.

    ECS_ENGINE_AUTH_TYPE=dockercfg ECS_ENGINE_AUTH_DATA={"https://index.docker.io/v1/":{"auth":"zq212MzEXAMPLE7o6T25Dk0i","email":"email@example.com"}}
    nota

    Para obter uma lista completa das variáveis de configuração do agente do Amazon ECS disponíveis, consulte Agente de contêiner do Amazon ECS no GitHub.

  3. Para armazenar o arquivo de configuração, crie um bucket privado no Amazon S3. Para obter mais informações, consulte Criar um bucket no Guia do usuário do Amazon Simple Storage Service.

  4. Faça upload do arquivo ecs.config no bucket do S3. Para obter mais informações, consulte Adicionar um objeto a um bucket no Guia do Amazon Simple Storage Service.

Para carregar um arquivo ecs.config do Amazon S3 na inicialização
  1. Execute os procedimentos anteriores nesta seção para permitir acesso somente leitura do Amazon S3 às suas instâncias de contêiner e armazene um arquivo ecs.config em um bucket do S3 privado.

  2. Inicie novas instâncias de contêiner e use o script de exemplo apresentado a seguir nos dados do usuário do EC2. O script instala a AWS CLI e copia o arquivo de configuração para /etc/ecs/ecs.config. Para ter mais informações, consulte Iniciar uma instância de contêiner do Linux do Amazon ECS.

    #!/bin/bash yum install -y aws-cli aws s3 cp s3://your_bucket_name/ecs.config /etc/ecs/ecs.config