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:
| 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
AddTagsToResourceadjuntas 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/— se resuelve en el valor de la etiqueta del principal que realiza la llamada.TagKey -
aws:ResourceTag/— se resuelve en el valor de la etiqueta del recurso de Neptuno de destino.TagKey
-
- 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:
-
Versión 1.2.0.0 o posterior del motor Neptune: necesaria para la compatibilidad con el TBAC en el plano de datos.
-
La autenticación de IAM está habilitada en el clúster de base de datos Neptune.
-
Etiquetas aplicadas a los clústeres de bases de datos de Neptune: las etiquetas de recursos que evaluarán las políticas.
-
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:
-
Aplica un Deny-based SCP a nivel de la unidad organizativa que bloquee
neptune-db:*cuando las etiquetas no coincidan. -
Aplica una segunda sentencia que niegue el acceso a los recursos no etiquetados.
-
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:
| 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-nameNeptuneAppRole\ --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 restringir
iam: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/, 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).Key} -
Varias claves de condición: cuando aparecen varias claves de condición en el mismo
Conditionbloque, 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
| 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 |