View a markdown version of this page

Tag-based controle de acesso para operações de plano de dados do Amazon Neptune - Amazon Neptune

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:

Camadas de segurança do Neptune e como o TBAC as complementa
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. AddTagsToResource Eles 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/TagKey— resolve para o valor da tag no principal chamador.

  • aws:ResourceTag/TagKey— resolve para o valor da tag no recurso Neptune de destino.

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:

  1. Motor Neptune versão 1.2.0.0 ou posterior — necessário para suporte a TBAC no plano de dados.

  2. Autenticação IAM ativada no cluster de banco de dados Neptune.

  3. Tags aplicadas aos clusters de banco de dados Neptune — as tags de recursos que as políticas avaliarão.

  4. 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:

  1. Aplique um Deny-based SCP no nível da OU que bloqueie neptune-db:* quando as tags não coincidem.

  2. Aplique uma segunda declaração negando acesso a recursos não marcados.

  3. 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:

Exemplo de taxonomia de tags
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-name NeptuneAppRole \ --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/Key}, 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).

  • Várias chaves de condição — Quando várias chaves de condição aparecem no mesmo Condition bloco, 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

Como o TBAC complementa 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