As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Tag-based controle de acesso para operações de plano de dados do Amazon Neptune
Tag-based o controle de acesso (TBAC) permite que você use tags de AWS recursos e tags principais do IAM como condições nas políticas do IAM e nas políticas de controle de serviços (SCPs) para controlar o acesso às operações do plano de dados do Amazon Neptune. Com o TBAC, você pode garantir que somente os principais cujas tags correspondam às tags em um cluster de banco de dados Neptune possam realizar neptune-db:* ações nesse cluster, sem enumerar nomes de recursos da Amazon (ARNs) específicos do cluster em cada política.
O TBAC se baseia no modelo de segurança existente da Neptune e complementa as ações do plano de dados de controle de acesso baseadas em ações. Ações do IAM para acesso a dados no Amazon Neptune
Como o TBAC se encaixa nas camadas de segurança do Neptune
O Neptune protege seus dados por meio de vários mecanismos de segurança sobrepostos. O TBAC adiciona uma camada de autorização baseada em atributos que funciona junto com todas elas:
| Camada | Mecanismo | Escopo |
|---|---|---|
| Isolamento de rede | Nuvem privada virtual (VPC), grupos de segurança, endpoints de VPC () PrivateLink | Controla quais hosts podem acessar os endpoints do Neptune |
| Criptografia | Transport Layer Security (TLS) 1.3 em trânsito; criptografia AWS KMS gerenciada em repouso | Protege a confidencialidade dos dados |
| Autenticação do IAM | AWS Solicitações assinadas do Signature Version 4 (SigV4) para o endpoint de dados do Neptune | Autentica o chamador |
| Action-based controle de acesso | neptune-db:ações (ReadDataViaQuery,WriteDataViaQuery, etc.) |
Controla quais operações um diretor pode realizar |
| Chaves de condição | neptune-db:QueryLanguage, chaves de contexto global |
Adiciona restrições contextuais às políticas |
| TABC | aws:ResourceTag/${TagKey}avaliado contra aws:PrincipalTag/${TagKey} |
Restringe o acesso com base no alinhamento da tag entre principal e recurso |
| Acesso administrativo baseado em tags | aws:ResourceTag,rds:cluster-tag, etc. em ações do plano de gerenciamento |
Controla quem pode gerenciar a infraestrutura do Neptune |
Principais conceitos do TBAC
- Tags principais
-
Tags anexadas a usuários, funções ou diretores de sessão federada do IAM. Você pode defini-los por meio do console do IAM ou dos mapeamentos de AWS CLI atributos Security Assertion Markup Language (SAML) /OpenID Connect (OIDC) do provedor de identidade (IdP).
- Tags de recursos
-
Tags anexadas aos clusters de banco de dados Neptune usando.
AddTagsToResourceEles se propagam para todas as instâncias no cluster para avaliação da política do plano de dados. - Variáveis-chave de condição
-
-
aws:PrincipalTag/— resolve para o valor da tag no principal chamador.TagKey -
aws:ResourceTag/— resolve para o valor da tag no recurso Neptune de destino.TagKey
-
- Tipos de políticas compatíveis
-
-
Políticas de identidade do IAM — anexadas a usuários, grupos ou funções.
-
SCPs — aplicados na unidade AWS organizacional (OU) ou no nível da conta da organização para definir barreiras de permissão.
-
Pré-requisitos para usar o TBAC
Antes de usar o TBAC com as operações de plano de dados do Neptune, você deve ter o seguinte em vigor:
-
Motor Neptune versão 1.2.0.0 ou posterior — necessário para suporte a TBAC no plano de dados.
-
Autenticação IAM ativada no cluster de banco de dados Neptune.
-
Tags aplicadas aos clusters de banco de dados Neptune — as tags de recursos que as políticas avaliarão.
-
Tags aplicadas às principais do IAM — as tags principais que serão comparadas com as tags de recursos.
Padrões de política do TBAC
Os padrões a seguir mostram maneiras comuns de usar o TBAC nas políticas do IAM para operações de plano de dados do Neptune.
Negar acesso quando as tags principal e de recurso não coincidirem
Esse é o padrão TBAC mais comum. Ele nega todas as ações do plano de dados do Neptune, a menos que as tags do principal correspondam às tags do recurso. Você pode aplicar isso como um SCP para fiscalização em toda a organização ou como uma política de IAM para controle direcionado.
{ "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}" } } } ] }
Como funciona: cada instrução usa uma StringNotEquals condição separada para uma única chave de tag. O Deny é acionado de forma independente para cada tag — se a Project tag do recurso não corresponder à tag do principal, o acesso será negado independentemente da Project tag. Department Isso garante que um principal marcado com só Project=FraudDetection possa acessar clusters de Netuno também marcados eProject=FraudDetection, da mesma forma, para. Department
Negar acesso quando as tags de recursos necessárias estiverem ausentes
Esse padrão impede o acesso aos clusters do Neptune que não foram marcados corretamente, garantindo que todos os clusters estejam inscritos no 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" } } } ] }
Como funciona: a Null condição é avaliada como verdadeira quando a chave de tag especificada não existe no recurso. Isso força todos os aglomerados de Netuno a carregarem as etiquetas de classificação necessárias antes que qualquer diretor possa acessá-las.
Combinando o TBAC com o controle de acesso baseado em ações
O TBAC pode ser combinado com neptune-db: ações específicas para criar políticas refinadas e com reconhecimento de tags:
{ "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}" } } } ] }
Restrição de idioma de consulta com TBAC
Combine o TBAC com a chave de neptune-db:QueryLanguage condição para restringir quais clusters um principal pode acessar e quais linguagens de consulta eles podem 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" } } } ] }
Usando o TBAC com políticas de controle de serviços
Os SCPs são ideais para aplicar o TBAC porque definem limites de permissão em toda uma unidade organizacional (OU) ou conta sem exigir alterações nas políticas individuais do IAM.
Recomendamos a seguinte estratégia de SCP:
-
Aplique um Deny-based SCP no nível da OU que bloqueie
neptune-db:*quando as tags não coincidem. -
Aplique uma segunda declaração negando acesso a recursos não marcados.
-
Suas contas individuais podem manter suas políticas de Permissão para
neptune-db:ações específicas — o SCP atua como uma barreira.
{ "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" } } } ] }
Implementando o TBAC para Neptune
Etapa 1: defina sua taxonomia de tags
Escolha chaves de tag que representem seus limites organizacionais. Padrões comuns:
| Chave de tag | Finalidade | Exemplos de valores |
|---|---|---|
Project |
Identificador de aplicativo ou carga de trabalho | FraudDetection, RecommendationEngine |
Department |
Unidade de negócios ou centro de custo | Engineering, Finance, Analytics |
Environment |
Estágio de implantação | production, staging, development |
Team |
Equipe proprietária | graph-platform, data-science |
Etapa 2: marque seus clusters de banco de dados Neptune
Use o AWS CLI para adicionar as tags de classificação necessárias aos seus clusters de banco de dados 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
Etapa 3: marque seus diretores do IAM
Use o AWS CLI para marcar as funções do IAM com as mesmas chaves e valores usados em seus clusters do Neptune. Para funções do IAM:
aws iam tag-role \ --role-nameNeptuneAppRole\ --tags Key=Project,Value=FraudDetection Key=Department,Value=Engineering
Para usuários federados, passe tags por meio de tags de SAML/OIDC sessão usando aws:PrincipalTag atributos do seu provedor de identidade.
Etapa 4: implantar a política TBAC
Anexe como um SCP para aplicação em toda a organização ou como uma política de IAM para controle direcionado.
Etapa 5: Proteger a integridade da tag
Restrinja quem pode modificar tags nos recursos do Neptune e nos principais do IAM:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "DenyTagModification", "Effect": "Deny", "Action": [ "rds:AddTagsToResource", "rds:RemoveTagsFromResource" ], "Resource": "*", "Condition": { "ForAnyValue:StringEquals": { "aws:TagKeys": ["Project", "Department"] } } } ] }
Considerações importantes para o TBAC
-
Atraso na propagação — as alterações nas políticas do IAM levam até 10 minutos para serem aplicadas aos recursos do Neptune. As alterações nas tags de cluster (adição, modificação ou remoção de tags) levam aproximadamente 5 minutos para serem propagadas para a avaliação da política do plano de dados. Planeje esse atraso ao atualizar as tags em clusters ativos.
-
Cluster-level granularidade — Você aplica tags aos clusters de banco de dados Neptune no nível do cluster. Todas as instâncias em um cluster compartilham a mesma avaliação de política. O TBAC não fornece controle de acesso em nível subgráfico ou vertex/edge de nível.
-
Autenticação IAM necessária — o TBAC só se aplica quando a autenticação IAM está habilitada no cluster. As conexões sem a autenticação do IAM ignoram totalmente essas políticas.
-
Imutabilidade de tags — Proteja suas operações de marcação. Se um diretor puder modificar suas próprias tags ou as tags de recursos, ele poderá ignorar os controles do TBAC. Use SCPs ou limites de permissão para restringir
iam:TagRoleiam:TagUser,rds:AddTagsToResource, e.rds:RemoveTagsFromResource -
Tratamento de tags nulas — Se um principal não tiver uma tag pela qual a política faça referência
${aws:PrincipalTag/, a variável será resolvida como uma string vazia. Crie suas políticas para lidar com esse caso (o padrão de negação de “tags ausentes” acima aborda isso para tags de recursos).Key} -
Várias chaves de condição — Quando várias chaves de condição aparecem no mesmo
Conditionbloco, elas são avaliadas com a lógica AND. PoisStringNotEquals, uma negação só é acionada quando todas as condições especificadas são verdadeiras simultaneamente. Para negar qualquer incompatibilidade de tag única, use declarações de política separadas para cada chave de tag (conforme mostrado nos padrões acima).
Relação com os recursos de segurança existentes do Neptune
| Recurso existente | O que ele controla | Como o TBAC o complementa |
|---|---|---|
| VPC//Grupos de segurança | Network-level acesso à porta 8182 | O TBAC adiciona autorização com reconhecimento de identidade aos controles de rede |
| Autenticação IAM (SigV4) | Verifica a identidade do chamador | O TBAC usa as tags da identidade autenticada para decisões de autorização. |
| Action-based controle de acesso | Quais operações (read/write/delete/load) um diretor pode realizar | O TBAC adiciona quais clusters um diretor pode segmentar, com base no alinhamento das tags |
Chave da condição neptune-db:QueryLanguage |
Quais linguagens de consulta (Gremlin, OpenCypher, SPARQL) são permitidas | Pode ser combinado com o TBAC na mesma declaração de política |
Acesso administrativo baseado em tags (rds:*ações) |
Quem pode gerenciar a infraestrutura do Neptune | O TBAC estende o mesmo padrão baseado em tags para ações data-plane () neptune-db:* |
| AWS KMS criptografia | Confidencialidade de dados em repouso | Ortogonal — o TBAC controla a autorização, não a criptografia |