Uso de Credenciales Secretas de Vault 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 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 AWS Secrets Manager

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

Para crear credenciales de secreto de almacén donde el secreto está almacenado 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. Cumpla los requisitos de gestión de AWS para utilizar nombres de recursos de Amazon (ARN).
  3. Active la autenticación principal de AWS para proporcionar acceso al secreto en AWS Secrets Manager.

    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 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. De vuelta 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 AWS Secrets Manager con credenciales.

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

Para crear credenciales secretas de almacén donde el secreto está almacenado en AWS Secrets Manager:

  1. Cree un secreto en AWS Secrets Manager y cree una política en línea para permitir que Autonomous Database acceda 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 de AWS Secrets Manager.

    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 desde el contenido de AWS Secrets Manager. 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 de AWS Secrets Manager. Consulte procedimiento REFRESH_VAULT_CREDENTIAL para obtener más información.