

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Almacenamiento seguro de claves privadas en Amazon S3
<a name="https-storingprivatekeys"></a>

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)](environment-resources.md) y [files (archivos)](customize-containers-ec2.md#linux-files) de un [archivo de configuración](ebextensions.md) que descarga un archivo de claves privadas de un bucket de Amazon S3.

**Example .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 escalado automático del entorno. Si ha configurado un [perfil de instancia](concepts-roles-instance.md) 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](iam-instanceprofile.md#iam-instanceprofile-addperms).

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](https-singleinstance.md).

El perfil de instancia asignado a las EC2 instancias de su entorno debe tener permiso para leer el objeto clave del bucket especificado. [Compruebe que el perfil de instancia tiene permiso](iam-instanceprofile.md#iam-instanceprofile-verify) 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](https://console.aws.amazon.com/s3/home).

1. Elija un bucket.

1. Seleccione **Properties** y después **Permissions**.

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

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