Implementa controlli di accesso preventivi basati sugli attributi per le sottoreti pubbliche - Prontuario AWS

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à.

Implementa controlli di accesso preventivi basati sugli attributi per le sottoreti pubbliche

Creato da Joel Alfredo Nunez Gonzalez (AWS) e Samuel Ortega Sancho (AWS)

Ambiente: PoC o pilota

Tecnologie: sicurezza, identità, conformità; networking; distribuzione di contenuti

Servizi AWS: AWS Organizations; AWS Identity and Access Management

Riepilogo

Nelle architetture di rete centralizzate, i cloud privati virtuali (VPC) di ispezione ed edge concentrano tutto il traffico in entrata e in uscita, ad esempio il traffico da e verso Internet. Tuttavia, ciò può creare colli di bottiglia o portare al raggiungimento dei limiti delle quote di servizio AWS. L'implementazione della sicurezza perimetrale della rete insieme ai carichi di lavoro nei rispettivi VPC offre una scalabilità senza precedenti rispetto all'approccio più comune e centralizzato. Questa è chiamata architettura perimetrale distribuita.

Sebbene l'implementazione di sottoreti pubbliche negli account di carico di lavoro possa offrire vantaggi, introduce anche nuovi rischi per la sicurezza perché aumenta la superficie di attacco. Ti consigliamo di distribuire solo risorse Elastic Load Balancing (ELB), come Application Load Balancer o gateway NAT nelle sottoreti pubbliche di questi VPC. L'utilizzo di sistemi di bilanciamento del carico e gateway NAT in sottoreti pubbliche dedicate consente di implementare un controllo granulare del traffico in entrata e in uscita.

Il controllo degli accessi basato sugli attributi (ABAC) è la pratica di creare autorizzazioni granulari basate su attributi utente, come reparto, ruolo professionale e nome del team. Per ulteriori informazioni, consulta ABAC for AWS. ABAC può fornire guardrail per sottoreti pubbliche negli account di carico di lavoro. Questo aiuta i team applicativi a essere agili, senza compromettere la sicurezza dell'infrastruttura.

Questo modello descrive come contribuire a proteggere le sottoreti pubbliche implementando ABAC tramite una policy di controllo dei servizi (SCP) in AWS Organizations e policy in AWS Identity and Access Management (IAM). Puoi applicare l'SCP a un account membro di un'organizzazione o a un'unità organizzativa (OU). Queste politiche ABAC consentono agli utenti di implementare gateway NAT nelle sottoreti di destinazione e impediscono loro di implementare altre risorse Amazon Elastic Compute Cloud (Amazon EC2), come istanze EC2 e interfacce di rete elastiche.  

Prerequisiti e limitazioni

Prerequisiti

  • Un'organizzazione in AWS Organizations

  • Accesso amministrativo all'account root di AWS Organizations

  • Nell'organizzazione, un account membro attivo o un'unità organizzativa per testare l'SCP

Limitazioni

  • L'SCP di questa soluzione non impedisce ai servizi AWS che utilizzano un ruolo collegato ai servizi di distribuire risorse nelle sottoreti di destinazione. Esempi di questi servizi sono Elastic Load Balancing (ELB), Amazon Elastic Container Service (Amazon ECS) e Amazon Relational Database Service (Amazon RDS). Per ulteriori informazioni, consulta gli effetti SCP sulle autorizzazioni nella documentazione di AWS Organizations. Implementa controlli di sicurezza per rilevare queste eccezioni.

Architettura

Stack tecnologico Target

  • SCP applicato a un account AWS o a un'unità organizzativa in AWS Organizations

  • I seguenti ruoli IAM:

    • AutomationAdminRole— Utilizzato per modificare i tag di sottorete e creare risorse VPC dopo l'implementazione di SCP

    • TestAdminRole— Utilizzato per verificare se SCP impedisce ad altri principali IAM, compresi quelli con accesso amministrativo, di eseguire le azioni riservate a AutomationAdminRole

Architettura Target

I tag impediscono agli utenti di distribuire risorse diverse dai gateway NAT nelle sottoreti pubbliche
  1. Crei il ruolo AutomationAdminRole IAM nell'account di destinazione. Questo ruolo dispone delle autorizzazioni per gestire le risorse di rete. Nota le seguenti autorizzazioni che sono esclusive per questo ruolo:

    • Questo ruolo può creare VPC e sottoreti pubbliche.

    • Questo ruolo può modificare le assegnazioni dei tag per le sottoreti di destinazione.

    • Questo ruolo può gestire le proprie autorizzazioni.

  2. In AWS Organizations, applichi l'SCP all'account AWS o all'unità organizzativa di destinazione. Per un esempio di policy, consulta Informazioni aggiuntive in questo modello.

  3. Un utente o uno strumento nella pipeline CI/CD può assumere il AutomationAdminRole ruolo di applicare il SubnetType tag alle sottoreti di destinazione.

  4. Assumendo altri ruoli IAM, i responsabili IAM autorizzati dell'organizzazione possono gestire i gateway NAT nelle sottoreti di destinazione e altre risorse di rete consentite nell'account AWS, come le tabelle di routing. Utilizza le policy IAM per concedere queste autorizzazioni. Per ulteriori informazioni, consulta Gestione delle identità e degli accessi per Amazon VPC.

Automazione e scalabilità

Per proteggere le sottoreti pubbliche, è necessario applicare i tag AWS corrispondenti. Dopo aver applicato l'SCP, i gateway NAT sono l'unico tipo di risorsa Amazon EC2 che gli utenti autorizzati possono creare nelle sottoreti dotate del tag. SubnetType:IFA (significa risorse con accesso a Internet.) IFA L'SCP impedisce la creazione di altre risorse Amazon EC2, come istanze e interfacce di rete elastiche. Si consiglia di utilizzare una pipeline CI/CD che assuma il ruolo di AutomationAdminRole creare risorse VPC in modo che questi tag vengano applicati correttamente alle sottoreti pubbliche.

Strumenti

Servizi AWS

  • AWS Identity and Access Management (IAM) ti aiuta a gestire in modo sicuro l'accesso alle tue risorse AWS controllando chi è autenticato e autorizzato a utilizzarle.

  • AWS Organizations è un servizio di gestione degli account che ti aiuta a consolidare più account AWS in un'organizzazione da creare e gestire centralmente. In AWS Organizations, puoi implementare policy di controllo dei servizi (SCP), che sono un tipo di policy che puoi utilizzare per gestire le autorizzazioni nella tua organizzazione.

  • Amazon Virtual Private Cloud (Amazon VPC) ti aiuta a lanciare le risorse AWS in una rete virtuale che hai definito. Questa rete virtuale è simile a una rete tradizionale che gestiresti nel tuo data center, con i vantaggi dell'utilizzo dell'infrastruttura scalabile di AWS.

Epiche

AttivitàDescrizioneCompetenze richieste

Crea un ruolo di amministratore di test.

Crea un ruolo IAM denominato TestAdminRole nell'account AWS di destinazione. Allega la policy AdministratorAccessAWS managed IAM al nuovo ruolo. Per istruzioni, consulta Creazione di un ruolo per delegare le autorizzazioni a un utente IAM nella documentazione IAM.

Amministratore AWS

Crea il ruolo di amministratore dell'automazione.

  1. Crea un ruolo IAM denominato AutomationAdminRole nell'account AWS di destinazione.

  2. Allega la policy AdministratorAccessAWS managed IAM al nuovo ruolo.

Di seguito è riportato un esempio di policy di fiducia che è possibile utilizzare per testare il ruolo dall'000000000000account.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::000000000000:root" ] }, "Action": "sts:AssumeRole", "Condition": {} } ] }
Amministratore AWS

Crea e collega l'SCP.

  1. Utilizzando il codice di esempio fornito nella sezione Informazioni aggiuntive, create una politica di controllo della sicurezza. Per istruzioni, consulta Creazione di un SCP nella documentazione di AWS Organizations.

  2. Collega l'SCP all'account AWS o all'unità organizzativa di destinazione. Per istruzioni, consulta Allegare e scollegare le policy di controllo del servizio nella documentazione di AWS Organizations.

Amministratore AWS
AttivitàDescrizioneCompetenze richieste

Crea un VPC o una sottorete.

  1. Assumi il TestAdminRole ruolo nell'account AWS di destinazione.

  2. Prova a creare un VPC o una nuova sottorete pubblica in un VPC esistente. Per istruzioni, consulta Creare un VPC, sottoreti e altre risorse VPC nella documentazione di Amazon VPC. Non dovresti essere in grado di creare queste risorse.

  3. Assumi il AutomationAdminRole ruolo e riprova il passaggio precedente. Ora dovresti essere in grado di creare le risorse di rete.

Amministratore AWS

Gestisci i tag.

  1. Assumi il TestAdminRole ruolo nell'account AWS di destinazione.

  2. Aggiungi un SubnetType:IFA tag a una sottorete pubblica disponibile. Dovresti essere in grado di aggiungere questo tag. Per istruzioni su come aggiungere tag tramite l'AWS Command Line Interface (AWS CLI), consulta create-tags nell'AWS CLI Command Reference.

  3. Senza modificare le credenziali, prova a modificare il SubnetType:IFA tag assegnato a questa sottorete. Non dovresti essere in grado di modificare questo tag.

  4. Assumi il AutomationAdminRole ruolo e riprova i passaggi precedenti. Questo ruolo dovrebbe essere in grado di aggiungere e modificare questo tag.

Amministratore AWS

Distribuisci risorse nelle sottoreti di destinazione.

  1. Assumi il ruolo. TestAdminRole

  2. Per una sottorete pubblica con il SubnetType:IFA tag, prova a creare un'istanza EC2. Per istruzioni, consulta Launch an istance nella documentazione di Amazon EC2. In questa sottorete, non dovresti essere in grado di creare, modificare o eliminare alcuna risorsa Amazon EC2 ad eccezione dei gateway NAT.

  3. Nella stessa sottorete, crea un gateway NAT. Per istruzioni, consulta Creare un gateway NAT nella documentazione di Amazon VPC. Dovresti essere in grado di creare, modificare o eliminare i gateway NAT in questa sottorete.

Amministratore AWS

Gestisci il AutomationAdminRole ruolo.

  1. Assumi il TestAdminRole ruolo.

  2. Prova a modificare il AutomationAdminRole ruolo. Per istruzioni, consulta Modificare un ruolo nella documentazione IAM. Non dovresti essere in grado di modificare questo ruolo.

  3. Assumi il AutomationAdminRole ruolo e riprova il passaggio precedente. Ora dovresti essere in grado di modificare il ruolo.

Amministratore AWS
AttivitàDescrizioneCompetenze richieste

Pulisci le risorse distribuite.

  1. Scollega SCP dall'account AWS o dall'unità organizzativa. Per istruzioni, consulta Detaching an SCP nella documentazione di AWS Organizations.

  2. Eliminare l'SCP. Per istruzioni, consulta Eliminazione di un SCP (documentazione di AWS Organizations).

  3. Elimina il AutomationAdminRole ruolo e il TestAdminRole ruolo. Per istruzioni, consulta Eliminazione dei ruoli nella documentazione IAM.

  4. Elimina tutte le risorse di rete, come VPC e sottoreti, che hai creato per questa soluzione.

Amministratore AWS

Risorse correlate

Documentazione AWS

Riferimenti AWS aggiuntivi

Informazioni aggiuntive

La seguente policy di controllo dei servizi è un esempio che puoi usare per testare questo approccio nella tua organizzazione.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "DenyVPCActions", "Effect": "Deny", "Action": [ "ec2:CreateVPC", "ec2:CreateRoute", "ec2:CreateSubnet", "ec2:CreateInternetGateway", "ec2:DeleteVPC", "ec2:DeleteRoute", "ec2:DeleteSubnet", "ec2:DeleteInternetGateway" ], "Resource": [ "arn:aws:ec2:*:*:*" ], "Condition": { "StringNotLike": { "aws:PrincipalARN": ["arn:aws:iam::*:role/AutomationAdminRole"] } } }, { "Sid": "AllowNATGWOnIFASubnet", "Effect": "Deny", "NotAction": [ "ec2:CreateNatGateway", "ec2:DeleteNatGateway" ], "Resource": [ "arn:aws:ec2:*:*:subnet/*" ], "Condition": { "ForAnyValue:StringEqualsIfExists": { "aws:ResourceTag/SubnetType": "IFA" }, "StringNotLike": { "aws:PrincipalARN": ["arn:aws:iam::*:role/AutomationAdminRole"] } } }, { "Sid": "DenyChangesToAdminRole", "Effect": "Deny", "NotAction": [ "iam:GetContextKeysForPrincipalPolicy", "iam:GetRole", "iam:GetRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListInstanceProfilesForRole", "iam:ListRolePolicies", "iam:ListRoleTags" ], "Resource": [ "arn:aws:iam::*:role/AutomationAdminRole" ], "Condition": { "StringNotLike": { "aws:PrincipalARN": ["arn:aws:iam::*:role/AutomationAdminRole"] } } }, { "Sid": "allowbydefault", "Effect": "Allow", "Action": "*", "Resource": "*" } ] }