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à.
Tutorial IAM: utilizzo di un modello CloudFormation per creare un gestore dell'identità digitale (IdP) SAML
Per configurare la federazione SAML per l'account AWS, è necessario creare un gestore dell'identità digitale (IdP) SAML. Questo tutorial mostra come utilizzare un modello CloudFormation per creare un IdP SAML che stabilisca l'attendibilità tra AWS e l'IdP esterno.
Il modello crea un IdP SAML configurato con il documento di metadati dell'IdP. I ruoli IAM federati possono quindi fare riferimento a questo IdP per consentire agli utenti autenticati del tuo IdP esterno di accedere alle risorse AWS.
La risorsa implementata è costituita da un IdP SAML configurato con il documento di metadati del tuo IdP e impostazioni di crittografia facoltative.
Prerequisiti
Questo tutorial presuppone che tu abbia a disposizione quanto segue:
-
Python 3.6 o versione successiva installato sul computer locale per eseguire il comando Python utilizzato in questo tutorial per formattare il file XML dei metadati SAML del tuo IdP.
-
Un documento di metadati SAML del tuo IdP esterno salvato come file XML.
Creazione di un IdP SAML utilizzando CloudFormation
Per creare l'IdP SAML, creerai un modello CloudFormation e lo utilizzerai per creare uno stack contenente la risorsa IdP.
Creazione del modello
Per prima cosa, crea il modello CloudFormation.
-
Nella sezione Modello, fai clic sull'icona di copia nella scheda JSON o YAML per copiare i contenuti del modello.
-
Copia i contenuti del modello in un nuovo file.
-
Salva il file localmente.
Creazione dello stack
Quindi, usa il modello salvato per eseguire il provisioning di uno stack CloudFormation.
-
Apri la console di CloudFormation all'indirizzo https://console.aws.amazon.com/cloudformation
. -
Nella pagina Stack, scegli Con nuove risorse (standard) nel menu Crea stack.
-
Specifica il modello:
-
In Prerequisito, seleziona Scegli un modello esistente.
-
In Specifica modello, seleziona Carica un file di modello.
-
Seleziona Scegli file, quindi passa al file del modello e selezionalo.
-
Scegli Next (Successivo).
-
-
Specifica i seguenti dettagli dello stack:
-
Inserisci un nome dello stack.
-
Per IdentityProviderName, puoi lasciare vuoto questo campo per generare automaticamente un nome basato sul nome dello stack o inserire un nome personalizzato per l'IdP SAML. I nomi personalizzati devono contenere solo caratteri alfanumerici, punti, trattini bassi e trattini.
-
Per IdentityProviderSAMLMetadataDocument, è necessario formattare il file XML di metadati SAML come una singola riga prima di incollarlo in questo campo. Ciò è necessario perché la console CloudFormation richiede che il contenuto XML sia formattato come una singola riga quando viene passato attraverso i parametri della console.
Usa il seguente comando Python per riformattare il tuo file XML:
python3 -c "import sys, re; content=open(sys.argv[1]).read(); print(re.sub(r'>\s+<', '><', content.replace('\n', '').replace('\r', '').strip()))"saml-metadata.xmlNota
Il documento di metadati SAML dell'IdP deve essere formattato come una singola riga per poter essere utilizzato come parametro nella console. Il comando Python rimuove le interruzioni di riga e gli spazi bianchi aggiuntivi per creare il formato richiesto, mantenendo però intatti tutti i contenuti e la struttura originali.
Copia l'output dal comando Python e incollalo nel campo IdentityProviderSAMLMetadataDocument.
Esempio di documento di metadati SAML formattato (abbreviato):
<?xml version="1.0" encoding="UTF-8"?><md:EntityDescriptor xmlns:md="urn:oasis:names:tc:SAML:2.0:metadata" entityID="https://portal.sso.example.com/saml/assertion/CompanyIdP"><md:IDPSSODescriptor WantAuthnRequestsSigned="false" protocolSupportEnumeration="urn:oasis:names:tc:SAML:2.0:protocol"><md:KeyDescriptor use="signing"><ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#"><ds:X509Data><ds:X509Certificate>MIIDXTCCAkWgAwIBAgIJAJC1HiIAZAiIMA0GCSqGSIb3DQEBBQUAMEUxCzAJBgNV...</ds:X509Certificate></ds:X509Data></ds:KeyInfo></md:KeyDescriptor><md:SingleLogoutService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" Location="https://portal.sso.example.com/saml/logout/CompanyIdP"/><md:NameIDFormat>urn:oasis:names:tc:SAML:2.0:nameid-format:persistent</md:NameIDFormat><md:SingleSignOnService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" Location="https://portal.sso.example.com/saml/assertion/CompanyIdP"/></md:IDPSSODescriptor></md:EntityDescriptor> -
Per gli altri parametri, accetta i valori predefiniti o inseriscine altri in base ai tuoi requisiti:
-
IdentityProviderAddPrivateKey: chiave privata facoltativa per decrittografare le asserzioni SAML
-
IdentityProviderAssertionEncryptionMode: facoltativa, imposta la modalità di crittografia per le asserzioni SAML (Consentita, Richiesta o valore vuoto)
-
-
Scegli Next (Successivo).
-
-
Configura le opzioni dello stack:
-
In Opzioni di errore dello stack, scegli Elimina tutte le nuove risorse create.
Nota
Scegliendo questa opzione si evita di ricevere addebiti per risorse la cui policy di eliminazione specifica che devono essere mantenute anche se la creazione dello stack non riesce.
-
Accetta tutti gli altri valori predefiniti.
-
In Funzionalità, seleziona la casella per confermare che CloudFormation può creare risorse IAM nel tuo account.
-
Scegli Next (Successivo).
-
-
Rivedi i dettagli dello stack e scegli Invia.
CloudFormation crea lo stack. Una volta completata la creazione dello stack, le relative risorse sono pronte per l'uso. Puoi utilizzare la scheda Risorse nella pagina dei dettagli dello stack per visualizzare le risorse che sono state fornite nel tuo account.
Lo stack produrrà i seguenti valori, che puoi visualizzare nella scheda Output:
-
ProviderARN: l'ARN dell'IdP SAML creato (ad esempio,
arn:aws:iam::123456789012:saml-provider/CompanyIdP). Avrai bisogno di questo ARN per creare ruoli che considerano attendibile questo provider. -
ProviderName: il nome dell'IdP SAML creato (ad esempio,
CompanyIdPse hai specificato un nome personalizzato omy-saml-stack-saml-providerse hai utilizzato la denominazione predefinita).
Questi output vengono anche esportati, consentendone l'importazione da altri stack CloudFormation utilizzando la funzione Fn::ImportValue.
Verifica dell'IdP SAML
Una volta che l'IdP SAML è stato creato, puoi verificarne la configurazione e prendere nota del relativo ARN da utilizzare con i ruoli federati.
-
Aprire la console IAM all'indirizzo https://console.aws.amazon.com/iam/
. -
Nel pannello di navigazione, scegli Identity providers (Provider di identità).
L'elenco dovrebbe mostrare l'IdP SAML appena creato.
-
Scegli il nome dell'IdP per visualizzarne i dettagli.
Nella pagina dei dettagli dell'IdP, puoi vedere il documento di metadati SAML e altri dettagli di configurazione.
-
Prendi nota del Provider ARN visualizzato nella pagina dei dettagli.
Avrai bisogno di questo ARN per creare ruoli IAM federati che ritengono attendibile questo IdP.
-
Esamina il documento di metadati per assicurarti che corrisponda a quello che hai fornito dal tuo IdP esterno.
Il tuo IdP SAML è ora pronto per essere utilizzato dai ruoli IAM federati. Puoi creare ruoli che ritengono attendibile questo IdP per consentire agli utenti autenticati del tuo IdP esterno di assumere tali ruoli e accedere alle risorse AWS.
Pulizia: eliminazione delle risorse
Come passaggio finale, eliminerai lo stack e le risorse in esso contenute.
-
Apri la CloudFormation console.
-
Nella pagina Stack, scegli lo stack creato dal modello, poi scegli Elimina, quindi conferma con Elimina.
CloudFormation avvia l'eliminazione dello stack e di tutte le risorse che include.
Dettagli del modello CloudFormation
Risorse
Il modello CloudFormation per questo tutorial creerà la seguente risorsa nel tuo account:
AWS::IAM::SAMLProvider: un IdP SAML che stabilisce attendibilità tra AWS e l'IdP esterno.
Configurazione
Il modello include i seguenti parametri configurabili:
-
IdentityProviderName: il nome per l'IdP SAML (lasciare vuoto per un nome generato automaticamente)
Esempio:
CompanyIdPoEnterpriseSSO -
IdentityProviderSAMLMetadataDocument: il documento dei metadati SAML fornito dall'IdP esterno (formattato come una singola riga)
-
IdentityProviderAddPrivateKey: chiave privata facoltativa per decrittografare le asserzioni SAML
-
IdentityProviderAssertionEncryptionMode: facoltativa, imposta la modalità di crittografia per le asserzioni SAML
Modello di CloudFormation
Salva il seguente codice JSON o YAML come file separato da utilizzare come modello CloudFormation per questo tutorial.