Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Tag-based controllo degli accessi per le operazioni sul piano dati di Amazon Neptune
Tag-based il controllo degli accessi (TBAC) consente di utilizzare i tag AWS delle risorse e i tag principali IAM come condizioni nelle politiche IAM e nelle politiche di controllo dei servizi (SCP) per controllare l'accesso alle operazioni del piano dati di Amazon Neptune. Con TBAC, puoi far sì che solo gli amministratori i cui tag corrispondono ai tag di un cluster Neptune DB possano eseguire neptune-db:* azioni su quel cluster, senza enumerare Amazon Resource Names (ARN) di cluster specifici in ogni policy.
TBAC si basa sul modello di sicurezza esistente di Neptune e integra le azioni del piano dati di controllo degli accessi basate sull'azione. Azioni IAM per l'accesso ai dati in Amazon Neptune
In che modo il TBAC si inserisce nei livelli di sicurezza di Neptune
Neptune protegge i tuoi dati tramite molteplici meccanismi di sicurezza sovrapposti. TBAC aggiunge un livello di autorizzazione basato sugli attributi che funziona insieme a tutti:
| Livello | Meccanismo | Scope |
|---|---|---|
| Isolamento della rete | Cloud privato virtuale (VPC), gruppi di sicurezza, endpoint VPC () PrivateLink | Controlla quali host possono raggiungere gli endpoint Neptune |
| Encryption (Crittografia) | Transport Layer Security (TLS) 1.3 in transito; AWS KMS crittografia gestita a riposo | Protegge la riservatezza dei dati |
| Autenticazione IAM | AWS Richieste firmate Signature Version 4 (Sigv4) all'endpoint di dati Neptune | Autentica il chiamante |
| Action-based controllo degli accessi | neptune-db:azioni (ReadDataViaQueryWriteDataViaQuery, ecc.) |
Controlla quali operazioni può eseguire un preside |
| Chiavi di condizione | neptune-db:QueryLanguage, chiavi di contesto globali |
Aggiunge vincoli contestuali alle politiche |
| TBAC | aws:ResourceTag/${TagKey}valutato rispetto aws:PrincipalTag/${TagKey} |
Limita l'accesso in base all'allineamento dei tag tra principale e risorsa |
| Accesso amministrativo basato su tag | aws:ResourceTagrds:cluster-tag, ecc. sulle azioni del piano di gestione |
Controlla chi può gestire l'infrastruttura Neptune |
Concetti chiave del TBAC
- Tag principali
-
Tag associati agli utenti, ai ruoli o ai presidi di sessione federati di IAM. Puoi impostarli tramite la console IAM o le mappature degli AWS CLI attributi Security Assertion Markup Language (SAML) /OpenID Connect (IdP) (IdP).
- Tag delle risorse
-
Tag allegati ai cluster Neptune DB utilizzando.
AddTagsToResourceQuesti si propagano a tutte le istanze del cluster per la valutazione delle policy del piano dati. - Variabili chiave di condizione
-
-
aws:PrincipalTag/— si risolve nel valore del tag sul principale chiamante.TagKey -
aws:ResourceTag/— si risolve nel valore del tag sulla risorsa Neptune di destinazione.TagKey
-
- Tipi di policy supportati
-
-
Policy di identità IAM: collegate a utenti, gruppi o ruoli.
-
SCP: applicati a livello di unità AWS organizzativa (OU) o di account dell'organizzazione per impostare i criteri di protezione delle autorizzazioni.
-
Prerequisiti per l'utilizzo del TBAC
Prima di poter utilizzare TBAC con le operazioni sul piano dati Neptune, è necessario disporre di quanto segue:
-
Versione del motore Neptune 1.2.0.0 o successiva, necessaria per il supporto del TBAC sul piano dati.
-
Autenticazione IAM abilitata sul cluster Neptune DB.
-
Tag applicati ai cluster Neptune DB: i tag delle risorse che le policy valuteranno.
-
Tag applicati ai principali IAM: i tag principali che verranno confrontati con i tag delle risorse.
Schemi politici TBAC
I modelli seguenti mostrano i modi comuni di utilizzare il TBAC nelle politiche IAM per le operazioni sul piano dati di Neptune.
Nega l'accesso quando i tag principale e quelli delle risorse non corrispondono
Questo è il pattern TBAC più comune. Nega tutte le azioni del piano dati di Neptune a meno che i tag del principale non corrispondano ai tag della risorsa. Puoi applicarlo come SCP per l'applicazione a livello di organizzazione o come policy IAM per un controllo mirato.
{ "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}" } } } ] }
Come funziona: ogni istruzione utilizza una StringNotEquals condizione separata per una singola chiave di tag. Il Deny si attiva indipendentemente per ogni tag: se il Project tag della risorsa non corrisponde al tag del principale, l'accesso viene negato indipendentemente dal Project tag. Department Ciò garantisce che un principale taggato con Project=FraudDetection possa accedere solo ai cluster Neptune a cui è stato assegnato anche il tag, e analogamente per. Project=FraudDetection Department
Nega l'accesso quando mancano i tag delle risorse richiesti
Questo pattern impedisce l'accesso ai cluster Neptune che non sono stati etichettati correttamente, garantendo che tutti i cluster siano iscritti nello schema 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" } } } ] }
Come funziona: la Null condizione viene valutata vera quando la chiave tag specificata non esiste nella risorsa. Ciò obbliga tutti i cluster Neptune a contenere i tag di classificazione richiesti prima che qualsiasi principale possa accedervi.
Combinazione del TBAC con il controllo degli accessi basato sull'azione
Il TBAC può essere combinato con neptune-db: azioni specifiche per creare politiche dettagliate e basate sui tag:
{ "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}" } } } ] }
Restrizione del linguaggio di interrogazione con TBAC
Combina TBAC con la chiave neptune-db:QueryLanguage condizionale per limitare sia i cluster a cui può accedere un principale sia i linguaggi di interrogazione che può utilizzare:
{ "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" } } } ] }
Utilizzo del TBAC con le politiche di controllo del servizio
Gli SCP sono ideali per applicare il TBAC perché stabiliscono i limiti di autorizzazione su un'intera unità organizzativa (OU) o account senza richiedere modifiche alle singole politiche IAM.
Consigliamo la seguente strategia SCP:
-
Applica un Deny-based SCP a livello di unità organizzativa che blocchi
neptune-db:*quando i tag non corrispondono. -
Applica una seconda dichiarazione che neghi l'accesso alle risorse senza tag.
-
I tuoi account individuali possono mantenere le loro politiche di autorizzazione per
neptune-db:azioni specifiche: l'SCP funge da guardrail.
{ "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" } } } ] }
Implementazione del TBAC per Neptune
Fase 1: Definisci la tassonomia dei tag
Scegli le chiavi dei tag che rappresentino i confini della tua organizzazione. Schemi comuni:
| Chiave tag | Scopo | Valori di esempio |
|---|---|---|
Project |
Identificatore dell'applicazione o del carico di lavoro | FraudDetection, RecommendationEngine |
Department |
Unità aziendale o centro di costo | Engineering, Finance, Analytics |
Environment |
Fase di implementazione | production, staging, development |
Team |
Squadra proprietaria | graph-platform, data-science |
Passaggio 2: contrassegna i cluster Neptune DB
Usa il AWS CLI per aggiungere i tag di classificazione richiesti ai tuoi cluster Neptune DB:
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
Passaggio 3: tagga i tuoi principali IAM
Usa il AWS CLI per etichettare i ruoli IAM con le stesse chiavi e valori usati sui tuoi cluster Neptune. Per i ruoli IAM:
aws iam tag-role \ --role-nameNeptuneAppRole\ --tags Key=Project,Value=FraudDetection Key=Department,Value=Engineering
Per gli utenti federati, passa i tag tramite i tag di SAML/OIDC sessione utilizzando aws:PrincipalTag gli attributi del tuo provider di identità.
Fase 4: Implementazione della politica TBAC
Aggiungila come SCP per l'applicazione a livello di organizzazione o come policy IAM per un controllo mirato.
Fase 5: Proteggi l'integrità dei tag
Limita chi può modificare i tag sulle risorse Neptune e sui presidi IAM:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "DenyTagModification", "Effect": "Deny", "Action": [ "rds:AddTagsToResource", "rds:RemoveTagsFromResource" ], "Resource": "*", "Condition": { "ForAnyValue:StringEquals": { "aws:TagKeys": ["Project", "Department"] } } } ] }
Considerazioni importanti per il TBAC
-
Ritardo di propagazione: le modifiche alle policy IAM richiedono fino a 10 minuti per essere applicate alle risorse Neptune. Le modifiche ai tag del cluster (aggiunta, modifica o rimozione di tag) richiedono circa 5 minuti per propagarsi alla valutazione delle policy del piano dati. Pianifica questo ritardo durante l'aggiornamento dei tag sui cluster attivi.
-
Cluster-level granularità: si applicano i tag ai cluster Neptune DB a livello di cluster. Tutte le istanze di un cluster condividono la stessa valutazione delle politiche. TBAC non fornisce un controllo degli accessi a livello di sottografo o vertex/edge a livello.
-
Autenticazione IAM richiesta: il TBAC si applica solo quando l'autenticazione IAM è abilitata sul cluster. Le connessioni senza autenticazione IAM aggirano completamente queste politiche.
-
Immutabilità dei tag: proteggi le tue operazioni di tagging. Se un responsabile può modificare i propri tag o i tag delle risorse, può bypassare i controlli TBAC. Usa gli SCP o i limiti di autorizzazione per limitare
iam:TagRole,, eiam:TagUser.rds:AddTagsToResourcerds:RemoveTagsFromResource -
Gestione dei tag nulli: se a un principale manca un tag a cui fa riferimento la policy
${aws:PrincipalTag/, la variabile si risolve in una stringa vuota. Progetta le tue policy in modo da gestire questo caso (lo schema di negazione dei «tag mancanti» riportato sopra risolve questo problema per i tag delle risorse).Key} -
Chiavi di condizione multiple: quando più chiavi di condizione appaiono nello stesso
Conditionblocco, vengono valutate con la logica AND. InfattiStringNotEquals, un Deny si attiva solo quando tutte le condizioni specificate sono vere contemporaneamente. Per negare la mancata corrispondenza di un singolo tag, utilizzate dichiarazioni politiche separate per ogni chiave del tag (come mostrato negli schemi precedenti).
Relazione con le funzionalità di sicurezza esistenti di Neptune
| Funzionalità esistente | Cosa controlla | In che modo TBAC lo integra |
|---|---|---|
| VPC/Gruppi di sicurezza | Network-level accesso alla porta 8182 | TBAC aggiunge l'autorizzazione basata sull'identità ai controlli di rete |
| Autenticazione IAM (SIGv4) | Verifica l'identità del chiamante | TBAC utilizza i tag dell'identità autenticata per le decisioni di autorizzazione |
| Action-based controllo degli accessi | Quali operazioni (read/write/delete/load) può eseguire un preponente | Il TBAC aggiunge i cluster che un principale può scegliere come target, in base all'allineamento dei tag |
Chiave di condizione neptune-db:QueryLanguage |
Quali linguaggi di interrogazione (Gremlin, OpenCypher, SPARQL) sono consentiti | Può essere combinato con TBAC nella stessa dichiarazione politica |
Accesso amministrativo basato su tag (azioni) rds:* |
Chi può gestire l'infrastruttura Neptune | TBAC estende lo stesso modello basato su tag alle azioni data-plane () neptune-db:* |
| AWS KMS crittografia | Riservatezza dei dati a riposo | Ortogonale: il TBAC controlla l'autorizzazione, non la crittografia |