View a markdown version of this page

Tag-based control de acceso para las operaciones del plano de datos de Amazon Neptune - Amazon Neptune

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Tag-based control de acceso para las operaciones del plano de datos de Amazon Neptune

Tag-based El control de acceso (TBAC) le permite usar las etiquetas de AWS recursos y las etiquetas principales de IAM como condiciones en las políticas de IAM y las políticas de control de servicios (SCP) para controlar el acceso a las operaciones del plano de datos de Amazon Neptune. Con el TBAC, puede hacer que solo las personas principales cuyas etiquetas coincidan con las de un clúster de base de datos de Neptune puedan realizar neptune-db:* acciones contra ese clúster, sin incluir los nombres de recursos de Amazon (ARN) específicos del clúster en cada política.

El TBAC se basa en el modelo de seguridad existente de Neptune y complementa las acciones del plano de datos de control de acceso basadas en acciones. Acciones de IAM para el acceso a los datos en Amazon Neptune

Cómo encaja el TBAC en las capas de seguridad de Neptune

Neptune protege sus datos mediante múltiples mecanismos de seguridad superpuestos. TBAC añade una capa de autorización basada en atributos que funciona junto con todos ellos:

Las capas de seguridad de Neptune y cómo las complementa TBAC
Capa Mecanismo Alcance
Aislamiento de red Nube privada virtual (VPC), grupos de seguridad, puntos finales de VPC () PrivateLink Controla qué hosts pueden llegar a los puntos finales de Neptune
Cifrado Transport Layer Security (TLS) 1.3 en tránsito; cifrado AWS KMS administrado en reposo Protege la confidencialidad de los datos
Autenticación de IAM AWS Solicitudes firmadas con Signature Version 4 (SigV4) al terminal de datos de Neptune Autentica a la persona que llama
Action-based control de acceso neptune-db:acciones (ReadDataViaQueryWriteDataViaQuery, etc.) Controla qué operaciones puede realizar un director
Claves de condición neptune-db:QueryLanguage, claves de contexto globales Añade restricciones contextuales a las políticas
TABAC aws:ResourceTag/${TagKey}evaluado contra aws:PrincipalTag/${TagKey} Restringe el acceso en función de la alineación de las etiquetas entre el principal y el recurso
El acceso administrativo basado en etiquetas aws:ResourceTagrds:cluster-tag, etc. en las acciones del plano de gestión Controla quién puede administrar la infraestructura de Neptune

Conceptos clave de TBAC

Etiquetas principales

Etiquetas adjuntas a los usuarios, roles o directores de sesión federados de IAM. Puede configurarlas mediante la consola de IAM o mediante las asignaciones de atributos del lenguaje de marcado de aserción de seguridad (SAML) y OpenID Connect (OIDC) del proveedor de identidad (IdP). AWS CLI

Etiquetas de recursos

Las etiquetas AddTagsToResource adjuntas a los clústeres de bases de datos de Neptune utilizan. Se propagan a todas las instancias del clúster para evaluar las políticas en el plano de los datos.

Variables clave de condición
  • aws:PrincipalTag/TagKey— se resuelve en el valor de la etiqueta del principal que realiza la llamada.

  • aws:ResourceTag/TagKey— se resuelve en el valor de la etiqueta del recurso de Neptuno de destino.

Tipos de políticas compatibles
  • Políticas de identidad de IAM: asociadas a usuarios, grupos o roles.

  • SCP: se aplican a la unidad organizativa (OU) o a nivel de cuenta de la AWS organización para establecer barreras de protección de permisos.

Requisitos previos para usar TBAC

Antes de poder usar el TBAC con las operaciones del plano de datos de Neptune, debe contar con lo siguiente:

  1. Versión 1.2.0.0 o posterior del motor Neptune: necesaria para la compatibilidad con el TBAC en el plano de datos.

  2. La autenticación de IAM está habilitada en el clúster de base de datos Neptune.

  3. Etiquetas aplicadas a los clústeres de bases de datos de Neptune: las etiquetas de recursos que evaluarán las políticas.

  4. Etiquetas aplicadas a las principales de IAM: las etiquetas principales que se compararán con las etiquetas de recursos.

Patrones de políticas de TBAC

Los siguientes patrones muestran formas comunes de usar el TBAC en las políticas de IAM para las operaciones del plano de datos de Neptune.

Denegue el acceso cuando las etiquetas principales y de recursos no coincidan

Este es el patrón de TBAC más común. Niega todas las acciones del plano de datos de Neptune, a menos que las etiquetas del principal coincidan con las del recurso. Puede aplicarlo como un SCP para aplicarlo en toda la organización o como una política de IAM para un control selectivo.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "DenyNeptuneProjectMismatch", "Effect": "Deny", "Action": "neptune-db:*", "Resource": "*", "Condition": { "StringNotEquals": { "aws:ResourceTag/Project": "${aws:PrincipalTag/Project}" } } }, { "Sid": "DenyNeptuneDepartmentMismatch", "Effect": "Deny", "Action": "neptune-db:*", "Resource": "*", "Condition": { "StringNotEquals": { "aws:ResourceTag/Department": "${aws:PrincipalTag/Department}" } } } ] }

Cómo funciona: cada declaración utiliza una StringNotEquals condición diferente para una única clave de etiqueta. La denegación se activa de forma independiente para cada etiqueta: si la Project etiqueta del recurso no coincide con la Project etiqueta del principal, se deniega el acceso independientemente de la Department etiqueta. Esto garantiza que un principal etiquetado con solo Project=FraudDetection pueda acceder a los clústeres de Neptuno que también estén etiquetadosProject=FraudDetection, y para ellos de forma similar. Department

Denegar el acceso cuando falten las etiquetas de recursos necesarias

Este patrón impide el acceso a los clústeres de Neptune que no se han etiquetado correctamente, lo que garantiza que todos los clústeres estén inscritos en el esquema TBAC:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "DenyNeptuneMissingProjectTag", "Effect": "Deny", "Action": "neptune-db:*", "Resource": "*", "Condition": { "Null": { "aws:ResourceTag/Project": "true" } } }, { "Sid": "DenyNeptuneMissingDepartmentTag", "Effect": "Deny", "Action": "neptune-db:*", "Resource": "*", "Condition": { "Null": { "aws:ResourceTag/Department": "true" } } } ] }

Cómo funciona: La Null condición se evalúa como verdadera cuando la clave de etiqueta especificada no existe en el recurso. Esto obliga a todos los clústeres de Neptuno a llevar las etiquetas de clasificación necesarias antes de que cualquier principal pueda acceder a ellos.

Combinación del TBAC con el control de acceso basado en acciones

El TBAC se puede combinar con neptune-db: acciones específicas para crear políticas detalladas que tengan en cuenta las etiquetas:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowReadOnlyForMatchingTags", "Effect": "Allow", "Action": [ "neptune-db:ReadDataViaQuery", "neptune-db:GetQueryStatus", "neptune-db:GetEngineStatus" ], "Resource": "arn:aws:neptune-db:*:*:*/*", "Condition": { "StringEquals": { "aws:ResourceTag/Project": "${aws:PrincipalTag/Project}" } } } ] }

Restricción del lenguaje de consulta con TBAC

Combine el TBAC con la clave de neptune-db:QueryLanguage condición para restringir tanto a qué clústeres puede acceder un principal como a qué lenguajes de consulta puede usar:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowOpenCypherOnlyForMatchingProject", "Effect": "Allow", "Action": [ "neptune-db:ReadDataViaQuery", "neptune-db:WriteDataViaQuery" ], "Resource": "arn:aws:neptune-db:*:*:*/*", "Condition": { "StringEquals": { "aws:ResourceTag/Project": "${aws:PrincipalTag/Project}", "neptune-db:QueryLanguage": "OpenCypher" } } } ] }

Uso del TBAC con políticas de control de servicios

Los SCP son ideales para aplicar el TBAC porque establecen límites de permisos en toda una unidad organizativa (OU) o cuenta sin necesidad de cambiar las políticas individuales de IAM.

Recomendamos la siguiente estrategia de SCP:

  1. Aplica un Deny-based SCP a nivel de la unidad organizativa que bloquee neptune-db:* cuando las etiquetas no coincidan.

  2. Aplica una segunda sentencia que niegue el acceso a los recursos no etiquetados.

  3. Sus cuentas individuales pueden conservar sus políticas de autorización para neptune-db: acciones específicas; el SCP actúa como una barrera.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "DenyNeptuneProjectMismatch", "Effect": "Deny", "Action": "neptune-db:*", "Resource": "*", "Condition": { "StringNotEquals": { "aws:ResourceTag/Project": "${aws:PrincipalTag/Project}" } } }, { "Sid": "DenyNeptuneDepartmentMismatch", "Effect": "Deny", "Action": "neptune-db:*", "Resource": "*", "Condition": { "StringNotEquals": { "aws:ResourceTag/Department": "${aws:PrincipalTag/Department}" } } }, { "Sid": "DenyNeptuneMissingProjectTag", "Effect": "Deny", "Action": "neptune-db:*", "Resource": "*", "Condition": { "Null": { "aws:ResourceTag/Project": "true" } } }, { "Sid": "DenyNeptuneMissingDepartmentTag", "Effect": "Deny", "Action": "neptune-db:*", "Resource": "*", "Condition": { "Null": { "aws:ResourceTag/Department": "true" } } } ] }

Implementación de TBAC para Neptune

Paso 1: Defina su taxonomía de etiquetas

Elige las claves de etiqueta que representen los límites de tu organización. Patrones comunes:

Ejemplo de taxonomía de etiquetas
Clave de etiqueta Finalidad Valores de ejemplo
Project Identificador de aplicación o carga de trabajo FraudDetection, RecommendationEngine
Department Unidad de negocio o centro de costos Engineering, Finance, Analytics
Environment Etapa de implementación production, staging, development
Team Equipo propietario graph-platform, data-science

Paso 2: Etiquete sus clústeres de bases de datos de Neptune

Utilice el AWS CLI para agregar las etiquetas de clasificación necesarias a los clústeres de bases de datos de Neptune:

aws neptune add-tags-to-resource \ --resource-name arn:aws:rds:us-east-1:123456789012:cluster:my-neptune-cluster \ --tags Key=Project,Value=FraudDetection Key=Department,Value=Engineering

Paso 3: Etiquete sus directores de IAM

Utilícela AWS CLI para etiquetar las funciones de IAM con las mismas claves y valores que se utilizan en los clústeres de Neptuno. Para los roles de IAM:

aws iam tag-role \ --role-name NeptuneAppRole \ --tags Key=Project,Value=FraudDetection Key=Department,Value=Engineering

En el caso de los usuarios federados, transfiera las etiquetas a través de las etiquetas de SAML/OIDC sesión utilizando aws:PrincipalTag los atributos de su proveedor de identidad.

Paso 4: Implemente la política de TBAC

Adjúntela como una SCP para aplicarla en toda la organización o como una política de IAM para un control específico.

Paso 5: Proteja la integridad de las etiquetas

Restrinja quién puede modificar las etiquetas de los recursos de Neptune y los principios de IAM:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "DenyTagModification", "Effect": "Deny", "Action": [ "rds:AddTagsToResource", "rds:RemoveTagsFromResource" ], "Resource": "*", "Condition": { "ForAnyValue:StringEquals": { "aws:TagKeys": ["Project", "Department"] } } } ] }

Consideraciones importantes para el TBAC

  • Retraso en la propagación: los cambios en las políticas de IAM tardan hasta 10 minutos en aplicarse a los recursos de Neptune. Los cambios en las etiquetas del clúster (agregar, modificar o eliminar etiquetas) tardan aproximadamente 5 minutos en propagarse a la evaluación de políticas del plano de datos. Planifique este retraso al actualizar las etiquetas en los clústeres activos.

  • Cluster-level granularidad: las etiquetas se aplican a los clústeres de bases de datos de Neptune a nivel de clúster. Todas las instancias de un clúster comparten la misma evaluación de políticas. El TBAC no proporciona control de acceso a vertex/edge nivel de subgráficos o subgráficos.

  • Se requiere autenticación de IAM: el TBAC solo se aplica cuando la autenticación de IAM está habilitada en el clúster. Las conexiones sin la autenticación de IAM eluden por completo estas políticas.

  • Inmutabilidad de las etiquetas: proteja sus operaciones de etiquetado. Si un director puede modificar sus propias etiquetas o las etiquetas de los recursos, puede eludir los controles del TBAC. Utilice los SCP o los límites de permisos para restringiriam:TagRole, iam:TagUserrds:AddTagsToResource, y. rds:RemoveTagsFromResource

  • Gestión de etiquetas nulas: si un principal carece de una etiqueta a la que haga referencia la política${aws:PrincipalTag/Key}, la variable se convierte en una cadena vacía. Diseñe sus políticas para gestionar este caso (el patrón de denegación de «etiquetas faltantes» anterior aborda este problema en el caso de las etiquetas de recursos).

  • Varias claves de condición: cuando aparecen varias claves de condición en el mismo Condition bloque, se evalúan con la lógica AND. StringNotEqualsEn el caso de una denegación, solo se activa cuando todas las condiciones especificadas se cumplen simultáneamente. Para denegar una sola etiqueta que no coincida, usa declaraciones de política independientes para cada clave de etiqueta (como se muestra en los patrones anteriores).

Relación con las funciones de seguridad existentes de Neptune

Cómo complementa TBAC las funciones de seguridad existentes de Neptune
Función existente Qué controla Cómo lo complementa el TBAC
VPC o grupos de seguridad Network-level acceso al puerto 8182 El TBAC añade la autorización con reconocimiento de identidad además de los controles de red
Autenticación de IAM (SIGv4) Verifica la identidad de la persona que llama El TBAC usa las etiquetas de la identidad autenticada para las decisiones de autorización
Action-based control de acceso Qué operaciones (read/write/delete/load) puede realizar un principal El TBAC agrega los clústeres a los que puede dirigirse un principal, en función de la alineación de las etiquetas
Clave de condición de neptune-db:QueryLanguage Qué lenguajes de consulta (Gremlin, OpenCypher, SPARQL) están permitidos Se puede combinar con el TBAC en la misma declaración de política
Acceso administrativo basado en etiquetas (acciones) rds:* ¿Quién puede administrar la infraestructura de Neptune El TBAC extiende el mismo patrón basado en etiquetas a las acciones del plano de datos () neptune-db:*
AWS KMS cifrado Confidencialidad de los datos en reposo Ortogonal: el TBAC controla la autorización, no el cifrado