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: utilizza un AWS CloudFormation modello per creare un provider di identità SAML (IdP) e un ruolo IAM federato SAML
Per acquisire familiarità con la federazione SAML e le sue funzionalità, utilizzerai un AWS CloudFormation modello per configurare un provider di identità SAML (IdP) e il ruolo IAM federato associato. Questo tutorial mostra come creare entrambe le risorse insieme in un unico stack.
Il modello crea un IdP SAML che può essere utilizzato per l'accesso federato alle risorse, insieme AWS a un ruolo IAM che si fida del provider SAML. Gli utenti autenticati dal tuo IdP esterno possono assumere questo ruolo per accedere alle AWS risorse.
Le risorse distribuite sono le seguenti:
-
Un IdP SAML configurato con il documento di metadati del tuo IdP.
-
Un ruolo IAM federato che si fida dell'IdP SAML e può essere assunto dagli utenti autenticati.
-
Policy gestite configurabili che possono essere associate al ruolo per concedere autorizzazioni specifiche.
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.
Crea un IdP e un ruolo SAML utilizzando AWS CloudFormation
Per creare l'IdP SAML e il ruolo federato, creerai CloudFormation un modello e lo utilizzerai per creare uno stack contenente entrambe le risorse.
Crea il modello
Innanzitutto, crea il CloudFormation modello.
-
Nella Modello sezione, fai clic sull'icona di copia nella scheda JSON o YAML per copiare il contenuto del modello.
-
Incolla il contenuto del modello in un nuovo file.
-
Salva il file localmente.
Creazione dello stack
Quindi, usa il modello che hai salvato per effettuare il provisioning di uno CloudFormation stack.
-
Apri la AWS CloudFormation console in https://console.aws.amazon.com/cloudformation.
-
Nella pagina Stacks, dal menu Crea stack, scegli con nuove risorse (standard).
-
Specificate il modello:
-
In Prerequisito, scegli Scegli un modello esistente.
-
In Specificare il modello, scegli Carica un file modello.
-
Scegli il file, vai al file modello e selezionalo.
-
Scegli Next (Successivo).
-
-
Specificate i seguenti dettagli dello stack:
-
Inserisci un nome per lo stack.
-
Infatti IdentityProviderName, puoi lasciare vuoto questo campo per generare automaticamente un nome basato sul nome dello stack o inserire un nome personalizzato per il tuo IdP SAML.
Esempio: o
CompanyIdP
EnterpriseSSO
-
Per IdentityProviderSAMLMetadataDocument, devi formattare il file XML di metadati SAML come una singola riga prima di incollarlo in questo campo. Ciò è necessario perché la CloudFormation console richiede che il contenuto XML venga 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.xml
Nota
Il documento di metadati SAML dell'IdP deve essere formattato come una singola riga per l'immissione dei parametri della console. Il comando Python rimuove le interruzioni di riga e gli spazi bianchi aggiuntivi per creare il formato richiesto mantenendo tutto il contenuto e la struttura originali.
Copia l'output dal comando Python e incollalo nel campo IdentityProviderSAMLMetadataDocumento.
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>
-
Infatti RoleName, puoi lasciare vuoto questo campo per generare automaticamente un nome basato sul nome dello stack o inserire un nome personalizzato per il ruolo IAM federato.
Esempio: o
SAML-Developer-Access
SAML-ReadOnly-Role
-
Per gli altri parametri, accettate i valori predefiniti o inserite i vostri in base alle vostre esigenze:
-
IdentityProviderAddPrivateKey- Chiave privata opzionale per decrittografare le asserzioni SAML
-
IdentityProviderAssertionEncryptionMode- Modalità di crittografia per le asserzioni SAML
Valori di esempio:
Allowed
Required
, o lasciali vuoti per non utilizzare alcuna crittografia -
RoleSessionDuration- Durata massima della sessione in secondi (3600-43200, impostazione predefinita 7200)
Esempio: (4 ore)
14400
-
RolePermissionsBoundary- ARN opzionale di una politica sui limiti delle autorizzazioni
Esempio:
arn:aws:iam::123456789012:policy/DeveloperBoundary
-
RolePath- Percorso per il ruolo IAM (l'impostazione predefinita è/)
Esempio:
/saml-roles/
-
RoleManagedPolicy1-5 - Possibilità ARNs di allegare fino a 5 policy gestite
Esempio per RoleManagedPolicy 1:
arn:aws:iam::aws:policy/ReadOnlyAccess
Esempio per RoleManagedPolicy 2:
arn:aws:iam::123456789012:policy/CustomPolicy
-
-
Scegli Next (Successivo).
-
-
Configura le opzioni dello stack:
-
In Opzioni di errore dello stack, scegli Elimina tutte le risorse appena create.
Nota
La scelta di questa opzione evita che ti vengano addebitate le risorse la cui politica di eliminazione specifica che tali risorse vengano mantenute anche se la creazione dello stack fallisce.
-
Accetta tutti gli altri valori predefiniti.
-
In Capacità, seleziona la casella per confermare che CloudFormation potresti creare risorse IAM nel tuo account.
-
Scegli Next (Successivo).
-
-
Controlla i dettagli dello stack e scegli Invia.
AWS CloudFormation crea lo stack. Una volta completata la creazione dello stack, le risorse dello stack 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:
-
ROLearn: L'ARN del ruolo IAM creato (ad esempio,
arn:aws:iam::123456789012:role/SAML-Developer-Access
oarn:aws:iam::123456789012:role/stack-name-a1b2c3d4
se si utilizza un nome generato automaticamente). -
IdentityProviderARN: l'ARN dell'IdP SAML creato (ad esempio,).
arn:aws:iam::123456789012:saml-provider/CompanyIdP
Avrai bisogno di entrambi questi elementi per configurare ARNs il tuo IdP per inviare gli attributi SAML appropriati per l'assunzione del ruolo.
Prova la federazione SAML
Dopo aver creato l'IdP SAML e il ruolo federato, puoi testare la configurazione della federazione.
-
Aprire la console IAM all'indirizzo https://console.aws.amazon.com/iam/
. -
Nel pannello di navigazione, scegli Identity providers (Provider di identità).
Dovresti vedere il tuo IdP SAML appena creato nell'elenco.
-
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.
-
Nel riquadro di navigazione, seleziona Ruoli.
-
Trova e scegli il ruolo federato appena creato.
Nella pagina dei dettagli del ruolo, puoi vedere la politica di fiducia che consente all'IdP SAML di assumere questo ruolo.
-
Scegli la scheda Relazioni di fiducia per esaminare la politica di fiducia.
La politica di fiducia dovrebbe mostrare che l'IdP SAML è affidabile per assumere questo ruolo a condizione che il pubblico
SAML:aud
SAML () corrisponda.https://signin.aws.amazon.com/saml
Pulisci: elimina le risorse
Come passaggio finale, eliminerai lo stack e le risorse in esso contenute.
-
Apri la AWS CloudFormation console.
-
Nella pagina Pile, scegli lo stack creato dal modello, quindi scegli Elimina, quindi conferma Elimina.
CloudFormation avvia l'eliminazione dello stack e di tutte le risorse che include.
CloudFormation dettagli del modello
Risorse
Il AWS CloudFormation modello di questo tutorial creerà le seguenti risorse nel tuo account:
-
AWS::IAM::SAMLProvider
: un IdP SAML che stabilisce un rapporto di fiducia AWS tra e il tuo IdP esterno. -
AWS::IAM::Role
: un ruolo IAM federato che può essere assunto dagli utenti autenticati tramite l'IdP SAML.
Configurazione
Il modello include i seguenti parametri configurabili:
-
IdentityProviderName- Nome dell'IdP SAML (lascia vuoto il nome generato automaticamente)
-
IdentityProviderSAMLMetadataDocumento: documento di metadati SAML del tuo IdP (richiesto)
-
IdentityProviderAddPrivateKey- Chiave privata opzionale per decrittografare le asserzioni SAML
-
IdentityProviderAssertionEncryptionMode- Modalità di crittografia per le asserzioni SAML
-
RoleName- Nome del ruolo IAM (lasciare vuoto il nome generato automaticamente)
-
RolePath- Percorso per il ruolo IAM (predefinito/)
-
RolePermissionsBoundary- ARN opzionale della politica dei limiti delle autorizzazioni
-
RoleSessionDuration- Durata massima della sessione in secondi (3600-43200, impostazione predefinita 7200)
-
RoleManagedPolicy1-5 - Possibilità di allegare fino a 5 ARNs policy gestite
CloudFormation modello
Salva il seguente codice JSON o YAML come file separato da utilizzare come CloudFormation modello per questo tutorial.