Uso de la autenticación de Kerberos para Amazon RDS para Db2 - Amazon Relational Database Service

Uso de la autenticación de Kerberos para Amazon RDS para Db2

Puede usar la autenticación de Kerberos para autenticar a los usuarios cuando se conecten a su instancia de base de datos de Amazon RDS para Db2. La instancia de base de datos funciona con AWS Directory Service for Microsoft Active Directory (AWS Managed Microsoft AD) para habilitar la autenticación de Kerberos. Cuando los usuarios se autentican con una instancia de base de datos de RDS para Db2 unida al dominio de confianza, las solicitudes de autenticación se reenvían al directorio que se ha creado con AWS Directory Service. Para obtener más información, consulte What is AWS Directory Service? ¿Qué es AWS Directory Service? en la Guía de administración de AWS Directory Service.

Primero, cree un directorio de AWS Managed Microsoft AD para almacenar las credenciales de usuario. A continuación, agregue el dominio y demás información del directorio AWS Managed Microsoft AD a la instancia de base de datos de RDS para Db2. Cuando los usuarios se autentican con la instancia de base de datos de RDS para Db2, las solicitudes de autenticación se reenvían al directorio AWS Managed Microsoft AD.

Mantener todas las credenciales en el mismo directorio puede ahorrarle tiempo y esfuerzo. Con este método, dispone de un lugar centralizado para almacenar y administrar credenciales de numerosas instancias de bases de datos. El uso de un directorio también puede mejorar su perfil de seguridad general.

Disponibilidad en regiones y versiones

La disponibilidad de las características varía según las versiones específicas de cada motor de base de datos y entre Regiones de AWS. Para obtener más información sobre la disponibilidad en versiones y regiones de RDS para Db2 con autenticación de Kerberos, consulte Regiones y motores de base de datos admitidos para autenticación de Kerberos en Amazon RDS.

nota

La autenticación de Kerberos no es compatible con las clases de instancia de base de datos que están en desuso para las instancias de base de datos de RDS para Db2. Para obtener más información, consulte Amazon RDS para clases de instancia de Db2.

Información general sobre la autenticación de Kerberos para instancias de base de datos de RDS para Db2

Para configurar la autenticación de Kerberos para una instancia de base de datos de RDS para Db2, complete los siguientes pasos generales, que se describen con más detalle más adelante:

  1. Utilice AWS Managed Microsoft AD para crear un directorio de AWS Managed Microsoft AD. Puede utilizar la AWS Management Console, la AWS Command Line Interface (AWS CLI) o AWS Directory Service para crear el directorio. Para obtener más información, consulte Eliminar su directorio AWS Managed Microsoft AD en la Guía de administración de AWS Directory Service.

  2. Cree un rol de AWS Identity and Access Management (IAM) que utilice la política de IAM administrada AmazonRDSDirectoryServiceAccess. El rol de IAM permite a Amazon RDS realizar llamadas al directorio.

    Para que el rol de IAM permita el acceso, el punto de conexión AWS Security Token Service (AWS STS) debe activarse en la Región de AWS correcta para su Cuenta de AWS. Los puntos de conexión de AWS STS están activos de forma predeterminada en todas las Regiones de AWS y puede usarlos sin ninguna acción posterior. Para obtener más información, consulte Activación y desactivación de AWS STS en una región de Región de AWS en la Guía del usuario de IAM.

  3. Cree o modifique una instancia de base de datos de RDS para Db2 desde la AWS Management Console, la AWS CLI o la API de RDS utilizando uno de los siguientes métodos:

    Puede localizar la instancia de base de datos en la misma Amazon Virtual Private Cloud (VPC) que el directorio o en una Cuenta de AWS o VPC diferente. Cuando cree o modifique la instancia de base de datos de RDS para Db2, realice las siguientes tareas:

    • Proporcione el identificador de dominio (identificador d-*) que se generó cuando creó el directorio.

    • Proporcione el nombre del rol de IAM que ha creado.

    • Verifique que el grupo de seguridad de la instancia de base de datos pueda recibir tráfico de entrada del grupo de seguridad del directorio.

  4. Configure el cliente de Db2 y verifique que el tráfico puede fluir entre el host cliente y AWS Directory Service para los puertos siguientes:

    • TCP/UDP puerto 53 – DNS

    • TCP 88 – autenticación de Kerberos

    • TCP 389 — LDAP

    • TCP 464 – autenticación de Kerberos

Configuración de la autenticación de Kerberos para instancias de base de datos de RDS para Db2

Utilice AWS Directory Service for Microsoft Active Directory (AWS Managed Microsoft AD) para configurar la autenticación de Kerberos de una instancia de base de datos de RDS para Db2. Para configurar la autenticación de Kerberos, siga estos pasos:

Paso 1: crear un directorio con AWS Managed Microsoft AD

AWS Directory Service crea un Active Directory totalmente administrado en Nube de AWS. Al crear un directorio de AWS Managed Microsoft AD, AWS Directory Service crea dos controladores de dominio y servidores DNS para usted. Los servidores de directorios se crean en diferentes subredes de una VPC. Esta redundancia ayuda a garantizar que su directorio permanezca accesible incluso si ocurre un fallo.

Cuando crea un directorio de AWS Managed Microsoft AD, AWS Directory Service realiza en su nombre las siguientes tareas:

  • Configura un Active Directory dentro de la VPC.

  • Crea una cuenta de administrador del directorio con el nombre de usuario Admin y la contraseña especificada. Esta cuenta le permite administrar el directorio.

    importante

    Asegúrese de guardar esta contraseña. AWS Directory Service no almacena esta contraseña y no se puede recuperar ni restablecer.

  • Crea un grupo de seguridad para los controladores del directorio. El grupo de seguridad debe permitir la comunicación con la instancia de base de datos de RDS para Db2.

Al lanzar AWS Directory Service for Microsoft Active Directory, AWS crea una unidad organizativa (OU) que contiene todos los objetos del directorio. Esta unidad organizativa, que tiene el nombre de NetBIOS que introdujo al crear el directorio, se encuentra en la raíz del dominio. La raíz del dominio es propiedad de , que también se encarga de su administració AWS.

La cuenta Admin que se creó con el directorio de AWS Managed Microsoft AD dispone de permisos para realizar las actividades administrativas más habituales para la unidad organizativa:

  • Crear, actualizar o eliminar usuarios.

  • Añadir recursos a su dominio, como servidores de archivos o de impresión y, a continuación, asignar permisos para esos recursos a usuarios dentro de la unidad organizativa.

  • Crear unidades organizativas y contenedores adicionales.

  • Delegar autoridad.

  • Restaurar objetos eliminados de la papelera de reciclaje de Active Directory.

  • Ejecute Active Directory y los módulos del Servicio de nombres de dominio (DNS) para Windows PowerShell en el AWS Directory Service.

La cuenta Admin también tiene derechos para realizar las siguientes actividades en todo el dominio:

  • Administrar configuraciones DNS (agregar, quitar o actualizar registros, zonas y programas de envío).

  • Ver logs de eventos DNS.

  • Ver logs de eventos de seguridad.

Para crear un directorio con AWS Managed Microsoft AD
  1. Inicie sesión en AWS Management Console y abra la consola de AWS Directory Service en https://console.aws.amazon.com/directoryservicev2/.

  2. Elija Configurar directorio.

  3. Elija AWS Managed Microsoft AD. AWS Managed Microsoft AD es la única opción que se admite actualmente para usar con Amazon RDS.

  4. Elija Siguiente.

  5. En la página Enter directory information (Especifique la información del directorio), facilite la siguiente información:

    • Edición: elija la edición que se adapte a sus necesidades.

    • Nombre de DNS del directorio: el nombre completo del directorio, como por ejemplo corp.example.com.

    • Nombre de NetBIOS del directorio: un nombre abreviado del directorio opcional, como CORP.

    • Descripción del directorio: una descripción opcional para el directorio.

    • Contraseña de administrador: la contraseña del administrador del directorio. Al crear el directorio, se crea también una cuenta de administrador con el nombre de usuario Admin y esta contraseña.

      La contraseña del administrador del directorio no puede contener la palabra "admin". La contraseña distingue entre mayúsculas y minúsculas y debe tener un mínimo de 864 caracteres y un máximo de 64. También debe contener al menos un carácter de tres de las siguientes categorías:

      • Letras minúsculas (a–z)

      • Letras mayúsculas (A–Z)

      • Números (0–9)

      • Caracteres no alfanuméricos (~!@#$%^&*_-+=`|\(){}[]:;"'<>,.?/)

      • Confirmar contraseña: vuelva a escribir la contraseña del administrador.

        importante

        Asegúrese de guardar esta contraseña. AWS Directory Service no almacena esta contraseña y no se puede recuperar ni restablecer.

  6. Elija Siguiente.

  7. En la página Choose VPC and subnets (Elegir la VPC y las subredes), proporcione la información siguiente:

    • VPC: elija la VPC del directorio. Puede crear la instancia de base de datos de RDS para Db2 en esta misma VPC o en una VPC diferente.

    • Subredes: elija las subredes de los servidores del directorio. Las dos subredes deben estar en diferentes zonas de disponibilidad.

  8. Elija Siguiente.

  9. Revise la información del directorio. Si es necesario realizar algún cambio, seleccione Previous (Anterior) y realizar los cambios. Cuando la información sea correcta, seleccione Create directory (Crear directorio).

    Revise la página durante la creación del directorio en la consola de AWS Directory Service.

La creación del directorio tarda varios minutos. Cuando se haya creado correctamente, el valor de Status (Estado) cambiará a Active (Activo).

Para ver información acerca de su directorio, seleccione el ID del directorio en ID de directorio. Anote el valor de Directory ID (ID de directorio). Necesita este valor cuando cree o modifique su instancia de base de datos de RDS para Db2.

Página de detalles del directorio en la consola de AWS Directory Service con ID de directorio.

Paso 2: crear un rol de IAM para que Amazon RDS pueda acceder a AWS Directory Service

Para que Amazon RDS llame a AWS Directory Service en su nombre, su cuenta de Cuenta de AWS precisa un rol de IAM que utilice la política de IAM administrada AmazonRDSDirectoryServiceAccess. Este rol permite a Amazon RDS realizar llamadas a AWS Directory Service.

Cuando se crea una instancia de base de datos con la AWS Management Console y la cuenta de usuario de la consola tiene el permiso iam:CreateRole, la consola crea automáticamente el rol de IAM necesario. En este caso, el nombre del rol es rds-directoryservice-kerberos-access-role. De no ser así, debe crear el rol de IAM manualmente. Cuando cree este rol de IAM, elija Directory Service y asocie la política administrada de AWS AmazonRDSDirectoryServiceAccess a este.

A fin de obtener más información acerca de la creación de roles de IAM para un servicio, consulte Creación de un rol para delegar permisos a un servicio de AWS en la guía del usuario de IAM.

nota

El rol de IAM utilizado para la autenticación de Windows para RDS para Microsoft SQL Server no se puede usar en RDS para Db2.

Como alternativa al uso de la política administrada de AmazonRDSDirectoryServiceAccess, puede crear políticas con los permisos necesarios. En este caso, el rol de IAM debe tener la siguiente política de confianza de IAM:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": [ "directoryservice.rds.amazonaws.com", "rds.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }

El rol debe también tener la siguiente política de rol de IAM:

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "ds:DescribeDirectories", "ds:AuthorizeApplication", "ds:UnauthorizeApplication", "ds:GetAuthorizedApplicationDetails" ], "Effect": "Allow", "Resource": "*" } ] }

Paso 3: crear y configurar usuarios

Puede utilizar la herramienta Active Directory Users and Computers para crear usuarios. Esta es una de las herramientas de Active Directory Domain Services y Active Directory Lightweight Directory Services. Para obtener más información, consulte Agregar usuarios y equipos al dominio de Active Directory en la documentación de Microsoft. En este caso, los usuarios son individuos u otras entidades, como sus equipos, que forman parte del dominio y cuyas identidades se mantienen en el directorio.

Para crear usuarios en un directorio de AWS Directory Service, debe estar conectado a una instancia de Amazon EC2 basada en Windows que sea miembro del directorio de AWS Directory Service. Al mismo tiempo, debe estar registrado como usuario con privilegios para crear usuarios. Para obtener más información, consulte Crear un usuario en la Guía de administración de AWS Directory Service.

Paso 4: crear un grupo de administración de RDS para Db2 en AWS Managed Microsoft AD

RDS para Db2 no admite la autenticación de Kerberos del usuario maestro ni de los dos usuarios reservados de Amazon RDS rdsdb y rdsadmin. En su lugar, debe crear un nuevo grupo llamado masterdba en AWS Managed Microsoft AD. Para obtener más información, consulte Crear una cuenta de grupo en Active Directory en la documentación de Microsoft. Todos los usuarios que agregue a este grupo tendrán privilegios de usuario maestro.

Una vez habilitada la autenticación de Kerberos, el usuario maestro pierde el rol masterdba. Como resultado, el usuario maestro no podrá acceder a la pertenencia al grupo de usuarios local de la instancia a menos que deshabilite la autenticación de Kerberos. Para seguir utilizando el usuario maestro con contraseña de inicio de sesión, cree un usuario en AWS Managed Microsoft AD con el mismo nombre que el usuario maestro. Luego, agregue los usuarios al grupo masterdba.

Paso 5: crear o modificar una instancia de base de datos de RDS para Db2

Cree o modifique una instancia de base de datos de RDS para Db2 para usarla con su directorio. Puede utilizar la AWS Management Console, la AWS CLI o la API de RDS para asociar una instancia de base de datos con un directorio. Puede hacerlo de una de las siguientes formas:

La autenticación de Kerberos solo es compatible con instancias de base de datos de RDS para Db2 en una VPC. La instancia de DB puede estar en la misma VPC que el directorio o en una VPC diferente. La instancia de base de datos debe usar un grupo de seguridad que permita el ingreso y la salida dentro de la VPC del directorio, de modo que la instancia de base de datos pueda comunicarse con el directorio.

Si utiliza la consola para crear, modificar o restaurar una instancia de base de datos, elija Contraseña y autenticación de Kerberos en la sección Autenticación de base de datos. Luego, elija Browse Directory (Examinar directorio). Seleccione el directorio o elija Crear un nuevo directorio para utilizar Directory Service.

Selección de Kerberos para la autenticación e identificación del directorio que se va a utilizar.

Cuando utilice la AWS CLI, se necesitan los siguientes parámetros para que la instancia de base de datos pueda usar el directorio que ha creado:

  • Para el parámetro --domain, utilice el identificador de dominio (identificador “d-*“) que se generó cuando creó el directorio.

  • Para el parámetro --domain-iam-role-name, utilice el rol que creó que usa la política AmazonRDSDirectoryServiceAccess de IAM administrada.

El siguiente comando de la CLI modifica una instancia de base de datos para usar un directorio. Sustituya los siguientes valores de muestra en el ejemplo por los suyos:

  • db_instance_name: el nombre de su instancia de base de datos de RDS para Db2.

  • directory_id: el ID del directorio AWS Directory Service for Microsoft Active Directory que ha creado.

  • role_name: el nombre del rol de IAM que ha creado.

aws rds modify-db-instance --db-instance-identifier db_instance_name --domain d-directory_id --domain-iam-role-name role_name
importante

Si modifica una instancia de base de datos para habilitar la autenticación de Kerberos, reinicie la instancia de base de datos después de realizar el cambio.

Paso 6: configurar un cliente Db2

Para configurar un cliente Db2
  1. Cree un archivo /etc/krb5.conf (o equivalente) para apuntar al dominio.

    nota

    Para los sistemas operativos Windows, cree un archivo C:\windows\krb5.ini.

  2. Verifique que el tráfico puede fluir entre el host cliente y AWS Directory Service. Use una utilidad de red como, por ejemplo, Netcat para las siguientes tareas:

    1. Verificar el tráfico sobre DNS para el puerto 53.

    2. Verificar el tráfico sobre TCP/UDP para el puerto 53 y para Kerberos, lo que incluye los puertos 88 y 464 para AWS Directory Service.

  3. Verifique que el tráfico puede fluir entre el host cliente y la instancia de base de datos sobre el puerto de base de datos. Puede usar el comando db2 para conectarse a la base de datos y acceder a ella.

El ejemplo siguiente es el contenido del archivo /etc/krb5.conf para AWS Managed Microsoft AD:

[libdefaults] default_realm = EXAMPLE.COM [realms] EXAMPLE.COM = { kdc = example.com admin_server = example.com } [domain_realm] .example.com = EXAMPLE.COM example.com = EXAMPLE.COM

Administración de una instancia de base de datos en un dominio

Puede usar la AWS Management Console, la AWS CLI o la API de RDS para administrar la instancia de base de datos y la relación con su Microsoft Active Directory. Puede, por ejemplo, puede asociar un Active Directory para habilitar la autenticación de Kerberos. También puede eliminar la asociación para que un Active Directory deshabilite la autenticación de Kerberos. También puede mover una instancia de base de datos para que sea autenticada externamente por un Microsoft Active Directory a otro.

Por ejemplo, con el comando modify-db-instance de la CLI, puede llevar a cabo las siguientes acciones:

  • Vuelva a intentar habilitar la autenticación de Kerberos en una pertenencia que haya dado un error especificando el ID de directorio de la pertenencia actual para la opción --domain.

  • Deshabilite la autenticación de Kerberos en una instancia de base de datos especificando none para la opción --domain.

  • Trasladar una instancia de base de datos de un dominio a otro especificando el identificador de dominio del nuevo dominio para la opción --domain.

Descripción de la pertenencia a los dominios

Una vez que haya creado o modificado una instancia de base de datos, esta se convierte en miembro del dominio. Puede ver el estado de la suscripción al dominio en la consola o ejecutando el comando describe-db-instances de la CLI. El estado de la instancia de base de datos puede ser uno de los siguientes:

  • kerberos-enabled: la instancia de base de datos tiene habilitada la autenticación de Kerberos.

  • enabling-kerberos: AWS está en proceso de habilitar la autenticación de Kerberos en esta instancia de base de datos.

  • pending-enable-kerberos: la habilitación de la autenticación de Kerberos está pendiente en esta instancia de base de datos.

  • pending-maintenance-enable-kerberos: AWS intentará habilitar la autenticación de Kerberos en la instancia de base de datos durante el próximo periodo de mantenimiento programado.

  • pending-disable-kerberos: la deshabilitación de la autenticación de Kerberos está pendiente en esta instancia de base de datos.

  • pending-maintenance-disable-kerberos: AWS intentará desactivar la autenticación de Kerberos en la instancia de base de datos durante el próximo periodo de mantenimiento programado.

  • enable-kerberos-failed: un problema de configuración ha impedido que AWS habilite la autenticación de Kerberos en la instancia de base de datos. Corrija el problema de configuración antes de volver a ejecutar el comando para modificar la instancia de base de datos.

  • disabling-kerberos: AWS está en proceso de desactivar la autenticación de Kerberos en esta instancia de base de datos.

Una solicitud para habilitar la autenticación de Kerberos puede generar un error a causa de un problema de conectividad de la red o de un rol de IAM incorrecto. En algunos casos, el intento de habilitar la autenticación de Kerberos podría fallar al crear o modificar una instancia de base de datos. Si esto ocurre, asegúrese de que está utilizando el rol de IAM correcto y, a continuación modifique la instancia de base de datos para unirse al dominio.

Conexión a RDS para Db2 con autenticación de Kerberos

Para conectarse a RDS para Db2 con autenticación de Kerberos
  1. En el símbolo del sistema, ejecute el siguiente comando. En el ejemplo siguiente, sustituya username por el nombre de su usuario Microsoft Active Directory.

    kinit username
  2. Si la instancia de base de datos de RDS para Db2 utiliza una VPC accesible públicamente, ponga una dirección IP privada para su punto de conexión de instancia de base de datos en su archivo /etc/hosts en el cliente EC2. El siguiente ejemplo obtiene la dirección IP y, a continuación, la agrega al archivo /etc/hosts.

    % dig +short Db2-endpoint.AWS-Region.rds.amazonaws.com ;; Truncated, retrying in TCP mode. ec2-34-210-197-118.AWS-Region.compute.amazonaws.com. 34.210.197.118 % echo "34.210.197.118 Db2-endpoint.AWS-Region.rds.amazonaws.com" >> /etc/hosts
  3. Utilice el siguiente comando para iniciar sesión en una instancia de base de datos de RDS para Db2 que esté asociada a Active Directory. Sustituya database_name por el nombre de la base de datos de RDS para Db2.

    db2 connect to database_name