Acceso Break Glass para SaaS en Autonomous Database

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

Acerca del acceso de Break Glass en Autonomous Database

El acceso de vanguardia 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 autoriza explícitamente.

Caso de uso de muestra de vidrio roto con Example.com

Considere un proveedor de 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 del 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 algo sale mal con respecto al rendimiento de la aplicación, o si hay algún otro problema crítico que requiera la solución de problemas por parte del equipo de operaciones de SaaS, el cliente Scott, puede otorgar acceso para que el equipo de operaciones pueda acceder a la base de datos de Scott para la solución de problemas. El equipo de operaciones SaaS solo está autorizado para 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, 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 vidrio de rotura proviene de alarmas manuales contra incendios que requieren que sus usuarios rompan un pequeño panel de vidrio 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 normalmente no accede 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 emergencia o cuando el acceso se desactiva explícitamente, la contraseña/secretos 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 Break Glass

El usuario SAAS_ADMIN solo se activa y desactiva mediante la interfaz de línea de comandos (CLI) o mediante las API de REST de Autonomous Database.

For information about using the REST APIs and signing requests, see REST APIs and Security Credentials.

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

Utilice estas API para operaciones Break Glass:

Activar acceso a Break Glass

Después de que se apruebe la autorización para acceder a una base de datos con SAAS_ADMIN mediante los procedimientos definidos por su 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. Consulte Acerca de las contraseñas de usuario en Autonomous Database para obtener más información.

secretId

Especifica el valor del OCID secreto de Oracle Cloud Infrastructure Vault de un secreto. Si especifica password, no puede especificar secretId. Consulte Visión general del almacén de claves para 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. Consulte Acerca de las contraseñas de usuario en Autonomous Database para obtener más información.

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: 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 las 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

Activación del acceso Break Glass con una 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 CLI o la API de Autonomous Database para activar SAAS_ADMIN con un secretId cuando el secreto se almacene en Oracle Cloud Infrastructure Vault.

Al especificar una instancia 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 a READ acceder 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 de 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 Break Glass

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 según el tiempo 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 las 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 la API configureSaasAdminUser 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 acceso a Break Glass

Proporciona notas para el acceso de vidrio roto.

Notas para el acceso de vidrio roto:

  • 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 el usuario que ha revocado el acceso.

    auth_end muestra una hora planned. Una vez revocada la autorización, si la autorización caducó al final del duration especificado cuando se activó el usuario SAAS_ADMIN, la hora planned será la misma que la hora actual. Si la hora planned y actual son diferentes, esto significa que la autorización SAAS_ADMIN se revocó antes de que caducara duration.

    Por ejemplo, si SAAS_ADMIN está activado con una duración de 2 horas y después de 1 hora, el acceso se desactiva 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.