Note:
- Este tutorial requiere acceso a Oracle Cloud. Para registrarse en una cuenta gratuita, consulte Introducción a Oracle Cloud Infrastructure Free Tier.
- Utiliza valores de ejemplo para credenciales, arrendamiento y compartimentos de Oracle Cloud Infrastructure. Al finalizar el laboratorio, sustituya estos valores por otros específicos del entorno en la nube.
Integración de Oracle Cloud Infrastructure Resource Manager con el proceso de automatización
Introducción
El servicio Oracle Cloud Infrastructure (OCI) Resource Manager permite automatizar el despliegue y las operaciones de todos los recursos de OCI. Mediante el modelo de infraestructura como código (IaC), el servicio se basa en Terraform, un estándar del sector de código abierto que permite a los ingenieros de DevOps desarrollar y desplegar su infraestructura en cualquier lugar.
Una configuración de Terraform codifica la infraestructura en archivos de configuración declarativos. El servicio OCI Resource Manager permite compartir y gestionar archivos de estado y configuración de infraestructura en varios equipos y plataformas.
A través de OCI Resource Manager es posible ejecutar scripts de Terraform en la consola de OCI. También es posible realizar una llamada REST o utilizar la interfaz de línea de comandos (CLI de OCI) de Oracle Cloud Infrastructure, ampliando así las posibilidades de integración con herramientas de automatización como OCI Devops, Jenkins, GitHub, etc.
En este tutorial, automatizaremos el despliegue de una instancia de Oracle Autonomous Database obteniendo la contraseña del administrador de la base de datos de forma segura a través de secretos de OCI Vault sin exponerla en los archivos, de modo que el usuario de ejecución de OCI Resource Manager tenga acceso adecuado para crear la base de datos y la contraseña almacenada.
Objetivos
- Configure la automatización a través de Terraform para que pueda crear instancias con sus credenciales de acceso adecuadas, pero sin exponer información confidencial como la contraseña, para que solo los usuarios autorizados puedan utilizarla en el script de Terraform.
Requisitos
-
Un usuario dentro de un grupo de usuarios sin ninguna política. Este usuario recibirá los permisos adecuados para ejecutar Terraform en OCI Resource Manager.
-
Cubo de OCI Object Storage en un compartimento específico (si desea generar el script de Terraform en este cubo).
-
El script de Terraform se ejecutará a través de OCI Resource Manager y el usuario debe tener permisos para:
- Cree recursos en el compartimento.
- Cree una instancia de Oracle Autonomous Database.
- Leer una contraseña de OCI Vault.
- Ejecute el script de Terraform.
Tarea 1: Creación de un secreto para Oracle Autonomous Database en OCI Vault
Crearemos una contraseña en OCI Vault para ilustrar cómo configurar un nuevo recurso en Terraform sin exponer datos confidenciales.
Los secretos son credenciales como contraseñas, certificados, claves SSH o tokens de autenticación que utiliza con los servicios de OCI. El almacenamiento de secretos en OCI Vault proporciona una mayor seguridad que la que puede conseguir almacenándolos en otro lugar, como en archivos de configuración o código. Puede recuperar secretos del servicio OCI Vault cuando los necesite para acceder a recursos u otros servicios.
Puede crear secretos utilizando la consola de OCI, la CLI de OCI o la API. El contenido del secreto para un secreto se importa al servicio desde un origen externo. El servicio OCI Vault almacena secretos en los almacenes.
Nota: Para esta tarea, necesitamos conectarnos como usuario administrador en la consola de OCI. Debe tener permiso para crear una contraseña en OCI Vault.
-
Conéctese a la consola de OCI, haga clic en Identidad y seguridad y Almacén.
-
Seleccione el compartimento en el que desee almacenar los secretos y haga clic en Crear almacén.
-
Introduzca un nombre para el almacén, confirme el compartimento y haga clic en Create Vault.
-
Confirme que se ha creado el almacén y cree una clave. Haga clic en Master Encryption Keys y Create Key.
-
Confirme el compartimento e introduzca un nombre para la clave. Por ejemplo, introduzca
autonomouskey
como Nombre y haga clic en Crear clave.Confirme que se ha creado la clave.
-
Haga clic en Secretos y Crear secreto.
-
Crearemos la contraseña de administrador autónomo. Introduzca la siguiente información y haga clic en Crear secreto.
- Compartimento: Seleccionar compartimento.
- Nombre: introduzca el nombre del primer secreto.
- Seleccione Generación manual de secretos para incluir la contraseña.
- Plantilla de tipo secreto: introduzca
Plain-Text
. - Contenido secreto: introduzca la contraseña.
-
Necesitará el OCID secreto. Para copiar el OCID, haga clic en Copiar.
Tarea 2: Crear políticas para el usuario de OCI
En este tutorial, considere su nombre de usuario TestUser
incluido en un grupo denominado TestGroup
. Ahora, cree una política con el nombre TestPolicy
.
Esta tarea es importante porque controla todos los privilegios necesarios para garantizar la seguridad de la automatización de Terraform.
Nota: Para esta tarea, necesitamos conectarnos con un usuario administrador en OCI.
-
Vaya a la consola de OCI, haga clic en Identity & Security y en Policies.
-
Haga clic en Crear política.
-
En la sección Sentencias, introduzca las siguientes políticas.
-
Estas políticas otorgan permiso al grupo
TestGroup
creado anteriormente para gestionar una pila y trabajos en OCI Resource Manager.- Allow group 'Default'/'TestGroup' to manage orm-stacks in compartment integration - Allow group 'Default'/'TestGroup' to manage orm-jobs in compartment integration - Allow group 'Default'/'TestGroup' to read orm-config-source-providers in tenancy
-
Esta política ofrece el derecho de crear una instancia de Oracle Autonomous Database en la integración de compartimentos.
- Allow group 'Default'/'TestGroup' to manage autonomous-database in compartment integration
-
El grupo puede leer la contraseña almacenada en OCI Vault mediante scripts de Terraform.
- Allow group 'Default'/'TestGroup' to use secret-family in tenancy
-
Esta política otorga el derecho de guardar los scripts de Terraform en un compartimento específico.
- Allow group 'Default'/'TestGroup' to manage all-resources in compartment kubernetes
-
Esta política permite a los usuarios de
TestGroup
editar código en el editor de códigos de OCI.- Allow group 'Default'/'TestGroup' to use cloud-shell in tenancy
-
Tarea 3: Creación de una pila a partir de una plantilla
Cree una pila para una instancia de Oracle Autonomous Database. Podemos utilizar una plantilla para ello. El primer paso es iniciar sesión como el usuario creado en la tarea 2.
-
Vaya a la consola de OCI y haga clic en el menú de hamburguesa.
-
Haga clic en Servicios para desarrolladores y Pilas.
-
Seleccione el compartimento y haga clic en Crear pila.
-
En la página Información de pila, seleccione Plantilla y haga clic en Seleccionar plantilla para generar un script de Terraform para Oracle Autonomous Database.
-
En el separador Servicio, seleccione Autonomous Transaction Processing Database y haga clic en Seleccionar plantilla.
-
Puede generar los scripts de Terraform y almacenarlos en el cubo de OCI Object Storage. Seleccione Usar proveedores de Terraform personalizados, introduzca el compartimento y el nombre del cubo y guarde la pila.
Tu pila está guardada.
-
Esta plantilla no lee el secreto almacenado en OCI Vault. Para que Terraform lea el secreto, debemos cambiar el código.
Haga clic en Editar y seleccione Editar configuración de Terraform en el editor de código.
-
Puede editar el código. El código por defecto genera una cadena aleatoria para la contraseña.
-
Archivo
main.tf
.Debe agregar un nuevo dato denominado
oci_secrets_secretbundle
y asignarlo a los siguientes atributos:admin_password
en las seccionesautonomous_data_warehouse
yautonomous_database
.password
en la secciónautonomous_database_wallet
.
-
main.tf
: secciónautonomous_data_warehouse
.data "oci_secrets_secretbundle" "bundle" { secret_id = var.secret_ocid } admin_password = base64decode(data.oci_secrets_secretbundle.bundle.secret_bundle_content.0.content)
-
main.tf
: secciónautonomous_database
. -
main.tf
: secciónautonomous_database_wallet
.
Agregue el siguiente código en el archivo
variables.tf
y sustituya el OCID del secreto generado en la tarea 1.variable "secret_ocid" { default = "ocid1.vaultsecret.oc1.iad.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" }
-
Archivo
variables.tf
.
Nota: Guarde los archivos. Mueva el cursor del mouse sobre la pila (en el lado derecho del editor, en el título de Autonomous Transaction Processing....), haga clic con el botón derecho y guarde el proyecto. Si sale sin guardar, la ejecución asume que utilizará la cadena aleatoria en el script de código original.
-
Tarea 4: Prueba de los permisos
Puede probar las políticas y ver cómo tiene control de las instancias de OCI Resource Manager, OCI Vault y Oracle Autonomous Database en un compartimento específico.
-
Conéctese a la consola de OCI con sus credenciales de usuario administrador y elimine todas las políticas para el grupo
TestGroup
en la políticaTestPolicy
. Haga clic en Suprimir y confirme. -
Ahora, inicie sesión con su usuario en el grupo
TestGroup
y no podrá ver la pila, por lo que no podrá ejecutarla. -
Agregue las siguientes sentencias con el usuario administrador.
Allow group 'Default'/'TestGroup' to manage orm-stacks in compartment integration Allow group 'Default'/'TestGroup' to manage orm-jobs in compartment integration Allow group 'Default'/'TestGroup' to read orm-config-source-providers in tenancy Allow group 'Default'/'TestGroup' to manage all-resources in compartment kubernetes
Las siguientes sentencias otorgan al usuario permisos
TestGroup
para utilizar la pila de OCI Resource Manager. -
Hemos eliminado el permiso para que su usuario cree una instancia de Oracle Autonomous Database y lea el secreto en OCI Vault. Así que puedes ejecutar tu pila pero sin éxito. Para probar, haga clic en aplicar en la página de detalles de la pila.
-
Agregue permisos de Oracle Autonomous Database y OCI Vault en
TestPolicy
.Allow group 'Default'/'TestGroup' to manage all-resources in compartment kubernetes Allow group 'Default'/'TestGroup' to manage autonomous-database in compartment integration
-
Haga clic en aplicar en la página de detalles de la pila y podrá ver que tiene el control de todos los recursos sin exponer ninguna contraseña.
Tarea 5: Llamada a la automatización de OCI Resource Manager con REST
Todos los recursos de OCI tienen una API de REST de OCI o un comando de la CLI de OCI para llamar a servicios como se ejecuta en la consola de OCI.
Para obtener más información sobre la API REST de OCI, consulte API REST de OCI. Puede ver la lista de comandos de la CLI de OCI aquí: Referencia de comandos de la CLI de Oracle Cloud Infrastructure.
Ahora, podemos elegir ejecutar la pila de OCI Resource Manager con una API de REST de OCI o un comando de la CLI de OCI. Para crear un trabajo, consulte CreateJob o puede utilizar el siguiente código de ejemplo curl-oci.zip con curl-oci.sh
preparado con parámetros de OCI.
Debe crear la firma para sus solicitudes REST. Para obtener más información, consulte Tutorial de llamada de REST de Oracle Cloud Infrastructure (OCI) con curl.
-
Cree un archivo denominado
STACK-RUN.sh
. Esta será su solicitud REST mediantecurl-oci.sh
(esta herramienta preparará la cadena de autorización con la información de OCI). -
Cree un archivo denominado
request.json
con su ID de pila e ID de compartimento. -
Abra el archivo
curl-oci.sh
y cambie los siguientes parámetros. Estos parámetros son los mismos que la instalación de la CLI de OCI.Ahora, ejecute el script.
Puede ver los resultados de éxito.
Enlaces relacionados
-
Referencia de comandos de CLI de Oracle Cloud Infrastructure
-
Recorrido virtual por la llamada REST de Oracle Cloud Infrastructure (OCI) con curl
Agradecimientos
- Autor: Cristiano Hoshikawa (ingeniero de soluciones de equipo A de Oracle LAD)
Más recursos de aprendizaje
Explore otros laboratorios en docs.oracle.com/learn o acceda a más contenido de aprendizaje gratuito en el canal YouTube de Oracle Learning. Además, visite education.oracle.com/learning-explorer para convertirse en Oracle Learning Explorer.
Para obtener documentación sobre el producto, visite Oracle Help Center.
Integrate Oracle Cloud Infrastructure Resource Manager with Automation Process
F98153-01
May 2024