Almacenamiento seguro de claves privadas en Amazon S3 - AWS Elastic Beanstalk

Almacenamiento seguro de claves privadas en Amazon S3

La clave privada que utiliza para firmar el certificado público es privada y no debe confirmarse en el código fuente. Para evitar que las claves privadas se guarden en los archivos de configuración, puede cargarlas en Amazon S3 y configurar Elastic Beanstalk para descargar el archivo de Amazon S3 durante la implementación de la aplicación.

En el siguiente ejemplo, se muestran las secciones Resources (Recursos) y files (archivos) de un configuration file (archivo de configuración) que descarga un archivo de claves privadas de un bucket de Amazon S3.

ejemplo .ebextensions/privatekey.config

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://elasticbeanstalk-us-west-2-123456789012.s3.us-west-2.amazonaws.com/server.key

En el ejemplo, sustituya el nombre y la URL del bucket por sus propios valores. La primera entrada de este archivo agrega un método de autenticación llamado S3Auth a los metadatos del grupo de Auto Scaling del entorno. Si ha configurado un perfil de instancia personalizado para su entorno, se utilizará dicho perfil; de lo contrario, se aplicará el valor predeterminado: aws-elasticbeanstalk-ec2-role. El perfil de instancia predeterminado tiene permiso para leer el contenido del bucket de almacenamiento de Elastic Beanstalk. Si utiliza otro bucket, agregue permisos al perfil de instancia.

La segunda entrada utiliza el método de autenticación S3Auth para descargar la clave privada de la URL especificada y guardarla en /etc/pki/tls/certs/server.key. El servidor proxy puede leer la clave privada en esta ubicación para terminar las conexiones HTTPS en la instancia.

El perfil de instancia asignado a las instancias EC2 del entorno deben tener permiso para leer el objeto de clave en el bucket especificado. Compruebe que el perfil de instancia tiene permiso para leer el objeto en IAM, y que los permisos del bucket y del objeto no prohíben el perfil de instancia.

Para ver los permisos de un bucket

  1. Abra la consola de administración de Amazon S3.

  2. Elija un bucket.

  3. Seleccione Properties y después Permissions.

  4. Compruebe que su cuenta es beneficiaria del bucket con permisos de lectura.

  5. Si hay una política de bucket asociada, seleccione Bucket policy (Política de bucket) para ver los permisos asignados al bucket.