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.
Mueva los secretos codificados a AWS Secrets Manager
Si tiene secretos de texto sin formato en su código, le recomendamos que los rote y los almacene en Secrets Manager. Al mover el secreto a Secrets Manager se soluciona el problema de que sea visible para cualquiera que vea el código porque, en el futuro, el código recupera el secreto directamente de Secrets Manager. Al rotar el secreto se anula el secreto codificado actual para que ya no sea válido.
Para ver los secretos de credenciales de base de datos, consulte Mover credenciales de base de datos codificadas a AWS Secrets Manager.
Antes de comenzar, debe determinar quién necesita acceso al secreto. Te recomendamos que utilices dos IAM funciones para gestionar los permisos de acceso a tu secreto:
-
Un rol que administra los secretos de su organización. Para obtener más información, consulte Permisos de Secrets Manager. Creará y rotará el secreto utilizando este rol.
-
Un rol que puede usar el secreto en tiempo de ejecución, por ejemplo, en este tutorial que usas
RoleToRetrieveSecretAtRuntime
. El código asume esta función para recuperar el secreto. En este tutorial, otorga al rol solamente el permiso para recuperar un valor secreto y concede el permiso mediante la política de recursos del secreto. Si desea conocer otras alternativas, consulte Pasos a seguir a continuación.
Pasos:
Paso 1: Crear el secreto
El primer paso es copiar el secreto codificado existente en Secrets Manager. Si el secreto está relacionado con un AWS recurso, guárdelo en la misma región que el recurso. De lo contrario, guárdelo en la región que tenga la menor latencia para su caso de uso.
Para crear un secreto (consola)
Abra la consola de Secrets Manager en https://console.aws.amazon.com/secretsmanager/
. -
Elija Almacenar un secreto nuevo.
-
En la página Choose secret type (Elegir tipo de secreto), haga lo siguiente:
-
En Secret type (Tipo de secreto), elija Other type of secret (Otro tipo de secreto).
-
Ingrese su secreto como Key/value pairs (pares clave/valor) o en Plaintext (texto sin formato). Presentamos algunos ejemplos:
-
Para Clave encriptada, seleccione aws/secretsmanager para utilizar Clave administrada de AWS para Secrets Manager. No se aplica ningún cargo por el uso de esta clave. También puede utilizar su propia clave administrada por el cliente, por ejemplo, para acceder al secreto desde otro Cuenta de AWS. Para obtener información sobre los costos por usar una clave administrada por el cliente, consulte Precios.
-
Elija Next (Siguiente).
-
-
En la página Choose secret type (Elegir tipo de secreto), haga lo siguiente:
-
Ingrese un Nombre de secreto descriptivo y una Descripción.
-
En Permisos de recursos, seleccione Edit permissions (Editar permisos). Pegue la siguiente política, que
RoleToRetrieveSecretAtRuntime
permite recuperar el secreto, y luego elija Guardar.{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::
AccountId
:role/
" }, "Action": "secretsmanager:GetSecretValue", "Resource": "*" } ] }RoleToRetrieveSecretAtRuntime
-
En la parte inferior de la página, elija Siguiente.
-
-
En la página Configure rotation (Configurar rotación), mantenga la rotación desactivada. Elija Next (Siguiente).
-
En la página Review (Revisar), revise los detalles del secreto y, a continuación, elija Store (Almacenar).
Paso 2: Actualización del código
El código debe asumir la IAM función RoleToRetrieveSecretAtRuntime
para poder recuperar el secreto. Para obtener más información, consulte Cambiar a un IAM rol (AWS API).
A continuación, actualice el código para recuperar el secreto de Secrets Manager utilizando el código de ejemplo proporcionado por Secrets Manager.
Para encontrar el código de muestra
Abra la consola de Secrets Manager en https://console.aws.amazon.com/secretsmanager/
. -
En la página Secrets (Secretos), elija el secreto.
-
Baje hasta Código de muestra. Elija su lenguaje de programación y, a continuación, copie el fragmento de código.
En su aplicación, elimine el secreto codificado y pegue el fragmento de código. Según el idioma del código, es posible que tenga que añadir una llamada a la función o método del fragmento.
Compruebe que su aplicación funciona según lo esperado con el secreto en lugar del secreto codificado.
Paso 3: Actualizar el secreto
El último paso consiste en revocar y actualizar el secreto codificado. Consulte la fuente del secreto para encontrar instrucciones para revocar y actualizar el secreto. Por ejemplo, es posible que tenga que desactivar el secreto actual y generar un nuevo secreto.
Para actualizar el secreto con el nuevo valor
Abra la consola de Secrets Manager en https://console.aws.amazon.com/secretsmanager/
. -
Seleccione Secrets (Secretos) y luego elija el secreto.
-
En la página Detalles del secreto, baje hasta Recuperar valor del secreto y seleccione Edit (Editar).
-
Actualice el secreto y, a continuación, seleccione Save (Guardar).
A continuación, compruebe que su aplicación funciona según lo esperado con el nuevo secreto.
Pasos a seguir a continuación
A continuación, algunas ideas a tener en cuenta después de eliminar un secreto codificado de su código:
-
Para encontrar secretos codificados en sus aplicaciones de Java y Python, le recomendamos Amazon CodeGuru Reviewer.
-
Puede mejorar el rendimiento y reducir los costos almacenando secretos en caché. Para obtener más información, consulte Obtenga secretos de AWS Secrets Manager.
-
Para los secretos a los que accede desde varias regiones, considere la posibilidad de replicar su secreto para mejorar la latencia. Para obtener más información, consulte Replicar secretos de AWS Secrets Manager en todas las regiones.
-
En este tutorial,
RoleToRetrieveSecretAtRuntime
solo concedió el permiso para recuperar el valor secreto. Para otorgar más permisos al rol, por ejemplo, para obtener metadatos sobre el secreto o para ver una lista de secretos, consulte Políticas basadas en recursos. -
En este tutorial, otorgaste el permiso
RoleToRetrieveSecretAtRuntime
mediante la política de recursos del secreto. Para ver otras formas de conceder permiso, consulte Políticas basadas en identidad.