Acceso de emergencia para SaaS en Autonomous Database

Autonomous Database soporta el acceso directo para los proveedores de SaaS. El acceso de emergencia permite a un equipo de operaciones SaaS, cuando un cliente SaaS lo autoriza explícitamente, acceder a la base de datos de un cliente para realizar operaciones críticas o de emergencia.

Acerca de Break Glass Access en Autonomous Database

El acceso de emergencia en Autonomous Database soporta proveedores SaaS, donde la organización SaaS define procedimientos para permitir que un miembro del equipo de operaciones SaaS acceda a la base de datos de un cliente cuando el cliente lo autorice explícitamente.

Caso de uso de ejemplo de Break Glass con Example.com

Considere un proveedor SaaS denominado example.com que utilice Autonomous Database para su producto. En las operaciones habituales, el proveedor SaaS, example.com, crea una instancia de Autonomous Database para cada cliente SaaS. En este modelo, un cliente SaaS, por ejemplo un cliente denominado Scott, es un usuario final para el producto example.com (y un cliente SaaS cuyos datos se almacenan en una instancia de Autonomous Database). El proveedor example.com crea y almacena todos los datos de Scott en una instancia de Autonomous Database, y el cliente, Scott, no tiene acceso directo a la base de datos.

Este modelo SaaS se resume de la siguiente manera:

  • El cliente de Oracle que crea instancias de Autonomous Database es la organización SaaS (example.com).

  • El proveedor SaaS es example.com.

  • El cliente SaaS es Scott.

Si y cuando algo sale mal con respecto al rendimiento de la aplicación, o si hay algún otro problema crítico que requiera la resolución de problemas por parte del equipo de operaciones SaaS, el cliente Scott puede otorgar acceso para que el equipo de operaciones pueda acceder a la base de datos de Scott para la resolución de problemas. El equipo de operaciones SaaS solo está autorizado a establecer acceso directo a la instancia de Autonomous Database de Scott mediante un proceso de aprobación definido por SaaS (es decir, después de que example.com reciba el permiso de su cliente, Scott).

Break Glass y el usuario SAAS_ADMIN de Autonomous Database

Cuando SaaS llama a la API de acceso directo en la instancia de Autonomous Database de un cliente, esto activa el usuario SAAS_ADMIN. El equipo de operaciones SaaS puede acceder a la instancia mediante el usuario SAAS_ADMIN con un juego de roles especificado, durante un tiempo limitado.

Por defecto, el usuario SAAS_ADMIN está bloqueado. Mediante un proceso de aprobación definido por la organización SaaS, el usuario SAAS_ADMIN se puede activar para permitir el acceso a una instancia de Autonomous Database. El nombre del cristal de rotura proviene de alarmas de fuego manuales que requieren que sus usuarios rompan un pequeño panel de cristal de la ventana antes de activar la alarma (el vidrio debe romperse para evitar que la alarma se active por error). Del mismo modo, el usuario SAAS_ADMIN no suele acceder a la base de datos y el acceso requiere un proceso de aprobación predefinido.

Según el tipo de acceso otorgado, cuando está activado, el usuario SAAS_ADMIN puede acceder a la base de datos para investigar problemas o realizar cambios asociados a una emergencia u otro evento inusual. Cuando caduca el acceso de acceso de emergencia o cuando el acceso se desactiva explícitamente, los secretos/contraseñas de la cuenta SAAS_ADMIN se rotan inmediatamente y se revoca el acceso de usuario SAAS_ADMIN. Se auditan todas las acciones que realiza el usuario SAAS_ADMIN.

El usuario SAAS_ADMIN está activado con uno de los tres tipos de acceso:

  • read-only: proporciona acceso de solo lectura a la instancia. Este es el tipo de acceso por defecto e incluye los roles por defecto: CREATE SESSION, SELECT ANY TABLE, SELECT ANY DICTIONARY, SELECT_CATALOG_ROLE.
  • read/write: proporciona acceso de lectura/escritura a la instancia. Los roles por defecto para este tipo son: CREATE SESSION, SELECT ANY TABLE, SELECT ANY DICTIONARY, SELECT_CATALOG_ROLE, INSERT ANY TABLE y UPDATE ANY TABLE.
  • admin: proporciona acceso de administrador a la instancia. Los roles por defecto para este tipo son: CREATE SESSION y PDB_DBA.

API de acceso de emergencia

El usuario SAAS_ADMIN solo está activado y desactivado a través de la interfaz de línea de comandos (CLI) o mediante las API de REST de Autonomous Database.

Para obtener información sobre el uso de las API de REST y las solicitudes de firma, consulte API de REST y Credenciales de seguridad.

Para obtener información sobre los SDK, consulte Software development kits e interfaz de línea de comandos.

Utilice estas API para operaciones de Break Glass:

Activar acceso de emergencia

Después de que la autorización para acceder a una base de datos con SAAS_ADMIN se apruebe mediante los procedimientos definidos por la organización, utilice la CLI o la API de Autonomous Database para activar el usuario SAAS_ADMIN.

Debe tener el privilegio de gestión de base de datos autónoma para activar el usuario SAAS_ADMIN.

Antes de activar el usuario SAAS_ADMIN para acceder a una base de datos, debe obtener valores para los parámetros necesarios.

parámetro Descripción
isEnabled

Especifica un valor booleano. Utilice TRUE para activar.

password

Especifica la contraseña para el usuario SAAS_ADMIN. Si especifica secretId, no puede especificar password.

La contraseña que proporcione como parámetro debe cumplir los requisitos de contraseña de Autonomous Database. See About User Passwords on Autonomous Database for more information.

secretId

Especifica el valor del OCID secreto de Oracle Cloud Infrastructure Vault de un secreto. Si especifica password, no puede especificar secretId. Consulte Descripción general de Vault para obtener más información.

La contraseña que proporcione como secreto en Oracle Cloud Infrastructure Vault debe cumplir los requisitos de contraseña de Autonomous Database. See About User Passwords on Autonomous Database for more information.

secretVersionNumber

Especifica el número de versión del secreto especificado con secretId. Este parámetro es opcional. El valor por defecto es utilizar la última versión del secreto. Este parámetro solo se aplica cuando también se especifica secretId.

accessType

Una de las siguientes opciones: read-only, read/write o admin. El valor por defecto es read-only.

duration

Especifica la duración en horas, en el rango de 1 hora a 24 horas. El valor por defecto es 1 hora.

Para activar el usuario SAAS_ADMIN en una instancia de Autonomous Database, debe definir el acceso necesario mediante sentencias de política de OCI Identity and Access Management escritas por un administrador.

Se requiere la siguiente política:

Allow group Group_Name to manage autonomous-databases in compartment Compartment_Name

Consulte Políticas de IAM para Autonomous Database y Introducción a las políticas para obtener más información.

Temas

Activar acceso de emergencia con contraseña

Utilice la CLI o la API de Autonomous Database para activar SAAS_ADMIN con una contraseña.

  1. Utilice la API o la CLI y especifique un valor para la contraseña para activar SAAS_ADMIN con password.

    Por ejemplo:

    POST https://dbaas-api.svc.ad3.us-phoenix-1/20160918/autonomousDatabases/ocid1.autonomousdatabase.oc1.phx.uniqueId/actions/configureSaasAdminUser
    
    {  "isEnabled": true,
       "password": password,
       "accessType": "READ_ONLY",
       "duration": 17
    } 

    Consulte configureSaasAdminUser para obtener más información.

  2. Verifique que el usuario SAAS_ADMIN esté activado.
    POST https://dbaas-api.svc.ad3.us-phoenix-1/20160918/autonomousDatabases/ocid1.autonomousdatabase.oc1.phx.uniqueId/actions/getSaasAdminUserStatus
    
    {    "isEnabled": true,
         "accessType": "READ_ONLY",
         "timeSaasAdminUserEnabled": "2023-11-23T01:59:07.032Z"
    }
    

    Esta respuesta muestra que el usuario SAAS_ADMIN está activado y que el tipo de acceso es READ_ONLY. El registro de hora muestra la hora a la que se activó SAAS_ADMIN (la hora está en UTC).

    Consulte getSaasAdminUserStatus para obtener más información.

Activar acceso de emergencia con un secreto de almacén

Utilice la API o la CLI de Autonomous Database para activar SAAS_ADMIN con secretId, cuando el secreto se almacena en Oracle Cloud Infrastructure Vault.

Al especificar un secretId, para que Autonomous Database alcance el secreto en Oracle Cloud Infrastructure Vault, se deben aplicar las siguientes condiciones:

  • El secreto debe tener el estado current o previous.

  • Debe tener la política de grupo de usuarios adecuada que permita el acceso READ al secreto específico en un compartimento determinado. Por ejemplo:

    Allow userGroup1 to read secret-bundles in compartment training

Para activar SAAS_ADMIN con un secretId con el secreto almacenado en Oracle Cloud Infrastructure Vault:

  1. Utilice la API o la CLI y especifique un valor de OCID para secretId.

    Por ejemplo:

    POST https://dbaas-api.svc.ad3.us-phoenix-1/20160918/autonomousDatabases/ocid1.autonomousdatabase.oc1.phx.uniqueId/actions/configureSaasAdminUser
    
    {  "isEnabled": true,
       "secretId": "ocid1.key.co1.ap-mumbai-1.example..aaaaaaaauq5ok5nq3bf2vwetkpqsoa",
       "accessType": "READ_ONLY",
       "duration": 20
    }

    La especificación de una versión del secreto es opcional. Si especifica una versión del secreto en la llamada de API con secretVersionNumber, se utiliza la versión del secreto especificada. Si no especifica una versión del secreto, la llamada utiliza la última versión del secreto.

    Consulte configureSaasAdminUser para obtener más información.

  2. Verifique que el usuario SAAS_ADMIN esté activado.

    Por ejemplo:

    POST https://dbaas-api.svc.ad3.us-phoenix-1/20160918/autonomousDatabases/ocid1.autonomousdatabase.oc1.phx.uniqueId/actions/getSaasAdminUserStatus
    
    {    "isEnabled": true,
         "accessType": "READ_ONLY",
         "timeSaasAdminUserEnabled": "2023-11-23T01:59:07.032Z"
    }
    

    Esta respuesta muestra que el usuario SAAS_ADMIN está activado y el tipo de acceso es READ_ONLY. El registro de hora muestra la hora a la que se activó el usuario (la hora está en UTC).

    Consulte getSaasAdminUserStatus para obtener más información.

Desactivar acceso de emergencia

Utilice la CLI o la API de Autonomous Database para desactivar el acceso de usuario SAAS_ADMIN.

Por defecto, el acceso caduca después de una hora si el parámetro duration no está definido cuando SAAS_ADMIN está activado. Si el parámetro duration se define cuando SAAS_ADMIN está activado, el acceso caduca después del número de horas duration especificado. Como alternativa a permitir que el acceso caduque en función de la hora de caducidad por defecto o la duración que especifique, puede utilizar configureSaasAdminUser para desactivar explícitamente el acceso de usuario SAAS_ADMIN.

Para desactivar el usuario SAAS_ADMIN en una instancia de Autonomous Database, debe definir el acceso necesario mediante sentencias de política de OCI Identity and Access Management escritas por un administrador.

Se requiere la siguiente política:

Allow group Group_Name to manage autonomous-databases in compartment Compartment_Name

Consulte Políticas de IAM para Autonomous Database y Introducción a las políticas para obtener más información.

  1. Desactive el acceso de usuario SAAS_ADMIN.

    Por ejemplo:

    POST https://dbaas-api.svc.ad3.us-phoenix-1/20160918/autonomousDatabases/ocid1.autonomousdatabase.oc1.phx.uniqueId/actions/configureSaasAdminUser
    {
      "isEnabled": false
    }

    Consulte configureSaasAdminUser API para obtener más información.

  2. Verifique que el usuario SAAS_ADMIN esté desactivado.

    Por ejemplo:

    POST https://dbaas-api.svc.ad3.us-phoenix-1/20160918/autonomousDatabases/ocid1.autonomousdatabase.oc1.phx.uniqueId/actions/getSaasAdminUserStatus
    
    {    "isEnabled": false
    }
    

    Esta respuesta indica que el usuario SAAS_ADMIN está desactivado.

    Consulte getSaasAdminUserStatus para obtener más información.

Al desactivar el usuario SAAS_ADMIN, se revoca el acceso a la base de datos y Autonomous Database rota la contraseña o el secreto que se ha utilizado para acceder a la base de datos.

Notas para el acceso de emergencia

Proporciona notas para el acceso de vidrio roto.

Notas para el acceso de vidrio de rotura:

  • El valor duration que especifique al activar SAAS_ADMIN se aplica hasta que caduque el tiempo especificado o hasta que desactive explícitamente el usuario SAAS_ADMIN. No puede cambiar este valor después de activar el usuario SAAS_ADMIN.

  • Autonomous Database siempre gratis no soporta el acceso con el usuario SAAS_ADMIN.

  • La vista DBA_CLOUD_CONFIG proporciona información sobre el usuario SAAS_ADMIN.

    Por ejemplo, utilice la siguiente consulta para obtener información sobre el estado del usuario SAAS_ADMIN:

    SELECT PARAM_VALUE FROM DBA_CLOUD_CONFIG WHERE
                 param_name ='saas_admin_access' order by 1;

    La presencia de un valor para auth_revoker significa que el acceso se ha revocado y muestra al usuario que ha revocado el acceso.

    auth_end muestra una hora planned. Después de revocar la autorización, si la autorización caducó al final del tiempo de duration especificado cuando se activó el usuario SAAS_ADMIN, la hora de planned será la misma que la hora de actual. Si la hora planned y la hora actual son diferentes, esto significa que la autorización SAAS_ADMIN se ha revocado antes de que caduque duration.

    Por ejemplo, si SAAS_ADMIN está activado con una duración de 2 horas y el acceso después de 1 hora está desactivado llamando a la API configureSaasAdminUser para desactivar el usuario SAAS_ADMIN, las horas auth_end planned y actual serán diferentes.

    Si esta consulta no muestra ninguna fila, el usuario SAAS_ADMIN no existe. Puede que se haya creado y borrado o que nunca se haya creado.