Uso de credenciales secretas de almacén con AWS Secrets Manager

Describe el uso de credenciales de secreto de almacén, donde el secreto de credencial (contraseña) se almacena en AWS Secrets Manager.

Puede utilizar credenciales secretas de almacén para acceder a recursos en la nube, acceder a otras bases de datos con enlaces de base de datos o utilizar en cualquier lugar donde se necesiten credenciales de tipo de nombre de usuario/contraseña.

Requisitos para crear credenciales secretas de almacén con AWS Secrets Manager

Describe los requisitos previos necesarios para utilizar credenciales de secreto de almacén con AWS Secrets Manager.

Para crear credenciales de secreto de almacén en las que el secreto se almacene en AWS Secrets Manager, primero realice los requisitos necesarios.

  1. Cree un secreto con AWS Secrets Manager y copie el ARN secreto de AWS.

    Consulte Gestor de secretos de AWS para obtener más información.

  2. Realice los requisitos previos de gestión de AWS para usar nombres de recurso de Amazon (ARN).
  3. Active la autenticación de principal de AWS para proporcionar acceso al secreto en AWS Secrets Manager.

    Por ejemplo, en la ejecución de la instancia de Autonomous Database:

    BEGIN
        DBMS_CLOUD_ADMIN.ENABLE_PRINCIPAL_AUTH(                                     
              provider => 'AWS',
              params =>
                 JSON_OBJECT( 
                    'aws_role_arn' value 'arn:aws:iam::123456:role/AWS_ROLE_ARN'));
    END; 
    /

    Consulte ENABLE_PRINCIPAL_AUTH Procedure y About Using Amazon Resource Names (ARNs) to Access AWS Resources para obtener más información.

  4. Configure AWS para proporcionar permisos para que los nombres de recursos (ARN) de Amazon accedan al secreto en AWS Secrets Manager.

    En la consola de AWS, debe otorgar acceso de lectura al secreto a la credencial de autenticación de principal.

    1. En la consola de AWS, vaya a IAM y seleccione Roles en Gestión de acceso.
    2. Seleccione el rol.
    3. En el separador Permisos, haga clic en Agregar permisoscrear política en línea.
    4. En la sección Servicio, seleccione gestor secreto como servicio.
    5. En la sección Acción, seleccione el nivel de acceso Leer.
    6. En la sección Recursos, haga clic en Agregar ARN, especifique ARN para el secreto y haga clic en Agregar → haga clic en Revisar la política → proporcione un nombre de política → haga clic en crear política.
    7. Vuelva al separador Permiso para verificar que la política en línea está asociada.

Creación de credenciales secretas de almacén con AWS Secrets Manager

Describe los pasos para utilizar un secreto de AWS Secrets Manager con credenciales.

Esto le permite almacenar un secreto en AWS Secrets Manager y utilizar el secreto con las credenciales que cree para acceder a los recursos en la nube o para acceder a otras bases de datos.

Para crear credenciales de secreto de almacén en las que el secreto se almacena en AWS Secrets Manager:

  1. Cree un secreto en AWS Secrets Manager y cree una política en línea para permitir a su instancia de Autonomous Database acceder a secretos en AWS Secrets Manager.
  2. Utilice DBMS_CLOUD.CREATE_CREDENTIAL para crear una credencial de secreto de almacén para acceder al secreto del gestor de secretos de AWS.

    Por ejemplo:

    BEGIN DBMS_CLOUD.CREATE_CREDENTIAL(
        credential_name      => 'AWS_SECRET_CRED',
        params               => JSON_OBJECT( 
             'username'   value 'access_key',
             'secret_id'  value 'arn:aws:secretsmanager:region:account-ID:secret:secret_name' ));
    END;
    /

    Dónde:

    • username: es el nombre de usuario de la credencial original. Puede ser el nombre de usuario de cualquier tipo de credencial de nombre de usuario o contraseña.

    • secret_id: es el secreto de almacén AWS ARN.

    Para crear una credencial de secreto de almacén, debe tener el privilegio EXECUTE en el paquete DBMS_CLOUD.

    Consulte CREATE_CREDENTIAL Procedure para obtener más información.

  3. Utilice la credencial para acceder a un recurso en la nube.

    Por ejemplo:

    SELECT count(*) FROM DBMS_CLOUD.LIST_OBJECTS(
         'AWS_SECRET_CRED', 
         'https://s3-us-west-2.amazonaws.com/adb/' );
Nota

Cada 12 horas, el secreto (contraseña) se refresca desde el contenido del administrador de secretos de AWS. Si cambia el valor del secreto en AWS Secrets Manager, la instancia de Autonomous Database puede tardar hasta 12 horas en recoger el último valor del secreto.

Ejecute DBMS_CLOUD.REFRESH_VAULT_CREDENTIAL para refrescar inmediatamente una credencial de secreto de almacén. Este procedimiento obtiene la última versión del secreto de almacén del gestor de secretos de AWS. Consulte REFRESH_VAULT_CREDENTIAL Procedure para obtener más información.