Per abilitare l'accesso federato all'API Athena:
Questa sezione illustra l'accesso federato che consente a un utente o a un'applicazione client nell'organizzazione di chiamare le operazioni API di Amazon Athena. In questo caso, gli utenti dell'organizzazione non hanno accesso diretto ad Athena. Al contrario, gestisci le credenziali utente all'esterno di AWS in Microsoft Active Directory. Active Directory supporta SAML 2.0
Per autenticare gli utenti in questo scenario, è necessario utilizzare il driver JDBC o ODBC con supporto di SAML 2.0 per accedere ad Active Directory Federation Services (AD FS) 3.0 e consentire a un'applicazione client di chiamare le operazioni API di Athena.
Per ulteriori informazioni sul supporto di SAML 2.0 su AWS, consulta Informazioni sulla federazione SAML 2.0 nella Guida per l'utente di IAM.
Nota
L'accesso federato all'API di Athena è supportato per un determinato tipo di provider di identità (IdP), Active Directory Federation Service (AD FS 3.0), parte di Windows Server. L'accesso federato non è compatibile con la funzionalità di propagazione delle identità attendibili di Centro identità IAM. L'accesso viene stabilito attraverso le versioni dei driver JDBC o ODBC che supportano SAML 2.0. Per informazioni, consulta Connettersi ad Amazon Athena con JDBC e Connettersi ad Amazon Athena con ODBC.
Argomenti
Prima di iniziare
Prima di iniziare, completa i seguenti prerequisiti:
-
All'interno dell'organizzazione, installa e configura ADFS 3.0 come IdP.
-
Installare e configurare le versioni più recenti disponibili dei driver JDBC e ODBC sui client che vengono utilizzati per l'accesso ad Athena. Il driver deve includere il supporto per l'accesso federato compatibile con SAML 2.0. Per informazioni, consulta Connettersi ad Amazon Athena con JDBC e Connettersi ad Amazon Athena con ODBC.
Informazioni sul processo di autenticazione
Il diagramma seguente illustra il processo di autenticazione dell'accesso federato all'API Athena.
-
Un utente dell'organizzazione utilizza un'applicazione client con il driver JDBC o ODBC per richiedere l'autenticazione dall'IdP dell'organizzazione. L'IdP è ADFS 3.0.
-
L'IdP autentica l'utente rispetto ad Active Directory, che è l'archivio identità dell'organizzazione.
-
L'IdP crea un'asserzione SAML con informazioni sull'utente e invia l'asserzione all'applicazione client tramite il driver JDBC o ODBC.
-
Il driver JDBC o ODBC chiama l'operazione API AWS Security Token Service AssumeRoleWithSAML, trasmettendole i parametri seguenti:
-
L'ARN del fornitore SAML
-
L'ARN del ruolo da assumere
-
L'asserzione SAML dell'IdP
Per ulteriori informazioni, consulta AssumeRoleWithSAML nella Referenza per l'API AWS Security Token Service.
-
-
La risposta API all'applicazione client tramite il driver JDBC o ODBC include le credenziali di sicurezza temporanee.
-
L'applicazione client utilizza le credenziali di sicurezza temporanee per chiamare le operazioni API Athena, consentendo agli utenti di accedere alle operazioni API Athena.
Procedura: accesso federato basato su SAML all'API Athena
La procedura stabilisce la fiducia tra l'IdP dell'organizzazione e l'account AWS per abilitare l'accesso federato basato su SAML all'operazione API Amazon Athena.
Per abilitare l'accesso federato all'API Athena:
-
Nell'organizzazione, registrare AWS come provider di servizi (SP) nell'IdP. Questo processo è noto come relazione di trust. Per ulteriori informazioni, consultare Configurazione del provider di identità SAML 2.0 con una relazione di trust nella Guida per l'utente di IAM. Come parte di questa operazione, eseguire questi passaggi:
-
Ottenere il documento di metadati SAML di esempio da questo URL: https://signin.aws.amazon.com/static/saml-metadata.xml
. -
Nell'IdP dell'organizzazione (ADFS), generare un file XML di metadati equivalente che descriva l'IdP come provider di identità per AWS. Il file di metadati deve includere il nome dell'emittente, la data di creazione, la data di scadenza e le chiavi che AWS utilizza per convalidare le risposte di autenticazione (asserzioni) dell'organizzazione.
-
-
Nella console &IAM; creare un'entità provider di identità SAML. Per ulteriori informazioni, consulta Creazione di provider di identità SAML nella Guida per l'utente di IAM. Come parte di questo passaggio, eseguire queste operazioni:
Aprire la console IAM all'indirizzo https://console.aws.amazon.com/iam/
. -
Caricare il documento di metadati SAML generato dall'IdP (ADFS) al punto 1 di questa procedura.
-
Nella console IAM, creare uno o più ruoli IAM per l'IdP. Per ulteriori informazioni, consultare Creazione di un ruolo per un provider di identità di terze parti (federazione) nella Guida per l'utente di IAM. Come parte di questo passaggio, eseguire queste operazioni:
-
Nella policy di autorizzazione del ruolo, elencare le operazioni che gli utenti dell'organizzazione possono effettuare in AWS.
-
Nella policy di affidabilità del ruolo, impostare come principale l'entità provider SAML creata al punto 2 di questa procedura.
Questo stabilisce una relazione di trust tra l'organizzazione e AWS.
-
-
Nell'IdP dell'organizzazione (ADFS), definire le asserzioni che associano utenti o gruppi dell'organizzazione ai ruoli IAM. L'associazione di utenti e gruppi ai ruoli IAM è nota anche come regola di attestazione. Si noti che i diversi utenti e gruppi dell'organizzazione potrebbero essere mappati a diversi ruoli IAM.
Per informazioni sulla configurazione della mappatura in ADFS, consultare il post del blog relativo all'abilitazione della federazione ad AWS tramite Windows Active Directory, ADFS e SAML 2.0
. -
Installare e configurare il driver JDBC o ODBC con il supporto di SAML 2.0. Per informazioni, consulta Connettersi ad Amazon Athena con JDBC e Connettersi ad Amazon Athena con ODBC.
-
Specificare la stringa di connessione dall'applicazione al driver JDBC o ODBC. Per informazioni sulla stringa di connessione che deve essere utilizzata dall'applicazione, consultare l'argomento Utilizzo del provider di credenziali di Active Directory Federation Services (ADFS) nella Guida all'installazione e alla configurazione del driver JDBC o un argomento simile nella Guida all'installazione e alla configurazione del driver ODBC disponibile in formato PDF scaricabile dagli argomenti Connettersi ad Amazon Athena con JDBC e Connettersi ad Amazon Athena con ODBC.
Segue un riepilogo generale della configurazione della stringa di connessione ai driver:
-
In
AwsCredentialsProviderClass configuration, impostarecom.simba.athena.iamsupport.plugin.AdfsCredentialsProviderper indicare che si desidera utilizzare l'autenticazione basata su SAML 2.0 tramite IdP ADFS. -
Per
idp_host, fornire il nome dell'host del server dell'IdP ADFS. -
Per
idp_port, fornire il numero di porta che l'IdP ADFS ascolta per la richiesta di asserzione SAML. -
Per
UIDePWD, fornire le credenziali utente di dominio AD. Quando si utilizza il driver su Windows, seUIDePWDnon vengono forniti, il driver tenta di ottenere le credenziali utente dell'utente che ha effettuato l'accesso al computer Windows. -
Facoltativamente, impostare
ssl_insecuresutrue. In questo caso, il driver non controlla l'autenticità del certificato SSL per il server dell'IdP ADFS. L'impostazione ditrueè necessaria se il certificato SSL dell'IdP ADFS non è stato configurato in modo da essere considerato affidabile dal driver. -
Per abilitare la mappatura di un utente o gruppo di dominio Active Directory a uno o più ruoli IAM (come menzionato al punto 4 di questa procedura), in
preferred_roleper la connessione JDBC o ODBC, specificare il ruolo IAM (ARN) da assumere per la connessione del driver. La specifica dipreferred_roleè facoltativa ed è utile se il ruolo non è il primo ruolo elencato nella regola di attestazione.
Come risultato della procedura, si verificano le seguenti operazioni:
-
Il driver JDBC o ODBC chiama l'API AWS STS AssumeRoleWithSAML e le trasmette le asserzioni, come mostrato nel passaggio 4 del diagramma dell'architettura.
-
AWS si assicura che la richiesta di assumere il ruolo provenga dall'IdP a cui fa riferimento l'entità provider SAML.
-
Se la richiesta ha esito positivo, l'operazione API AWS STS AssumeRoleWithSAML restituisce una serie di credenziali di sicurezza temporanee, che l'applicazione client utilizza per inviare richieste firmate ad Athena.
L'applicazione ha ora le informazioni sull'utente corrente e può accedere ad Athena in modo programmatico.
-