Note:
- Este tutorial requiere acceso a Oracle Cloud. Para registrarse para obtener una cuenta gratuita, consulte Introducción a la cuenta gratuita de Oracle Cloud Infrastructure.
- Utiliza valores de ejemplo para credenciales, arrendamiento y compartimentos de Oracle Cloud Infrastructure. Al finalizar la práctica, sustituya estos valores por otros específicos de su entorno en la nube.
Profundización en las políticas de Oracle Cloud Infrastructure Identity and Access Management basadas en etiquetas
Introducción
Las políticas de Oracle Cloud Infrastructure Identity and Access Management (OCI IAM) son la piedra angular de un entorno en la nube sólido y seguro. Proporcionan un mecanismo potente y flexible para controlar el acceso a los recursos de OCI, lo que garantiza que solo los usuarios y servicios autorizados puedan realizar acciones específicas en los recursos designados.
En esencia, una política de OCI IAM es un juego de sentencias declarativas escritas en una sintaxis legible por humanos que dicta quién puede acceder a qué y en qué condiciones. Estas políticas permiten a las organizaciones aplicar el principio de privilegio mínimo, otorgando a los usuarios y servicios solo los permisos que necesitan para realizar sus tareas y nada más. Esto minimiza los riesgos de seguridad al tiempo que mantiene la eficiencia operativa.
Las políticas de OCI IAM se aplican en varios niveles de la jerarquía de OCI, incluidos compartimentos, arrendamiento y recursos específicos, lo que las hace altamente adaptables a estructuras organizativas complejas. Con la herencia de políticas y la compartimentación de OCI, los administradores pueden establecer controles granulares adaptados a sus requisitos operativos y de seguridad específicos. Para obtener más información sobre las políticas de OCI, consulte Getting Started with Policies.
En este tutorial, profundizaremos en la importancia de la optimización de políticas, exploraremos las mejores prácticas para ajustar políticas para lograr resultados óptimos y resaltaremos escenarios en los que la optimización de políticas se puede aprovechar al máximo su potencial.
Objetivos
-
Desmitificar la sintaxis y los componentes de la política.
-
Descubra por qué el ajuste de las políticas de OCI IAM es crucial para la escalabilidad y los límites de las políticas.
-
Proporcione prácticas recomendadas útiles.
-
Haga hincapié en el papel del etiquetado en la gestión de políticas.
-
Resalte desafíos y soluciones comunes mostrando casos de uso reales.
Requisitos
-
Acceso a un arrendamiento de OCI.
-
Comprensión básica de los conceptos de OCI.
-
Conocimientos de OCI IAM.
-
Familiaridad con la sintaxis de la política.
-
Descripción de los conceptos básicos de compartimentación y etiquetado.
-
Conocimiento del principio de privilegios mínimos.
-
La política de OCI limita el conocimiento.
-
Experiencia con estándares de gobernanza y conformidad.
Desmitificar Componentes y Sintaxis de Políticas
Para ajustar eficazmente las políticas de OCI IAM, es esencial comprender su estructura y componentes clave. Las políticas de OCI definen los permisos especificando quién (principal), qué (acción) en qué (recurso) y dónde (ámbito). A continuación, se desglosa este proceso:
Componentes clave de una política de OCI IAM
-
Principal (Asunto): entidad que solicita acceso, que puede ser una de las siguientes:
-
Usuario: una cuenta individual dentro de OCI, que suele representar a una persona. Para obtener más información, consulte Gestión de usuarios.
-
Grupo: recopilación de usuarios con necesidades de acceso compartido. Para obtener más información, consulte Trabajar con Grupos.
-
Grupo dinámico: juego de recursos de OCI (por ejemplo, instancias informáticas, funciones) identificados por reglas específicas. Los recursos de un grupo dinámico se agrupan automáticamente en función de criterios como etiquetas o metadatos. Para obtener más información, consulte Gestión de grupos dinámicos.
-
Principal de recurso: servicio (como OCI Functions u Oracle Autonomous Database) que actúa en su propio nombre. Las entidades de recurso permiten a los servicios autenticarse de forma segura con OCI y otros recursos sin necesidad de credenciales explícitas. Para obtener más información, consulte Resource Principal Authentication.
-
Principal de instancia: tipo de entidad de recurso específica para instancias informáticas. Permite a las instancias interactuar directamente con los servicios de OCI (por ejemplo, OCI Object Storage o Identity) mediante políticas de OCI IAM, sin embeber credenciales en la aplicación que se ejecuta en la instancia. Para obtener más información, consulte Instance Principals.
-
-
Acción (verbo): especifica las operaciones que puede realizar el principal:
inspect
: vea los metadatos sobre el recurso.read
: permite ver los metadatos y los datos del recurso.use
: realizar acciones de lectura y operaciones de gestión limitadas.manage
: realice todas las acciones, incluidas la creación y supresión de recursos.
Para obtener más información, consulte Operations.
-
Recurso (Tipo de recurso): define el tipo de recurso de OCI al que se aplica la acción, como:
- Instancias informáticas, cubos de almacenamiento, redes virtuales en la nube, bases de datos, etc.
- Los recursos se pueden organizar jerárquicamente mediante compartimentos para una mejor gestión.
Para obtener más información, consulte Recursos.
-
Ámbito (ubicación): especifica la ubicación a la que se aplica la política:
- Compartimento: contenedor lógico para recursos, que permite la organización jerárquica.
- Arrendamiento: toda la cuenta de OCI, que se suele utilizar para permisos globales.
Para obtener más información, consulte Ubicación.
-
Regla de coincidencia (condiciones): especifique una o varias condiciones. Use any (cualquiera) o all (todos) con varias condiciones para valores OR o AND lógicos, respectivamente.
- Sintaxis para una única condición:
variable =|!= value
. - Sintaxis para varias condiciones:
any|all {<condition>,<condition>,...}
.
Para obtener más información, consulte Condiciones.
- Sintaxis para una única condición:
Consejo adicional: descripción del concepto Sets-Intersect en la política de OCI IAM
La intersección de juegos en las políticas de OCI IAM se utiliza para otorgar acceso solo cuando hay una superposición entre dos juegos de valores. Esto garantiza que los permisos se otorguen de forma dinámica en función de la pertenencia a grupos, las etiquetas de recursos u otros atributos, en lugar de codificar usuarios o grupos específicos en las políticas.
-
Ejemplo de Sets-Intersect en la política de OCI IAM
Allow any-user to manage database-family-resources in tenancy where sets-intersect(request.groups.name, target.resource.compartment.tag.database.admins)
Rompiendo la Declaración de Política:
-
Permitir cualquier usuario: esta política se aplica a cualquier usuario autenticado en OCI (independientemente de la pertenencia a un grupo específico).
-
para gestionar los recursos de la familia de la base de datos: otorga control administrativo completo sobre todos los recursos relacionados con la base de datos (bases de datos autónomas, sistemas de base de datos, copias de seguridad, etc.).
-
en el arrendamiento: la política se aplica a todo el arrendamiento (todos los compartimentos).
-
donde sets-intersect(
request.groups.name
,target.resource.compartment.tag.database.admins
)request.groups.name
: representa los grupos a los que pertenece el usuario.target.resource.compartment.tag.database.admins
: etiqueta en el compartimento que contiene una lista de grupos permitidos que pueden gestionar recursos de base de datos en ese compartimento.- sets-intersect(...): garantiza que el acceso se otorgue solo si el usuario pertenece al menos a un grupo enumerado en la etiqueta.
-
Modelo de política de OCI IAM a gran escala
Las políticas de OCI IAM son una de las partes fundamentales de proteger las cargas de trabajo en OCI. Es crucial poder escalar y soportar una gran carga de trabajo para nuestros clientes. Por eso hemos creado un modelo de política que requiere un pequeño número de políticas, dentro de los límites de políticas de OCI, que funcionen para cualquier tamaño de carga de trabajo. A continuación se muestran algunos de los motivos para adoptar el modelo de política escalable. Para obtener más información, consulte IAM con límites de dominios de identidad.
El ajuste de las políticas de OCI IAM es una tarea fundamental para mantener un entorno en la nube seguro, escalable y eficiente mientras se mantiene dentro de los límites de las políticas de OCI. Esta es la razón por la que este proceso es esencial:
-
Límites y restricciones de políticas: OCI aplica límites específicos al número de políticas que se pueden crear dentro de un arrendamiento y compartimentos. Estos límites se pueden agotar rápidamente en entornos complejos o de gran escala si no se optimizan las políticas.
-
Las razones clave incluyen:
- Evitar redundancia: la definición repetida de políticas similares para diferentes compartimentos o recursos puede provocar un bloat de políticas, lo que dificulta su gestión.
- Manténgase dentro de los límites de política de OCI: OCI tiene un número máximo de sentencias de política por política y por arrendamiento. El ajuste garantiza que no llegue a estos límites de forma prematura.
-
-
Mejora de la capacidad de gestión: a medida que las organizaciones crecen, la gestión de cientos de políticas en varios compartimentos puede volverse difícil de manejar sin realizar ajustes. Políticas optimizadas:
- Simplifique la gestión reduciendo el número total de políticas.
- Mejore la claridad y evite reglas superpuestas o en conflicto, facilitando la depuración y la auditoría.
-
Escalabilidad en entornos complejos: las políticas ajustadas permiten una ampliación perfecta mediante:
- Utilizar comodines y permisos de nivel de recurso cuando sea necesario para reducir la necesidad de reglas específicas del compartimento o específicas del recurso. Para obtener más información, consulte Condiciones.
- Aprovechamiento de la herencia de políticas para que las políticas de nivel superior se apliquen a compartimentos secundarios sin necesidad de sentencias duplicadas. Para obtener más información, consulte Herencia de políticas.
- Agrupación lógica de usuarios y recursos para aplicar permisos más amplios pero seguros.
-
Optimización del rendimiento: OCI evalúa las políticas durante cada solicitud de acceso. Un gran número de políticas redundantes o excesivamente específicas pueden aumentar el tiempo de evaluación, lo que puede llevar a decisiones de control de acceso más lentas. Las políticas optimizadas reducen los gastos generales, lo que garantiza operaciones más rápidas y eficientes.
-
Adherencia al principio de privilegio mínimo: al ajustar la escalabilidad, es fundamental mantener el principio de privilegio mínimo. Las políticas amplias y sin control pueden comprometer la seguridad, por lo que es esencial lograr un equilibrio entre el acceso mínimo y la escalabilidad.
El papel del etiquetado en la gestión de políticas
El etiquetado es una potente función de OCI que mejora significativamente la gestión de políticas al permitir un control detallado de los recursos. Las etiquetas son etiquetas de metadatos, representadas como pares clave-valor, que se pueden asociar a los recursos. Ayudan a organizar, gestionar y aplicar el control de acceso a escala, especialmente en entornos de nube complejos con varios equipos y proyectos. Para obtener más información, consulte Visión general de Tagging.
Cómo el etiquetado mejora la gestión de políticas
-
Simplifica la identificación de recursos: las etiquetas proporcionan una forma unificada de categorizar recursos en función de atributos como proyectos, entornos, propietarios o departamentos. Esto simplifica el proceso de aplicación de políticas a subconjuntos específicos de recursos.
Ejemplo: el etiquetado de recursos con
Project: ProjectX
permite políticas de acceso de destino.Allow group Developers to manage instances in tenancy where tag.Project = 'ProjectX'
-
Activar aplicación de políticas dinámicas: las políticas basadas en etiquetas se adaptan al cambio de atributos de recursos. Por ejemplo, si una nueva instancia se etiqueta con
Environment: Production
, hereda automáticamente las políticas definidas para los entornos de producción.Política de ejemplo:
Allow group QA to inspect instances in tenancy where tag.Environment = 'Test'
-
Optimiza la gobernanza de varios proyectos y equipos: las etiquetas ayudan a aislar el acceso mediante la asociación de recursos con equipos o proyectos específicos. Esto reduce la complejidad al gestionar permisos en varios grupos.
-
Facilita la automatización: las etiquetas pueden impulsar flujos de trabajo automatizados para la creación de recursos, la supervisión y la gestión del ciclo de vida. Por ejemplo, los scripts de seguimiento de costos pueden recuperar todos los recursos etiquetados con CostCenter: Marketing para generar informes de gastos detallados.
-
Mejora la gestión de costos y la generación de informes: las etiquetas permiten la atribución granular de costos a proyectos, departamentos o entornos específicos. Esto ayuda a las organizaciones a realizar un seguimiento del gasto y optimizar los presupuestos de forma más eficaz.
Gobernanza de etiquetas: control de la gestión de etiquetas
Para mantener la coherencia, la fiabilidad y la seguridad en la gestión de políticas, la creación y modificación de etiquetas deben controlarse estrechamente. La gobernanza garantiza que las etiquetas se apliquen correctamente y se alineen con los estándares de la organización. La restricción de la gestión de etiquetas a un conjunto específico de individuos o grupos es un elemento clave para mantener el control, la coherencia y la seguridad dentro del entorno en la nube de una organización.
-
¿Por qué restringir la gestión de etiquetas?
El etiquetado es una poderosa herramienta para organizar y controlar recursos, pero si se gestiona mal, puede provocar un control de acceso inconsistente o no autorizado, problemas de seguimiento de costos y desafíos de gobernanza. Al implementar políticas estrictas sobre quién puede gestionar las etiquetas, las organizaciones pueden garantizar que solo el personal autorizado pueda crear, modificar o suprimir etiquetas críticas, preservando la integridad del entorno.
-
Prevención de cambios no autorizados: las etiquetas suelen estar vinculadas a procesos de negocio importantes, como la asignación de costos, la categorización de recursos y el control de acceso. Permitir el acceso sin restricciones a las etiquetas de modificación podría provocar cambios no autorizados o accidentales, lo que podría interrumpir las operaciones o provocar una asignación incorrecta de recursos.
-
Garantizar estándares de etiquetado coherentes: las organizaciones se benefician de esquemas de etiquetado estandarizados que ayudan a organizar los recursos y permiten un seguimiento sencillo. Al limitar la gestión de etiquetas a un grupo definido de administradores, las organizaciones pueden garantizar el cumplimiento de estos estándares, evitando la fragmentación y la inconsistencia en las prácticas de etiquetado.
-
Mantenimiento de la seguridad y la conformidad: las etiquetas se pueden utilizar para aplicar políticas de seguridad y requisitos de conformidad. Por ejemplo, las etiquetas pueden definir entornos (por ejemplo, producción, desarrollo) o clasificaciones de datos confidenciales. Al permitir que solo los usuarios autorizados modifiquen estas etiquetas, se garantiza la protección de los entornos confidenciales y la aplicación correcta de los controles de acceso.
-
Reducir el riesgo de mala configuración de políticas: las políticas basadas en etiquetas en OCI (como el control de acceso a recursos) dependen de un uso de etiquetas consistente y preciso. Si el grupo o la persona equivocados pueden modificar o suprimir etiquetas, podría provocar inadvertidamente políticas de acceso demasiado amplias o restrictivas.
-
-
Cómo restringir la gestión de etiquetas en OCI
En OCI, la gestión de etiquetas se puede controlar mediante la creación y aplicación de políticas de OCI IAM que definen quién puede realizar operaciones de etiquetas, como la creación, actualización o supresión de etiquetas. Estas políticas se pueden adaptar para otorgar acceso a usuarios, grupos o compartimentos específicos, garantizando que solo las personas autorizadas puedan cambiar las etiquetas críticas.
A continuación, se muestran algunas formas de restringir la gestión de etiquetas a individuos o grupos específicos:
-
Usar control de acceso basado en grupos: el primer paso para controlar la gestión de etiquetas es garantizar que solo se otorguen a grupos específicos los permisos necesarios para gestionar etiquetas. Por ejemplo, a un grupo designado como
TagAdmins
se le pueden otorgar permisos exclusivos para gestionar la creación y las actualizaciones de etiquetas.Ejemplo de política de OCI IAM:
Allow group TagAdmins to manage tag-namespaces in tenancy
Esta política garantiza que solo el grupo
TagAdmins
pueda crear, modificar o suprimir etiquetas y espacios de nombres de etiquetas en todo el arrendamiento. Para permitir que algunos grupos, como los ingenieros de devops o los grupos de Terraform Runner, puedan utilizar estas etiquetas creadas a través de la consola para scripts, puede definir la siguiente política.Allow group devopsTeam to use tag-namespaces in tenancy Allow group terraformRunner to use tag-namespaces in tenancy Allow dynamic-group terraformRunner to use tag-namespaces in tenancy
-
Usar políticas de nivel de compartimento para control granular: las políticas de gestión de etiquetas se pueden aplicar en el nivel de compartimento, por lo que solo determinados compartimentos tienen acceso de gestión de etiquetas. Por ejemplo, si desea restringir la gestión de etiquetas a un proyecto o unidad de negocio específicos, puede aplicar políticas que limiten el acceso de etiquetas en el compartimento relevante.
Política de ejemplo para la gestión de etiquetas específica del compartimento:
Allow group TagAdmins to manage tag-namespaces in compartment ProjectA
Esto garantiza que solo los usuarios del grupo
TagAdmins
puedan gestionar etiquetas en el compartimentoProjectA
, lo que limita su acceso a otros compartimentos. Además, puede crear grupos para permitir solo a los usuarios utilizar las etiquetas creadas, pero no modificarlas a nivel de compartimento.Allow group TagUser to use tag-namespaces in compartment ProjectA
-
Etiquetado de control con espacios de nombres de etiquetas: OCI soporta
tag namespaces
, que agrupa etiquetas relacionadas. Puede controlar quién puede gestionar etiquetas en un espacio de nombres específico, lo que permite un control más granular sobre quién tiene acceso a tipos específicos de etiquetas.Política de ejemplo para la gestión de etiquetas específica del espacio de nombres:
Allow group TagAdmins to manage tag-namespaces in tenancy where tag.namespace = 'Billing'
Esto garantiza que solo los usuarios con permisos
TagAdmins
puedan gestionar etiquetas en el espacio de nombres de facturación, lo que proporciona una gobernanza más estricta en torno a las etiquetas de seguimiento de costos. -
Auditoría y supervisión de cambios de etiquetas: para garantizar que la gestión de etiquetas siga siendo segura, las organizaciones deben implantar políticas de auditoría y supervisión para realizar un seguimiento de los cambios realizados en las etiquetas. Los logs de auditoría de OCI proporcionan visibilidad de las acciones relacionadas con la creación, supresión y modificación de etiquetas. La supervisión de estos logs ayuda a identificar cualquier intento no autorizado de modificar etiquetas o cualquier patrón que sugiera una mala gestión.
-
Políticas de OCI IAM basadas en etiquetas para casos de uso reales
Ahora, con todo lo que ha aprendido anteriormente, vamos a trabajar en el ajuste de las políticas de OCI IAM para los principios de usuario e instancia en casos de uso reales. Pero antes de hacerlo, hay algunas políticas comunes que cada cliente requerirá independientemente de su caso de uso.
-
Políticas comunes de OCI IAM:
-
Políticas de OCI IAM para User Management: el grupo
IAMAdmin
es responsable de gestionar las configuraciones relacionadas con OCI IAM, como dominios, usuarios y grupos de OCI IAM.Allow group IAMAdmin to manage domains in tenancy Allow group IAMAdmin to manage users in tenancy Allow group IAMAdmin to manage groups in tenancy
-
Políticas de OCI IAM para gestión de etiquetas: el grupo
InfoSec
es responsable de gestionar las configuraciones relacionadas con la seguridad, como las políticas, los usuarios y los espacios de nombres de etiquetas de OCI IAM.Allow group InfoSec to manage tag-namespaces in tenancy Allow group InfoSec to manage policies in tenancy Allow group InfoSec to use users in tenancy Allow group InfoSec to manage groups in tenancy where all {target.group.name != ‘Administrators’, target.group.name != ‘InfoSec’}
-
Políticas de OCI IAM para (ejecutador de Terraform): el grupo
terraform-runner
está dedicado a ejecutar scripts de automatización de Terraform para el aprovisionamiento de infraestructura.Allow group terraform-runner to use tag-namespaces in tenancy Allow group terraform-runner to manage instance-family in compartment Tenants Allow group terraform-runner to manage virtual-network-family in compartment Tenants Allow group terraform-runner to manage volume-family in compartment Tenants Allow group terraform-runner to manage object-family in compartment Storage Allow group terraform-runner to manage secret-family in compartment Tenants Allow group terraform-runner to manage key-family in compartment Tenants
-
Escala de políticas de OCI IAM para entidades de usuario
Modelo de política de OCI IAM: en este modelo de política, el objetivo es escribir un pequeño número de políticas más gestionables que estén informadas por datos (etiquetas en nuestro caso), también conocidas como control de acceso basado en atributos. Haremos referencia a las etiquetas asignadas al recurso de destino o al compartimento de recursos de destino para el control de acceso como etiquetas de permiso.
Etiquetas de permiso: defina la etiqueta de permiso para cada combinación de verbo (acción) + tipo de recurso en el arrendamiento. Definen un permiso único que debe asignar a un grupo de usuarios para los recursos de destino. La lista no se define ni se realiza una vez. Comience con un pequeño número de etiquetas de permiso. Una vez que obtenga un identificador sobre el modelo de política, puede agregar más etiquetas de permiso. Para este tutorial, crearemos un espacio de nombres de etiqueta de permiso como mgmt
. Además, crearemos un espacio de nombres de etiqueta (llamaremos a infosec
) con una clave de etiqueta denominada gname
.
-
Para la siguiente estructura de compartimentos con cuatro tipos de recursos y para asignar permisos de gestión y uso para esos recursos, crearemos etiquetas de permisos.
-
Para cada permiso que necesite asignar a un destino (en la mayoría de los casos, los compartimentos), cree un grupo. Asignamos etiquetas de permiso a los recursos (mediante etiquetas por defecto de compartimento) y compartimentos de recursos. El valor de etiqueta es el grupo que debe tener el permiso proporcionado en el recurso de destino.
-
Una vez definidas las etiquetas de permiso, podemos escribir políticas. El resultado final es que solo necesitaremos una política por etiqueta de permiso definida en el arrendamiento. La misma política para el permiso proporcionado funcionará en todo el arrendamiento.
-
A medida que incorporamos más cargas de trabajo, si hay más tipos de recursos que gestionar, puede que tenga que agregar más etiquetas de permiso y políticas para esas etiquetas de permiso. De lo contrario, solo tendrá que asignar etiquetas de permiso existentes a la nueva carga de trabajo con un grupo de usuarios que deberían tener acceso. No tenemos que escribir ninguna política nueva para la nueva carga de trabajo.
Este enfoque seguirá siendo coherente en todos los ejemplos que se tratan aquí, sirviendo como base para definir grupos y políticas de OCI IAM.
Ejemplo 1: compartimento para cada aplicación
Paso 1: Obtenga una comprensión completa de la visión general del negocio del cliente
CompanyA es una empresa tecnológica en crecimiento que desarrolla y despliega varias aplicaciones nativas en la nube para sus clientes. Cada aplicación atiende a un segmento de clientes específico, con estrictos requisitos de seguridad y conformidad. Para garantizar el aislamiento, la escalabilidad y el control de acceso eficiente, CompanyA organiza sus recursos de OCI mediante un enfoque de compartimentación estructurado.
Paso 2: Diseño de la Estructura de Compartimentos para la Carga de Trabajo
Como se describe, CompanyA sigue el modelo de política de OCI IAM para escalar sus políticas de OCI IAM. Han creado compartimentos independientes para sus aplicaciones a fin de mantener el aislamiento de recursos.
Nota: Solo los administradores deben poder gestionar el espacio de nombres de etiqueta
mgmt
yinfosec
.
Paso 3: Diseña las siguientes etiquetas de permiso de combinación de tipo Verb+Resource
Crear grupos en OCI.
-
Conéctese al dominio de OCI IAM con una cuenta de administrador que tenga el privilegio de crear grupos.
-
Vaya a Identidad y seguridad y haga clic en Dominios en Identidad.
-
Seleccione el compartimento y haga clic en el dominio para el que desea crear los grupos.
-
Haga clic en Grupos.
-
Defina sus grupos según las etiquetas de permiso. (Opcionalmente) agregue los usuarios a esos grupos.
Nota: Tendrá que crear grupos para una combinación única de permiso y destino. Si el mismo grupo funcional de usuarios (NetworkAdmin) necesita tener acceso para gestionar la red en todos los destinos, solo necesita un grupo para gestionar el acceso en todos los destinos.
A continuación se muestran las etiquetas de permiso y los grupos de OCI IAM para esas etiquetas. Siga los pasos anteriores para crear grupos para cada una de las etiquetas de permiso definidas.
-
Compartimento raíz: el compartimento raíz sirve como capa de gestión de nivel superior. Dónde tendremos nuestros grupos de administradores etiquetados con etiquetas de permiso. Las siguientes etiquetas son:
- Administradores: permiso
manageall
para gestionar la gestión general del arrendamiento. - UseAdministrators: permiso
useall
para acceder a recursos en todo el arrendamiento. - Auditor: permiso
readall
con acceso de solo lectura a recursos para la supervisión en todo el arrendamiento.
- Administradores: permiso
-
Modelo de compartimento por aplicación: CompanyA tiene varias aplicaciones basadas en la nube. Crearemos un compartimento principal independiente para cada aplicación. Exploremos cómo se aplica este modelo a Aplicación 1 (App1) y Aplicación 2 (App2) como compartimentos principales.
-
Aplicación 1 (App1): una aplicación orientada al cliente alojada en OCI.
- Compartimento de red: compartimento para todos los recursos relacionados con la red, como VCN, subredes, etc. Ahora, podemos crear las etiquetas de permiso y sus respectivos grupos de OCI IAM.
- App1NetworkAdmin: etiqueta de permiso de recursos
managenetwork
para ingenieros que gestionan recursos de red para App1. - App1NetworkUser: etiqueta de permiso de recursos
usenetwork
para desarrolladores que necesitan acceso limitado a configuraciones de red de App1. - App1NetworkReader: etiqueta de permiso de recursos
readnetwork
para auditores que verifican la configuración de red de App1.
- App1NetworkAdmin: etiqueta de permiso de recursos
- Compartimento informático: compartimento para instancias informáticas. Ahora, podemos crear las etiquetas de permiso y sus respectivos grupos de OCI IAM.
- App1ComputeAdmin: etiqueta de permiso de recursos
managecompute
para administradores del sistema que aprovisionan y escalan instancias informáticas para el backend App1. - App1ComputeUser: etiqueta de permiso de recursos
usecompute
para desarrolladores que despliegan y prueban servicios de backend de App1. - App1ComputeReader: etiqueta de permiso de recursos
readcompute
para auditores que supervisan el uso de recursos informáticos para App1.
- App1ComputeAdmin: etiqueta de permiso de recursos
- Compartimento de datos: compartimento para recursos relacionados con la base de datos y el almacenamiento. Ahora, podemos crear las etiquetas de permiso y sus respectivos grupos de OCI IAM.
- App1DataAdmin: etiqueta de permiso de recursos
managedb
para administradores de bases de datos que gestionan bases de datos autónomas de Oracle y OCI Object Storage para App1. - App1DataUser: etiqueta de permiso de recursos
usedb
para científicos de datos que acceden a juegos de datos para su análisis con respecto a App1. - App1DataReader: etiqueta de permiso de recursos
readdb
para los auditores que revisan las configuraciones de base de datos de App1.
- App1DataAdmin: etiqueta de permiso de recursos
- Compartimento de red: compartimento para todos los recursos relacionados con la red, como VCN, subredes, etc. Ahora, podemos crear las etiquetas de permiso y sus respectivos grupos de OCI IAM.
-
Aplicación 2 (App2): sistema interno de planificación de recursos empresariales (ERP) para las operaciones de la empresa.
Nota: También aquí seguiremos el mismo enfoque de estructura de compartimento y crearemos Compartimento de red, Compartimento informático y Compartimento de datos en el compartimento App2 principal. Para evitar la redundancia, anotaremos las etiquetas de permiso y los grupos de OCI IAM para App2.
-
Compartimento de red:
- App2NetworkAdmin: etiqueta de permiso de recursos
managenetwork
. - App2NetworkUser: etiqueta de permiso de recursos
usenetwork
. - App2NetworkReader: etiqueta de permiso de recursos
readnetwork
.
- App2NetworkAdmin: etiqueta de permiso de recursos
-
Compartimento de recursos informáticos:
- App2ComputeAdmin: etiqueta de permiso de recursos
managecompute
. - App2ComputeUser: etiqueta de permiso de recursos
usecompute
. - App2ComputeReader: etiqueta de permiso de recursos
readcompute
.
- App2ComputeAdmin: etiqueta de permiso de recursos
-
Compartimento de datos:
- App2DataAdmin: etiqueta de permiso de recursos
managedb
. - App2DataUser: etiqueta de permiso de recursos
usedb
. - App2DataReader: etiqueta de permiso de recursos
readdb
.
- App2DataAdmin: etiqueta de permiso de recursos
-
-
Nota: Aplique una etiqueta de permiso a un destino (el destino puede ser un recurso o compartimento) para dictar qué grupo tendrá ese permiso específico en el destino para App1 y App2.
Paso 4: Escribir políticas de OCI IAM para esas etiquetas de permiso
Crearemos las políticas para CompanyA con el mismo enfoque que se trata aquí: Tener menos que ser más: escalar políticas de OCI IAM para grupos. Para ello, cree un espacio de nombres de etiqueta (llamaremos a infosec
) con una clave de etiqueta denominada gname
.
-
Conéctese al dominio de OCI IAM con una cuenta de administrador que tenga el privilegio de crear políticas.
-
Vaya a Identidad y seguridad y haga clic en Políticas en Identidad.
-
Seleccione el compartimento raíz y haga clic en Crear Política.
-
Introduzca Nombre, Descripción en la política y agregue también las sentencias de política. Haga clic en Crear.
-
Política de todos los recursos:
Allow any-user to manage all-resources in tenancy where sets-intersect(request.groups.name,target.resource.compartment.tag.mgmt.manageall) Allow any-user to use all-resources in tenancy where sets-intersect(request.groups.name,target.resource.compartment.tag.mgmt.useall) Allow any-user to read all-resources in tenancy where sets-intersect(request.groups.name,target.resource.compartment.tag.mgmt.readall)
Nota: Siga el mismo procedimiento para definir todas las políticas mencionadas a continuación y agregar sus respectivas sentencias de política.
-
Política de Cloudguard:
Allow any-user to manage cloud-guard-family in tenancy where sets-intersect(request.groups.name,target.resource.compartment.tag.mgmt.managecspm) Allow any-user to use cloud-guard-family in tenancy where sets-intersect(request.groups.name,target.resource.compartment.tag.mgmt.usecspm) Allow any-user to read cloud-guard-family in tenancy where sets-intersect(request.groups.name,target.resource.compartment.tag.mgmt.readcspm)
-
Política de red:
Allow any-user to manage virtual-network-family in tenancy where sets-intersect(request.groups.name,target.resource.compartment.tag.mgmt.managenetwork) Allow any-user to use virtual-network-family in tenancy where sets-intersect(request.groups.name,target.resource.compartment.tag.mgmt.useetwork) Allow any-user to read virtual-network-family in tenancy where sets-intersect(request.groups.name,target.resource.compartment.tag.mgmt.readnetwork)
-
Política de recursos informáticos:
Allow any-user to manage instance-family in tenancy where sets-intersect(request.groups.name,target.resource.compartment.tag.mgmt.managecompute) Allow any-user to use instance-family in tenancy where sets-intersect(request.groups.name,target.resource.compartment.tag.mgmt.usecompute) Allow any-user to read instance-family in tenancy where sets-intersect(request.groups.name,target.resource.compartment.tag.mgmt.readcompute)
-
Política de base de datos:
Allow any-user to manage database-family in tenancy where sets-intersect(request.groups.name,target.resource.compartment.tag.mgmt.managedb) Allow any-user to use database-family in tenancy where sets-intersect(request.groups.name,target.resource.compartment.tag.mgmt.usedb) Allow any-user to read database-family in tenancy where sets-intersect(request.groups.name,target.resource.compartment.tag.mgmt.readdb)
-
Ejemplo 2: Compartimento para cada cliente/inquilino
Paso 1: Obtenga una comprensión completa de la visión general del negocio del cliente
CompanyB Solutions es un proveedor de software independiente (ISV) líder que proporciona aplicaciones SaaS basadas en inquilinos en infraestructura en la nube, gestión de datos y análisis. CompanyB atiende a varios clientes de todos los sectores, ofreciendo soluciones fluidas, seguras y escalables. Su éxito depende del uso de OCI con una estructura compartimental bien diseñada para gestionar los recursos de manera eficiente, al tiempo que cumplen los requisitos de seguridad y cumplimiento.
Paso 2: Diseño de la Estructura de Compartimentos para la Carga de Trabajo
CompanyB ha aislado las cargas de trabajo de sus clientes y ha creado un subcompartimento dedicado. Además, tienen un compartimento de red, almacenamiento compartido y compartimento de base de datos. Incluso CompanyB sigue el modelo de política de OCI IAM para escalar sus políticas de OCI IAM.
Paso 3: Diseñar las siguientes etiquetas de permiso de combinación de tipo Verb+Resource
Para crear grupos, consulte el ejemplo 1, paso 3. Tendrá que crear grupos para todas las etiquetas de permiso que se definen a continuación.
-
Compartimento raíz: gobernanza centralizada: el componente raíz actúa como capa central para supervisar todos los recursos y actividades en todo el arrendamiento de OCI. Dónde tendremos nuestros grupos de administradores etiquetados con etiquetas de permiso. Las siguientes etiquetas son:
- Administradores: permiso
manageall
para gestionar la gestión general del arrendamiento. - UseAdministrators: permiso
useall
para acceder a recursos en todo el arrendamiento. - Auditor: permiso
readall
con acceso de solo lectura a recursos para la supervisión en todo el arrendamiento.
- Administradores: permiso
-
Compartimento de red: eje central de operaciones: el compartimento de red soporta la infraestructura de red en la nube de CompanyB, lo que permite la conectividad en todos los recursos. Esto incluye redes virtuales en la nube (VCN), subredes, gateways y equilibradores de carga. Permítanos definir las etiquetas de permiso y sus respectivos grupos de OCI IAM.
- NetworkAdmin: etiqueta de permiso de recursos
managenetwork
para ingenieros que gestionan recursos de red para CompanyB. - NetworkUser: etiqueta de permiso de recursos
usenetwork
para desarrolladores que necesitan acceso limitado a las configuraciones de red de CompanyB. - NetworkReader: etiqueta de permiso de recursos
readnetwork
para auditores que verifican la configuración de red de CompanyB.
- NetworkAdmin: etiqueta de permiso de recursos
-
Compartimento de inquilinos - Compartimentos aislados para diferentes cargas de trabajo de clientes: el compartimento de inquilinos está estructurado para aislar recursos y cargas de trabajo para cada cliente (inquilino). Esto garantiza que CompanyB ofrezca servicios seguros y privados mientras mantiene la eficiencia operativa.
-
Compartimento de inquilino 1: el inquilino 1 representa un cliente de empresa principal que utiliza CompanyB para servicios de registro y desarrollo de aplicaciones. A continuación se muestran las etiquetas de permiso y los grupos de OCI IAM respectivos:
t1devadmin
: el permiso de recursomanageappdev
para el equipo de desarrollo para el inquilino 1 tiene privilegios administrativos para configurar y desplegar aplicaciones personalizadas.t1devuser
: permiso de recursouseappdev
para supervisar y ajustar los recursos de la aplicación. Los desarrolladores de Tenant 1 utilizan estos recursos para el desarrollo y las pruebas diarias.t1logsadmin
yt1devuser
: el permiso de recursosmanagelogs
yuselogs
para los roles de registro y supervisión garantiza que los administradores configuren los servicios de registro mientras los desarrolladores acceden a los logs para depurar y optimizar las aplicaciones.t1devadmin
yt1devuser
: permiso de recursomanagecspm
yusecspm
para el inquilino 1, ya que también se centran en la estrategia de seguridad, con la capacidad de supervisar y solucionar riesgos de seguridad.
-
Tenant 2 and Tenant 3 Compartments: The structure for Tenant 2 and Tenant 3 mirrors that of Tenant 1, with roles like
t2devadmin
,t2devuser
,t3devadmin
,t3devuser
,t2logsadmin
andt3logsadmin
ensuring that each tenant operates in a fully isolated environment. Este enfoque permite a CompanyB mantener una gobernanza coherente a la vez que se atiende a las necesidades específicas de los inquilinos. -
Compartimento compartido - Recursos centralizados para todos los inquilinos: el compartimento compartido incluye recursos como bases de datos y almacenamiento de objetos que utilizan varios inquilinos, pero que permanecen segregados lógicamente por motivos de privacidad y seguridad.
- Compartimento de base de datos:
dbadmin
: permiso de recursomanagedb
para que los administradores de base de datos de CompanyB manejen las bases de datos compartidas utilizadas por todos los inquilinos, incluido el aprovisionamiento, la escala y la aplicación de parches.dbuser
: el permiso de recursousedb
para usuarios específicos de inquilino accede a sus respectivos esquemas o servicios de base de datos.dbreader
: el permiso de recursoreaddb
para auditores tiene acceso de solo lectura para garantizar que las configuraciones de base de datos cumplan con las políticas de seguridad.
- Compartimento de almacenamiento: OCI Object Storage se gestiona de forma centralizada, con cubos dedicados para cada inquilino:
osadmin
: permiso de recursomanageobject
responsable de gestionar los recursos de almacenamiento de objetos compartidos.osuser
: el permiso de recurso de almacenamiento específico del inquilinouseobject
(o, por ejemplo,t1osur
,t2osur
,t3osur
) garantiza que los inquilinos solo accedan a sus respectivos cubos.osreader
: permiso de recursoreadobject
para que los equipos de conformidad revisen las configuraciones de almacenamiento y los patrones de uso.
- Compartimento de base de datos:
-
Paso 4: Escribir políticas de OCI IAM para esas etiquetas de permiso
Para crear políticas, consulte el ejemplo 1, paso 4. Tendrá que crear las siguientes políticas.
-
Política de todos los recursos:
Allow any-user to manage all-resources in tenancy where sets-intersect(request.groups.name,target.resource.compartment.tag.mgmt.manageall) Allow any-user to use all-resources in tenancy where sets-intersect(request.groups.name,target.resource.compartment.tag.mgmt.useall) Allow any-user to read all-resources in tenancy where sets-intersect(request.groups.name,target.resource.compartment.tag.mgmt.readall)
-
Política de Cloudguard:
Allow any-user to manage cloud-guard-family in tenancy where sets-intersect(request.groups.name,target.resource.compartment.tag.mgmt.managecspm) Allow any-user to use cloud-guard-family in tenancy where sets-intersect(request.groups.name,target.resource.compartment.tag.mgmt.usecspm) Allow any-user to read cloud-guard-family in tenancy where sets-intersect(request.groups.name,target.resource.compartment.tag.mgmt.readcspm)
-
Política de red:
Allow any-user to manage virtual-network-family in tenancy where sets-intersect(request.groups.name,target.resource.compartment.tag.mgmt.managenetwork) Allow any-user to use virtual-network-family in tenancy where sets-intersect(request.groups.name,target.resource.compartment.tag.mgmt.useetwork) Allow any-user to read virtual-network-family in tenancy where sets-intersect(request.groups.name,target.resource.compartment.tag.mgmt.readnetwork)
-
Política de Logs:
Allow any-user to manage logging-family in tenancy where sets-intersect(request.groups.name,target.resource.compartment.tag.mgmt.managelogs) Allow any-user to use logging-family in tenancy where sets-intersect(request.groups.name,target.resource.compartment.tag.mgmt.uselogs) Allow any-user to read logging-family in tenancy where sets-intersect(request.groups.name,target.resource.compartment.tag.mgmt.readlogs)
-
Política de Appdev:
Allow any-user to manage instance-family in tenancy where sets-intersect(request.groups.name,target.resource.compartment.tag.mgmt.manageappdev) Allow any-user to use instance-family in tenancy where sets-intersect(request.groups.name,target.resource.compartment.tag.mgmt.useappdev) Allow any-user to read instance-family in tenancy where sets-intersect(request.groups.name,target.resource.compartment.tag.mgmt.readappdev)
-
Política de base de datos:
Allow any-user to manage database-family in tenancy where sets-intersect(request.groups.name,target.resource.compartment.tag.mgmt.managedb) Allow any-user to use database-family in tenancy where sets-intersect(request.groups.name,target.resource.compartment.tag.mgmt.usedb) Allow any-user to read database-family in tenancy where sets-intersect(request.groups.name,target.resource.compartment.tag.mgmt.readdb)
-
Política de almacenamiento:
Allow any-user to manage object-family in tenancy where sets-intersect(request.groups.name,target.resource.compartment.tag.mgmt.manageobject) Allow any-user to use object-family in tenancy where sets-intersect(request.groups.name,target.resource.compartment.tag.mgmt.useobject) Allow any-user to read object-family in tenancy where sets-intersect(request.groups.name,target.resource.compartment.tag.mgmt.readobject)
Ejemplo 3: Estructura de compartimento de gran empresa
Paso 1: Obtenga una comprensión completa de la visión general del negocio del cliente
CompanyC Solutions, una organización multinacional especializada en soluciones de software innovadoras, decidió migrar sus cargas de trabajo esenciales a OCI. La compañía opera en industrias altamente reguladas como finanzas y atención médica, donde la seguridad, el cumplimiento y la escalabilidad son de suma importancia.
Paso 2: Diseño de la Estructura de Compartimentos para la Carga de Trabajo
Vamos a explorar ahora la estructura de compartimentos para CompanyC, que sigue el modelo de política de OCI IAM para escalar sus políticas de OCI IAM.
Paso 3: Diseña las siguientes etiquetas de permiso de combinación de tipo Verb+Resource
Para crear grupos, consulte el ejemplo 1, paso 3. Debe crear grupos para todas las siguientes etiquetas de permiso.
-
Compartimento raíz: gobernanza centralizada: el componente raíz actúa como capa central para supervisar todos los recursos y actividades en todo el arrendamiento de OCI. Dónde tendremos nuestros grupos de administradores etiquetados con etiquetas de permiso. Las siguientes etiquetas son:
- Administradores: permiso
manageall
para gestionar la gestión general del arrendamiento. - UseAdministrators: permiso
useall
para acceder a recursos en todo el arrendamiento. - Auditor: permiso
readall
con acceso de solo lectura a recursos para la supervisión en todo el arrendamiento.
- Administradores: permiso
-
Compartimento PROD: compartimento para alojar cargas de trabajo de producción esenciales que afectan directamente a las operaciones de negocio y a los usuarios finales. Cada aplicación tiene su subcompartimento dedicado para el aislamiento de recursos y la gestión optimizada. Permítanos definir las etiquetas de permiso y sus respectivos grupos de OCI IAM.
- NetworkAdmin: etiqueta de permiso de recursos
managenetwork
para ingenieros que gestionan recursos de red para CompanyC. - NetworkReader: etiqueta de permiso de recursos
readnetwork
para auditores que verifican la configuración de red de CompanyC. - ComputeAdmin: etiqueta de permiso de recursos
managecompute
para administradores de sistemas que aprovisionan y escalan instancias informáticas para CompanyC. - ComputeReader: etiqueta de permiso de recursos
readcompute
para auditores que supervisan el uso de recursos informáticos para CompanyC. - StorageReader: permiso de recurso
manageobject
para que los equipos administradores de almacenamiento gestionen las configuraciones de almacenamiento. - StorageReader: permiso de recurso
readobject
para que los equipos de conformidad revisen las configuraciones de almacenamiento y los patrones de uso. - SecurityAdmin: permiso de recurso
managecspm
para Compartment PROD, ya que también se centran en la estrategia de seguridad, con la capacidad de supervisar y solucionar riesgos de seguridad.
Ahora continuaremos definiendo las etiquetas de permiso y los respectivos grupos de OCI IAM para los subcompartimentos específicos de la aplicación. En aras del tiempo, hemos fusionado y definido permisos para los 3 compartimentos de aplicación diferentes.
- Compartimentos de aplicación:
- PRApp1NetAdmin, PRApp2NetAdmin y PRApp3NetAdmin: administre grupos de OCI IAM con la etiqueta de permiso de recursos
managenetwork
para ingenieros que gestionen recursos de red para App1, App2 y App3, respectivamente. - PRApp1NetUser, PRApp2NetUser y PRApp3NetUser: administre grupos de OCI IAM con la etiqueta de permiso de recursos
usenetwork
para ingenieros que gestionen recursos de red para App1, App2 y App3, respectivamente. - PRApp1ComputeAdmin, PRApp2ComputeAdmin y PRApp3ComputeAdmin: administre grupos de OCI IAM con la etiqueta de permiso de recursos
managecompute
para ingenieros que gestionen instancias de OCI Compute para App1, App2 y App3 respectivamente. - PRApp1ComputeUser, PRApp2ComputeUser y PRApp3ComputeUser: administre grupos de OCI IAM con la etiqueta de permiso de recursos
usecompute
para ingenieros que utilicen instancias de OCI Compute para App1, App2 y App3, respectivamente. - PRApp1StorageAdmin, PRApp2StorageAdmin y PRApp3StorageAdmin: administre grupos de OCI IAM con la etiqueta de permiso de recursos
manageobject
para ingenieros que gestionen OCI Object Storage para App1, App2 y App3 respectivamente. - PRApp1StorageUser, PRApp2StorageUser y PRApp3StorageUser: administre grupos de OCI IAM con la etiqueta de permiso de recursos
useobject
para ingenieros que utilicen OCI Object Storage para App1, App2 y App3 respectivamente.
- PRApp1NetAdmin, PRApp2NetAdmin y PRApp3NetAdmin: administre grupos de OCI IAM con la etiqueta de permiso de recursos
- NetworkAdmin: etiqueta de permiso de recursos
-
Compartimento NPROD: dedicado a entornos de almacenamiento en área temporal, desarrollo y garantía de calidad. Este compartimento está estructurado de forma similar a PROD para garantizar la coherencia. Permítanos definir las etiquetas de permiso y sus respectivos grupos de OCI IAM.
- NetworkAdmin: etiqueta de permiso de recursos
managenetwork
para ingenieros que gestionan recursos de red para CompanyC. - NetworkReader: etiqueta de permiso de recursos
readnetwork
para auditores que verifican la configuración de red de CompanyC. - ComputeAdmin: etiqueta de permiso de recursos
managecompute
para administradores de sistemas que aprovisionan y escalan instancias de OCI Compute para CompanyC. - ComputeReader: etiqueta de permiso de recursos
readcompute
para auditores que supervisan el uso de recursos de OCI Compute para CompanyC. - StorageReader: permiso de recurso
manageobject
para que los equipos administradores de almacenamiento gestionen las configuraciones de almacenamiento. - StorageReader: permiso de recurso
readStorage
para que los equipos de conformidad revisen las configuraciones de almacenamiento y los patrones de uso. - SecurityAdmin: permiso de recurso
managecspm
para Compartment NPROD, ya que también se centran en la estrategia de seguridad, con la capacidad de supervisar y solucionar los riesgos de seguridad.
Del mismo modo, ahora seguiremos definiendo las etiquetas de permiso y los respectivos grupos de OCI IAM para los subcompartimentos específicos de la aplicación.
- Compartimentos de aplicación:
- NPApp1NetAdmin, NPApp2NetAdmin y NPApp3NetAdmin: administre grupos de OCI IAM con la etiqueta de permiso de recursos
managenetwork
para ingenieros que gestionen recursos de red para App1, App2 y App3, respectivamente. - NPApp1NetUser, NPApp2NetUser y NPApp3NetUser: administre grupos de OCI IAM con la etiqueta de permiso de recursos
usenetwork
para ingenieros que gestionen recursos de red para App1, App2 y App3, respectivamente. - NPApp1ComputeAdmin, NPApp2ComputeAdmin y NPApp3ComputeAdmin: administre grupos de OCI IAM con la etiqueta de permiso de recursos
managecompute
para ingenieros que gestionen instancias de OCI Compute para App1, App2 y App3 respectivamente. - NPApp1ComputeUser, NPApp2ComputeUser y NPApp3ComputeUser: administre grupos de OCI IAM con la etiqueta de permiso de recursos
usecompute
para ingenieros que utilicen instancias de OCI Compute para App1, App2 y App3, respectivamente. - NPApp1StorageAdmin, NPApp2StorageAdmin y NPApp3StorageAdmin: administre grupos de OCI IAM con la etiqueta de permiso de recursos
manageobject
para ingenieros que gestionen OCI Object Storage para App1, App2 y App3 respectivamente. - NPApp1StorageUser, NPApp2StorageUser y NPApp3StorageUser: administre grupos de OCI IAM con la etiqueta de permiso de recursos
useobject
para ingenieros que utilicen OCI Object Storage para App1, App2 y App3 respectivamente.
- NPApp1NetAdmin, NPApp2NetAdmin y NPApp3NetAdmin: administre grupos de OCI IAM con la etiqueta de permiso de recursos
- NetworkAdmin: etiqueta de permiso de recursos
-
Compartimento compartido: el compartimento compartido aloja recursos para la supervisión, como el registro y los servicios de OCI de Cloud Guard. También tiene claves para el cifrado y descifrado que utilizan varios inquilinos al tiempo que garantiza la segregación lógica para mantener la privacidad y la seguridad. Todos los administradores de sus aplicaciones que necesiten acceso a estos servicios se agregarán a los grupos de OCI IAM creados para estos servicios. Permítanos definir las etiquetas de permiso y los grupos de IAM de OCI correspondientes.
-
Compartimentos de Oracle Cloud Guard:
cspmAdmin
: administre grupos de OCI IAM con la etiqueta de permiso de recursosmanagecspm
para administradores que gestionan Oracle Cloud Guard para compartimentos PROD y Non PROD.cspmUser
: grupos de OCI IAM con etiqueta de permiso de recursosusecspm
para ingenieros que utilizan/supervisan Oracle Cloud Guard para compartimentos PROD y Non PROD.cspmReader
: grupos de OCI IAM con etiqueta de permiso de recursosreadcspm
para ingenieros que leen Oracle Cloud Guard para compartimentos PROD y Non PROD.
-
Compartimentos de OCI Logging:
logsAdmin
: administre grupos de OCI IAM con la etiqueta de permiso de recursosmanagelogs
para administradores que gestionan OCI Logging para compartimentos PROD y Non PROD.logsUser
: grupos de OCI IAM con etiqueta de permiso de recursosuselogs
para ingenieros que utilizan/supervisan OCI Logging para compartimentos PROD y Non PROD.logsReader
: grupos de OCI IAM con etiqueta de permiso de recursosreadlogs
para ingenieros que leen OCI Logging para compartimentos PROD y Non PROD.
-
Compartimentos de claves:
kmsAdmin
: administre grupos de OCI IAM con la etiqueta de permiso de recursosmanagekeys
para administradores que gestionan el almacén de claves para los compartimentos PROD y Non PROD.kmsUser
: grupos de OCI IAM con etiqueta de permiso de recursosusekeys
para ingenieros que utilizan/supervisan el almacén de claves para los compartimentos PROD y Non PROD.kmsReader
: grupos de OCI IAM con etiqueta de permiso de recursosreadkeys
para ingenieros que leen el almacén de claves para los compartimentos PROD y Non PROD.
-
-
Compartimento de terreno de juego: entorno flexible y aislado para experimentación, desarrollo y pruebas. Este compartimento no está vinculado a restricciones de producción o conformidad, por lo que es ideal para la innovación. Aquí solo tendremos un grupo de administradores de OCI IAM para el compartimento muy secundario y otorgaremos los privilegios de gestión a todos los recursos de OCI necesarios para probar los requisitos.
-
Compartimentos de desarrollo:
DevAdmin
: administre grupos de OCI IAM con permisos de recursosmanagenetwork
,managecompute
,manageobject
,managekeys
,managelogs
para administradores de desarrollo para probar una nueva implantación en el compartimento de desarrollo.
-
Compartimentos de prueba:
TestAdmin
: administre grupos de OCI IAM con permisos de recursosmanagenetwork
,managecompute
,manageobject
,managekeys
,managelogs
para administradores de desarrollo para probar una nueva implantación en el compartimento de prueba.
-
Compartimentos de prueba de rendimiento:
PerfTestAdmin
: administre grupos de OCI IAM con permisos de recursosmanagenetwork
,managecompute
,manageobject
,managekeys
,managelogs
para administradores de desarrollo para probar una nueva implantación en el compartimento de prueba de rendimiento.
-
Paso 4: Escribir políticas de OCI IAM para esas etiquetas de permiso
Para crear políticas, consulte el ejemplo 1, paso 4. Debe crear las siguientes políticas.
-
Política de todos los recursos:
Allow any-user to manage all-resources in tenancy where sets-intersect(request.groups.name,target.resource.compartment.tag.mgmt.manageall) Allow any-user to use all-resources in tenancy where sets-intersect(request.groups.name,target.resource.compartment.tag.mgmt.useall) Allow any-user to read all-resources in tenancy where sets-intersect(request.groups.name,target.resource.compartment.tag.mgmt.readall)
-
Política de Logs:
Allow any-user to manage logging-family in tenancy where sets-intersect(request.groups.name,target.resource.compartment.tag.mgmt.managelogs) Allow any-user to use logging-family in tenancy where sets-intersect(request.groups.name,target.resource.compartment.tag.mgmt.uselogs) Allow any-user to read logging-family in tenancy where sets-intersect(request.groups.name,target.resource.compartment.tag.mgmt.readlogs)
-
Política de Cloudguard:
Allow any-user to manage cloud-guard-family in tenancy where sets-intersect(request.groups.name,target.resource.compartment.tag.mgmt.managecspm) Allow any-user to use cloud-guard-family in tenancy where sets-intersect(request.groups.name,target.resource.compartment.tag.mgmt.usecspm) Allow any-user to read cloud-guard-family in tenancy where sets-intersect(request.groups.name,target.resource.compartment.tag.mgmt.readcspm)
-
Política de clave
Allow any-user to manage keys in tenancy where sets-intersect(request.groups.name,target.resource.compartment.tag.mgmt.managekeys) Allow any-user to use keys in tenancy where sets-intersect(request.groups.name,target.resource.compartment.tag.mgmt.usekeys) Allow any-user to read keys in tenancy where sets-intersect(request.groups.name,target.resource.compartment.tag.mgmt.readkeys)
-
Política de Aplicación:
Allow any-user to manage virtual-network-family in tenancy where sets-intersect(request.groups.name,target.resource.compartment.tag.mgmt.managenetwork) Allow any-user to use virtual-network-family in tenancy where sets-intersect(request.groups.name,target.resource.compartment.tag.mgmt.useetwork) Allow any-user to manage instance-family in tenancy where sets-intersect(request.groups.name,target.resource.compartment.tag.mgmt.managecompute) Allow any-user to use instance-family in tenancy where sets-intersect(request.groups.name,target.resource.compartment.tag.mgmt.usecompute) Allow any-user to manage object-family in tenancy where sets-intersect(request.groups.name,target.resource.compartment.tag.mgmt.manageobject) Allow any-user to use object-family in tenancy where sets-intersect(request.groups.name,target.resource.compartment.tag.mgmt.useobject)
-
Política del parque infantil:
Allow any-user to manage virtual-network-family in tenancy where sets-intersect(request.groups.name,target.resource.compartment.tag.mgmt.managenetwork) Allow any-user to manage virtual-network-family in tenancy where sets-intersect(request.groups.name,target.resource.compartment.tag.mgmt.managenetwork) Allow any-user to manage object-family in tenancy where sets-intersect(request.groups.name,target.resource.compartment.tag.mgmt.manageobject) Allow any-user to manage logging-family in tenancy where sets-intersect(request.groups.name,target.resource.compartment.tag.mgmt.managelogs) Allow any-user to manage vaults in compartment Playground where request.principal.group.tag.infosec.gname=target.compartment.tag.mgmt.manageVaults Allow any-user to manage keys in compartment Playground where request.principal.group.tag.infosec.gname=target.compartment.tag.mgmt.manageKeys
Nota: Para estos escenarios cada vez que incorpore una nueva carga de trabajo:
- Compruebe si necesita etiquetas de permiso adicionales. Si lo hace, créelos junto con las políticas de OCI IAM para esas etiquetas de permiso.
- Cree grupos para gestionar el acceso al nuevo compartimento de carga de trabajo.
- Etiquete el compartimento de carga de trabajo con etiquetas de permiso y los grupos creados.
Modelo de permisos basado en etiquetas para control de acceso granular
Hasta ahora, todos los ejemplos han tratado los permisos de creación, gestión, usuario o lectura para una familia de recursos. Sin embargo, la mayoría de los clientes necesitan un control de acceso granular para seguir el modelo con privilegios mínimos. El tutorial se centra en la comprensión del modelo de política, por lo que hablamos de un caso de uso simple. Sin embargo, permítanme tomar un ejemplo de cuatro personas de red y cómo puede diseñar etiquetas de permisos granulares y políticas de OCI IAM para esas cuatro personas.
-
NetworkOwner: esta persona o equipo es propietario de la implantación de red para el arrendamiento de OCI. Tienen acceso para configurar FastConnect y permiso para gestionar la red para todas las aplicaciones.
-
NetworkAdmin: este equipo es propietario de la implantación de red para los equipos de aplicación. Pueden crear VCN para equipos de aplicación. Sin embargo, no tienen acceso para configurar un firewall de red o FastConnect.
-
NetworkOperator: este equipo es propietario de la red de la aplicación. El equipo puede crear una subred de aplicación en la VCN de la aplicación o en una VCN compartida. Sin embargo, no tienen permiso para gestionar o actualizar VCN.
-
NetworkUser: es el equipo de administración de aplicaciones que necesita permiso de uso en los recursos de red de la aplicación.
Definiremos networkowner
, networkadmin
, networkoperator
y networkuser
como cuatro etiquetas en el compartimento de red. Para esas etiquetas, asignaremos nombres de grupo que tengan acceso al compartimento de red.
-
Política NetworkOwner:
Allow any-user to manage virtual-network-family in tenancy where sets-intersect(request.groups.name,target.resource.compartment.tag.Net.networkowner)
-
Política NetworkAdmin:
Allow any-user to manage vcns in tenancy where sets-intersect(request.groups.name,target.resource.compartment.tag.Net.networkadmin) Allow any-user to manage subnets in tenancy where sets-intersect(request.groups.name,target.resource.compartment.tag.Net.networkadmin) Allow any-user to manage route-tables in tenancy where sets-intersect(request.groups.name,target.resource.compartment.tag.Net.networkadmin) Allow any-user to manage security-lists in tenancy where sets-intersect(request.groups.name,target.resource.compartment.tag.Net.networkadmin) Allow any-user to manage network-security-groups in tenancy where sets-intersect(request.groups.name,target.resource.compartment.tag.Net.networkadmin) Allow any-user to manage dhcp-options in tenancy where sets-intersect(request.groups.name,target.resource.compartment.tag.Net.networkadmin) Allow any-user to manage local-peering-gateways in tenancy where sets-intersect(request.groups.name,target.resource.compartment.tag.Net.networkadmin) Allow any-user to manage service-gateways in tenancy where sets-intersect(request.groups.name,target.resource.compartment.tag.Net.networkadmin) Allow any-user to manage internet-gateways in tenancy where sets-intersect(request.groups.name,target.resource.compartment.tag.Net.networkadmin)
-
Política NetworkOperator:
Allow any-user to {VCN_ATTACH,VCN_DETACH} in tenancy where sets-intersect(request.groups.name,target.resource.compartment.tag.Net.networkoperator) Allow any-user to inspect vcns in tenancy where sets-intersect(request.groups.name,target.resource.compartment.tag.Net.networkoperator) Allow any-user to manage subnets in tenancy where sets-intersect(request.groups.name,target.resource.compartment.tag.Net.networkoperator) Allow any-user to manage route-tables in tenancy where sets-intersect(request.groups.name,target.resource.compartment.tag.Net.networkoperator) Allow any-user to manage security-lists in tenancy where sets-intersect(request.groups.name,target.resource.compartment.tag.Net.networkoperator) Allow any-user to manage network-security-groups in tenancy where sets-intersect(request.groups.name,target.resource.compartment.tag.Net.networkoperator) Allow any-user to manage dhcp-options in tenancy where sets-intersect(request.groups.name,target.resource.compartment.tag.Net.networkoperator)
-
Política NetworkUser:
Allow any-user to inspect vcns in tenancy where sets-intersect(request.groups.name,target.resource.compartment.tag.Net.networkuser) Allow any-user to use subnets in tenancy where sets-intersect(request.groups.name,target.resource.compartment.tag.Net.networkuser) Allow any-user to use vnics in tenancy where sets-intersect(request.groups.name,target.resource.compartment.tag.Net.networkuser) Allow any-user to use security-lists in tenancy where sets-intersect(request.groups.name,target.resource.compartment.tag.Net.networkuser) Allow any-user to use network-security-groups in tenancy where sets-intersect(request.groups.name,target.resource.compartment.tag.Net.networkuser)
Escala de políticas de OCI IAM para principales de instancia
Ejemplo 1: control de acceso a instancias multiinquilino para almacenamiento compartido y secretos en OCI
Paso 1: Obtenga una comprensión completa de la visión general del negocio del cliente
XYZ Cloud Solutions es un proveedor de SaaS que ofrece un sistema de gestión de documentos (DMS) alojado en OCI. La plataforma presta servicio a varios clientes empresariales, cada uno de los cuales requiere un aislamiento estricto de sus datos y, al mismo tiempo, aprovecha una infraestructura compartida.
Requisitos del cliente:
- Cada empresa (inquilino) debe tener instancias aisladas para procesar y gestionar documentos.
- Los secretos de cada inquilino (claves de API, credenciales de base de datos) solo deben ser accesibles para las instancias de ese inquilino.
- Todos los inquilinos almacenan sus documentos en un compartimento centralizado de OCI Object Storage, pero solo deben acceder a su propio cubo.
- El sistema debe admitir la escala automática y la incorporación sencilla de nuevos inquilinos.
Paso 2: Diseño de la Estructura de Compartimentos para la Carga de Trabajo
Vamos a explorar ahora la estructura de compartimentos para XYZ Cloud Solutions, que sigue el modelo de política de OCI IAM para escalar sus políticas de OCI IAM.
-
Aislamiento de inquilinos con compartimentos:
- Cree un compartimento de OCI dedicado para cada cliente empresarial (Tenant1, Tenant2, etc.).
- Despliegue instancias informáticas (VM, funciones o contenedores) en sus respectivos compartimentos.
- Almacenamiento centralizado con control de acceso.
-
Mantener un compartimento de almacenamiento compartido para cubos de OCI Object Storage:
- Cada inquilino obtiene un cubo dedicado, etiquetado con
Enterprise.Tenant=<TenantName>
. - Las políticas de OCI IAM garantizan que las instancias de cada inquilino solo puedan leer desde su propio cubo.
- Gestión de secretos con OCI Vault.
- Cada inquilino obtiene un cubo dedicado, etiquetado con
-
Almacenar credenciales de base de datos, claves de API y claves de cifrado en OCI Vault:
- Los secretos de cada inquilino se etiquetan con
Enterprise.Tenant=<TenantName>
. - Las políticas de OCI IAM solo permiten que las instancias de ese inquilino recuperen sus secretos.
- Estrategia de etiquetado empresarial para la gobernanza.
- Los secretos de cada inquilino se etiquetan con
-
Defina un espacio de nombres de etiqueta de empresa con
Enterprise.Tenant
para realizar un seguimiento de la propiedad del inquilino:- Aplique etiquetas por defecto de compartimento para etiquetar automáticamente los recursos dentro del compartimento de cada inquilino.
- Utilice políticas basadas en etiquetas para el control de acceso automatizado.
Paso 3: Creación de grupos de OCI IAM
Para garantizar una gestión de acceso segura y aislada en un entorno multiinquilino de OCI, se definirán las siguientes políticas para:
-
Grupo InfoSec: administradores de seguridad con acceso para gestionar políticas, etiquetas, usuarios y grupos.
-
Grupo de ejecutores de Terraform: grupo de ejecución de infraestructura como código (IaC) para gestionar recursos de OCI.
Nota: Estos grupos y políticas de OCI IAM ya se han creado como se describe anteriormente en la sección Políticas comunes de OCI IAM.
Paso 4: Creación de políticas de OCI IAM para los grupos definidos
Políticas de acceso a recursos de inquilino: para mantener el aislamiento de datos, los recursos de inquilino solo deben poder acceder a sus propios secretos y almacenamiento de objetos.
Allow any-user to use object-family in compartment Storage where request.principal.compartment.tag.Enterprise.Tenant = target.resource.tag.Enterprise.Tenant
Allow any-user to use secret-family in compartment Tenants where request.principal.compartment.tag.Enterprise.Tenant = target.resource.tag.Enterprise.Tenant
Si los principios de instancia de inquilino también necesitan permiso para crear nuevos objetos, puede crear nombres de cubo con el mismo nombre que el nombre de inquilino y utilizar la etiqueta de nombre de inquilino para comparar con el nombre de cubo.
Allow any-user to manage objects in compartment Storage where request.principal.compartment.tag.Enterprise.Tenant = target.bucket.name
Ejemplo 2: control de acceso detallado para el acceso a datos de varios servicios en un modelo de almacenamiento de OCI compartido
Paso 1: Obtenga una comprensión completa de la visión general del negocio del cliente
XYZ Corp es una empresa de rápido crecimiento especializada en soluciones de transformación digital. Con una presencia global, XYZ Corp opera en varias regiones y aprovecha OCI para alojar aplicaciones críticas, gestionar datos y garantizar una colaboración perfecta entre equipos.
Requisitos del cliente:
- Todas las instancias del servicio de administrador para un inquilino específico pueden leer cubos de administración en el compartimento de almacenamiento compartido.
- Todas las instancias del servicio de ventas para un inquilino específico pueden leer cubos de ventas en el compartimento de almacenamiento compartido.
- Todas las instancias del servicio de suministro para un inquilino específico pueden leer cubos de suministro en el compartimento de almacenamiento compartido.
- Todas las instancias de un inquilino específico pueden leer cubos de Shared Services en el compartimento de almacenamiento compartido.
- Todas las instancias de un inquilino específico pueden leer Secretos para ese inquilino en el compartimento de inquilino.
Paso 2: Diseño de la Estructura de Compartimentos para la Carga de Trabajo
Vamos a explorar ahora la estructura de compartimentos para XYZ Corp, que sigue el modelo de política de OCI IAM para escalar sus políticas de OCI IAM.
-
Creación de compartimentos específicos del inquilino:
- Cree un compartimento dedicado para cada inquilino.
- Todos los recursos que pertenecen a un inquilino se deben aprovisionar dentro del compartimento de ese inquilino.
-
Espacio de nombres de Enterprise Tagging:
- Defina un espacio de nombres de etiqueta de empresa con las siguientes claves de etiqueta:
Enterprise.Tenant
captura el nombre del inquilino.Enterprise.Service
captura el tipo de servicio. Por ejemplo, Administrador, Ventas, Suministro o Compartido.
- Defina un espacio de nombres de etiqueta de empresa con las siguientes claves de etiqueta:
-
Etiquetas por defecto para compartimentos de inquilino:
- Configure las etiquetas por defecto de compartimento para cada compartimento de inquilino, asegurándose de que la etiqueta
Enterprise.Tenant
se aplique automáticamente a todos los recursos del compartimento y capturando el nombre de inquilino.
- Configure las etiquetas por defecto de compartimento para cada compartimento de inquilino, asegurándose de que la etiqueta
-
Etiquetado de nivel de recurso:
- Cada recurso de un compartimento de inquilino se debe etiquetar con
Enterprise.Service
y especifica el tipo de servicio. Por ejemplo, Administrador, Ventas, Suministro, etc.
- Cada recurso de un compartimento de inquilino se debe etiquetar con
-
Etiquetado de recursos de destino (cubos y secretos):
- Etiquete cada recurso de destino (como cubos y secretos) con:
Enterprise.Tenant
captura el nombre del inquilino.Enterprise.Service
captura el tipo de servicio asociado.
- Etiquete cada recurso de destino (como cubos y secretos) con:
-
Etiquetado de cubos compartidos:
- Para los recursos de cubo compartidos, defina
Enterprise.Service = 'Shared'
para indicar la accesibilidad entre servicios.
- Para los recursos de cubo compartidos, defina
Paso 3: Creación de grupos de OCI IAM
Para garantizar una gestión de acceso segura y aislada en un entorno multiinquilino de OCI, se definirán las siguientes políticas para:
-
Grupo InfoSec: administradores de seguridad con acceso para gestionar políticas, etiquetas, usuarios y grupos.
-
Grupo de ejecutores de Terraform: grupo de ejecución de infraestructura como código (IaC) para gestionar recursos de OCI.
-
Grupo dinámico AdminInstances: con la regla de coincidencia
All {tag.Enterprise.Service.value=’Admin’}
. -
Grupo dinámico SalesInstances: con la regla de coincidencia
All {tag.Enterprise.Service.value=’Sales’}
. -
Grupo dinámico SupplyInstances: con la regla de coincidencia
All {tag.Enterprise.Service.value=’Supply’}
.
Nota: Los grupos InfoSec y Terraform-Runner y las políticas de IAM ya se han creado como se ha descrito anteriormente en la sección Políticas comunes de OCI IAM.
Paso 4: Creación de políticas de OCI IAM para los grupos definidos
Políticas de acceso a recursos de inquilino: para mantener el aislamiento de datos, los recursos de inquilino solo deben poder acceder a sus propios secretos y almacenamiento de objetos.
Allow dynamic-group AdminInstances to use object-family in compartment Storage where all {request.principal.compartment.tag.Enterprise.Tenant=target.resource.tag.Enterprise.Tenant, target.resource.tag.Enterprise.Service=’Admin’}
Allow dynamic-group SalesInstances to use object-family in compartment Storage where all {request.principal.compartment.tag.Enterprise.Tenant=target.resource.tag.Enterprise.Tenant, target.resource.tag.Enterprise.Service=’Sales’}
Allow dynamic-group SupplyInstances to use object-family in compartment Storage where all {request.principal.compartment.tag.Enterprise.Tenant=target.resource.tag.Enterprise.Tenant, target.resource.tag.Enterprise.Service=’Supply’}
Allow any-user to use object-family in compartment Storage where all {request.principal.compartment.tag.Enterprise.Tenant=target.resource.tag.Enterprise.Tenant, target.resource.tag.Enterprise.Service=’Shared’}
Allow dynamic-group AdminInstances to use secret-family in compartment Tenants where all {request.principal.compartment.tag.Enterprise.Tenant=target.resource.tag.Enterprise.Tenant, target.resource.tag.Enterprise.Service=’Admin’}
Allow dynamic-group SalesInstances to use secret-family in compartment Tenants where all {request.principal.compartment.tag.Enterprise.Tenant=target.resource.tag.Enterprise.Tenant, target.resource.tag.Enterprise.Service=’Sales’}
Allow dynamic-group SupplyInstances to use secret-family in compartment Tenants where all {request.principal.compartment.tag.Enterprise.Tenant=target.resource.tag.Enterprise.Tenant, target.resource.tag.Enterprise.Service=’Supply’}
Enlaces relacionados
Agradecimientos
-
Autor: Chetan Soni (ingeniero sénior de nube)
-
Colaborador - Kiran Thakkar (arquitecto principal maestro en la nube)
Más recursos de aprendizaje
Explore otros laboratorios en docs.oracle.com/learn o acceda a más contenido de formación gratuita en el canal YouTube de Oracle Learning. Además, visite education.oracle.com/learning-explorer para convertirse en un explorador de Oracle Learning.
Para obtener documentación sobre el producto, visite Oracle Help Center.
Deep Dive into Tag based Oracle Cloud Infrastructure Identity and Access Management Policies
G30364-01
Copyright ©2025, Oracle and/or its affiliates.