version es siempre 2024-01-01. Cualquier otra cosa es rechazada.
Elegir el alcance de la política
Las directivas de cuenta pertenecen a una cuenta y se adjuntan a sus roles y cuentas de servicio. Conceden acciones de servicio de cuenta. Las políticas de organización pertenecen a Workspace y otorganworkspace:*, billing:*, quota:* y audit:*. Adjúntalos a usuarios o grupos, o delégalos explícitamente a un rol de cuenta o cuenta de servicio.
El formato del documento se comparte, pero los dominios de permisos son separados. Las exclusiones de actions: ["*"] y de acciones se aplican solo dentro del dominio de la política. Una directiva de administrador de cuenta no puede conceder acceso de organización. Una directiva de organización no puede conceder acceso a recursos de cuenta ordinarios.
El editor visual de la consola ofrece servicios apropiados para el ámbito seleccionado. La edición de JSON utiliza las mismas reglas; escribir una acción desde el otro ámbito no la hace efectiva.
Declaraciones
string, optional
Una etiqueta para su propio uso. No tiene efecto sobre la evaluación.
allow | deny
requerido
Minúsculas. Un
deny explícito supera a cualquier allow en el dominio de la política que se está evaluando.array
requerido
Exactamente uno de la pareja. Si se establecen ambos o ninguno, se rechaza al guardar el documento.
array
requerido
Exactamente uno del par, misma regla.
array, optional
Todos ellos deben mantenerse para que la declaración se aplique.
Medidas
Las acciones sonservice:Action, y * es el único comodín.
Recursos
Los recursos son CRNs, con* como único comodín. El diseño de los dos puntos y la barra se compara literalmente, por lo que la forma tiene que ser correcta:
Nombramiento por exclusión
not_actions y not_resources cubren todo excepto lo que enumeran.
Condiciones
Una condición compara una clave de contexto con valores usando un operador. Cada condición en una declaración debe mantenerse para que se aplique.Operadores
Qué sucede cuando falta la llave
Esta es la parte que decide si una barandilla funciona, por lo que vale la pena ser preciso. La razón es que un deny necesita disparar en la petición contra la que está protegiendo. “Denial unless the request comes from these addresses” tiene que capturar una solicitud sin dirección — tratar la clave faltante como no match haría que la barandilla fallara al abrirse exactamente cuando importa.Claves de valores múltiples
Algunas claves de contexto son conjuntos en lugar de valores individuales —basalt:TagKeys es el conjunto de claves de etiqueta que lleva una solicitud. Para comparar con uno, añada un set_operator:
for_all_valuesse mantiene cuando cada miembro del conjunto de peticiones satisface al operador. Un conjunto ausente o vacío se mantiene vacíamente — una petición que no lleva etiquetas no está cercada por una restricción de clave de etiqueta.for_any_valuese mantiene cuando al menos uno de los miembros lo hace. Un conjunto ausente o vacío no se mantiene.
Teclas de contexto
Los dos prefijos de etiqueta responden a preguntas diferentes.
ResourceTag cerca el acceso a cosas ya etiquetadas de cierta manera; RequestTag cerca lo que un llamador puede etiquetar algo como.
Ejemplos de trabajo
Solo lectura en un servicio
Solo lectura en un servicio
Confina un equipo a un entorno por etiqueta
Confina un equipo a un entorno por etiqueta
Solo alcanza los recursos ya etiquetados
env=staging:Esto no otorga nada en un recurso no etiquetado:
equals en una clave faltante falla. Eso es lo que normalmente quieres: un recurso sin etiquetar no está silenciosamente en el ámbito.Forzar que los nuevos recursos se etiqueten correctamente
Forzar que los nuevos recursos se etiqueten correctamente
Un llamador puede crear instancias solo mientras las etiqueta
env=staging:Cerce una red de oficina, y sea sincero
Cerce una red de oficina, y sea sincero
ip_address matches — deja la valla apagada siempre que la clave esté ausente.Una barandilla que sobrevive a las amplias subvenciones
Una barandilla que sobrevive a las amplias subvenciones
Permitir que un agente de plano de datos lea la clave de un certificado
Permitir que un agente de plano de datos lea la clave de un certificado
GetCertificateMaterial es una acción separada de la lectura de un certificado, precisamente por lo que esto puede ser concedido estrechamente. Véase certificates.Políticas administradas e integradas
Política gestionada
Un objeto independiente con su propio CRN. Las directivas de cuenta se adjuntan a roles y cuentas de servicio; las directivas de organización también se adjuntan a usuarios y grupos. Edite una vez y todos los archivos adjuntos usarán el documento actualizado.
Política en línea
Escrito directamente sobre un principal, nombrado en lugar de identificado, y borrado con él. Para una subvención única que nunca debe ser reutilizada o accidentalmente adjuntada en otro lugar.
iam.basaltic.sh. Las políticas de la organización usan la misma ruta de colección en workspace.basaltic.sh:
- Console
- API
- CLI
- Go
Abra Identity & access → Policies y elija Create Policy para una política de cuenta. Utilice Organization → Organization policies para una directiva de organización. Policy Document admite edición visual y JSON. Adjunte la política guardada desde la página de identidad correspondiente.
- Console
- API
- CLI
- Go
Cada usuario, grupo, cuenta de servicio y rol tiene una tarjeta Inline Policies con Add Inline Policy, un Name y un editor JSON de Policy Document. El nombre identifica la política, por lo que se fija una vez guardada y al editarla solo cambia el documento.
is_system. La plataforma los mantiene, se comparten entre las organizaciones y no se pueden editar, ya sea que los adjuntes o no. La consola los etiqueta como System en lugar de Custom y los abre como View Policy, sin guardar.
Validación
Un documento es rechazado al guardar, no ignorado silenciosamente, cuando:versionfalta o no es2024-01-01statementsestá vacíoeffectno esallowodeny- Una sentencia establece tanto
actionscomonot_actions, o ninguna de ellas - Una sentencia establece tanto
resourcescomonot_resources, o ninguno de los dos - Una condición no tiene
key, o unoperatoroset_operatorno reconocido
Un operador no reconocido en un documento almacenado — uno guardado antes de que un operador fuera renombrado, por ejemplo — nunca coincide. En una sentencia allow se salta; en una deny se trata como una deny dura cuando la acción y el recurso coinciden, por lo que una barandilla rota falla cerrada en lugar de abierta.
Siguiente
Límites de permisos
Limitar lo que estas políticas pueden conceder.
Roles y credenciales
Las directivas de sesión reducen el ámbito de las credenciales de la misma manera.
Referencias de recursos
Los nombres de directiva, rol y grupo son inmutables. Los campos de relación comopolicy, role, group y groups[] aceptan un UUID, un nombre o un CRN. La sintaxis selecciona la búsqueda; un recurso que falta nunca desencadena una segunda búsqueda usando otra interpretación.
Las directivas de cuenta usan crn:iam::<account-handle>:policy/<name>. Las políticas de cuenta del sistema usan crn:iam:::policy/<Name>. Un nombre nulo prefiere una directiva en la cuenta seleccionada, luego una directiva del sistema. Un CRN de sistema totalmente cualificado selecciona ese espacio de nombres incluso cuando una directiva personalizada tiene el mismo nombre.
Las directivas de organización usan crn:workspace:::policy/<name>; las directivas de organización del sistema usan crn:workspace:::system-policy/<Name>. Una búsqueda de directiva de organización no busca directivas de cuenta, ni viceversa.
Los roles usan crn:iam::<account-handle>:role/<name>. Los grupos usan crn:workspace:::group/<name>. Las solicitudes de adjuntos de directivas de organización delegadas usan el UUID de la directiva en policy_id; consulte Permisos de espacio de trabajo.
Las listas con filtros name y crn se aplican antes de la paginación. Un valor vacío sigue siendo un filtro. Un CRN extranjero o no coincidente devuelve una página vacía. Vea resource references para los filtros de cada lista.
