bean de feijão elástico da AWS: Errno 404 baixando arquivo do S3 na implantação

1

Estou seguindo os documentos sobre a obtenção de certificados do s3 quando um nova instância é implantada no pé de feijão elástico. As instruções são bastante diretas: crie um arquivo de configuração em app-root/.ebextensions que diz:

Resources:
  AWSEBAutoScalingGroup:
    Metadata:
      AWS::CloudFormation::Authentication:
        S3Auth:
          type: "s3"
          buckets: ["elasticbeanstalk-us-west-2-123456789012"]
          roleName: 
            "Fn::GetOptionSetting": 
              Namespace: "aws:autoscaling:launchconfiguration"
              OptionName: "IamInstanceProfile"
              DefaultValue: "aws-elasticbeanstalk-ec2-role"
files:
  # Private key
  /etc/pki/tls/certs/server.key:
    mode: "000400"
    owner: root
    group: root
    authentication: "S3Auth"
    source: https://s3-us-west-2.amazonaws.com/elasticbeanstalk-us-west-2-123456789012/server.key

onde os links apontam para o local no seu certificado / chave / o que for.

No entanto, quando eu implantar meu pacote de aplicativos (zip), a compilação falha com [Errno 404] HTTP Error 404... , sugerindo que meus arquivos não podem ser encontrados no local especificado contrariamente ao fato que os arquivos são no local especificado preciso desde que eu posso aws s3 cp s3://<pasted-link-to-file> . eles da minha linha de comando (mesma região de curso).

Além disso, na superfície, não parece ser um problema de permissões porque eu esperaria algo como "acesso negado" se fosse; a política de bucket concede as seguintes ações a aws-elasticbeanstalk-ec2-role :

"Action": [
    "s3:ListBucket",
    "s3:ListBucketVersions",
    "s3:GetObject",
    "s3:GetObjectVersion"
]

Também anexei a política de acesso completo do s3 a aws-elasticbeanstalk-ec2-role no IAM.

Mas o fato de eu poder acessar os arquivos de cli e aws-elasticbeanstalk-ec2-role não pode encontrá-los, sugere que a) algo poderia estar errado com minha configuração: arquivos em s3, s3 permissões, config em .ebextensions ou b) aws docs sobre este assunto estão completamente fora de sintonia.

  • Esta é uma pergunta bastante ampla, mas alguém pode sugerir o que mais poderia dar errado com esse tipo de configuração?
por Alexander F. 09.04.2018 / 22:35

1 resposta

1

Resolveu especificando explicitamente:

roleName: "aws-elasticbeanstalk-ec2-role"

em vez de:

roleName: 
  "Fn::GetOptionSetting": 
    Namespace: "aws:autoscaling:launchconfiguration"
    OptionName: "IamInstanceProfile"
    DefaultValue: "aws-elasticbeanstalk-ec2-role"

em .ebextensions/my_conf.config .

Isso pode acontecer porque a chave do arquivo de configuração e a política S3 se referem a "roleName" e não a "IamInstanceProfile".

    
por 09.04.2018 / 23:59