Uso de la credencial secreta de almacén con Gestor de secretos de AWS

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

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

Requisitos para crear una credencial secreta de almacén con el gestor de secretos de AWS

Describe los requisitos necesarios para utilizar credenciales de secreto de almacén con Gestor de secretos de AWS.

Para crear credenciales de secreto de almacén donde el secreto se almacena en Gestor de secretos de AWS, primero realice los requisitos necesarios.

  1. Cree un secreto con el Gestor de secretos de AWS y copie el ARN secreto de AWS.

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

  2. Realice los requisitos de gestión de AWS para utilizar nombres de recursos de Amazon (ARN).
  3. Active la autenticación de principal de AWS para proporcionar acceso al secreto en Gestor de secretos de AWS.

    Por ejemplo, en la instancia de Autonomous Database, ejecute:

    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 Procedimiento ENABLE_PRINCIPAL_AUTH y Acerca del uso de nombres de recursos de Amazon (ARN) para acceder a recursos de AWS para obtener más información.

  4. Configure AWS para proporcionar permisos para que los nombres de recursos de Amazon (ARN) 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 Access Management.
    2. Seleccione el rol.
    3. En el separador Permiso, haga clic en Agregar permisoscrear política en línea.
    4. En la sección Servicio, seleccione gestor de secretos como servicio.
    5. En la sección Acción, seleccione el nivel de acceso Lectura.
    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 → asigne un nombre de política → haga clic en Crear política.
    7. Vuelva al separador Permission, verifique que la política en línea está asociada.

Crear credencial secreta de almacén con AWS Secrets Manager

Describe los pasos para utilizar un secreto de Gestor de secretos de AWS con credenciales.

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

Para crear credenciales de secreto de almacén donde el secreto se almacena en Gestor de secretos de AWS:

  1. Cree un secreto en AWS Secrets Manager y cree una política en línea para permitir que Autonomous Database acceda a los secretos en AWS Secrets Manager.
  2. Utilice DBMS_CLOUD.CREATE_CREDENTIAL para crear una credencial de secreto de almacén para acceder al secreto de 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;
    /

    Donde:

    • 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/contraseña.

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

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

    Consulte Procedimiento CREATE_CREDENTIAL 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 a partir del contenido del gestor de secretos de AWS. Si cambia el valor del secreto en Gestor de secretos de AWS, la instancia de Autonomous Database puede tardar hasta 12 horas en seleccionar el último valor del secreto.

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