Wie kann ich meine Anmeldeinformationen für die IAM-Rolle verwenden oder zu einer anderen IAM-Rolle wechseln, wenn ich mit dem JDBC-Treiber eine Verbindung zu Athena herstelle?
Ich möchte eine AWS Identity and Access Management (IAM) Rolle verwenden, um über den JDBC-Treiber eine Verbindung zu Amazon Athena herzustellen. -oder- Ich möchte zu einer anderen IAM-Rolle wechseln, entweder in meinem AWS-Konto oder in einem anderen Konto, bevor ich über den JDBC-Treiber eine Verbindung zu Athena herstelle.
Behebung
Verwenden Sie die Anmeldeinformationen für die IAM-Rolle, um eine Verbindung zum Athena-JDBC-Treiber herzustellen
Rufen Sie die temporären Anmeldeinformationen der Rolle ab. Der Prozess zum Abrufen der temporären Anmeldeinformationen hängt davon ab, wie Sie die Rolle übernehmen.
- Übernahme der Rolle bei einem SAML-Identitätsanbieter: Active Directory Federation Services (AD FS) 3.0, Okta, PingFederate und Azure AD sind die einzigen SAML 2.0-Identitätsanbieter, die direkt vom Athena-JDBC-Treiber unterstützt werden. Wenn Sie die Rolle bei einem anderen Identitätsanbieter übernehmen, verwenden Sie den Befehl assume-role-with-saml, um die temporären Anmeldeinformationen abzurufen.
- **Eine andere Rolle in Ihrem Konto einnehmen:**Wenn Sie eine andere Rolle in demselben AWS-Konto übernehmen, verwenden Sie assume-role, um die temporären Anmeldeinformationen abzurufen.
Hinweis: Wenn Sie beim Ausführen von AWS Command Line Interface (AWS CLI) Befehlen Fehler erhalten, stellen Sie sicher, dass Sie die neueste AWS-CLI-Version verwenden.
Weitere Informationen finden Sie unter Verwenden von IAM-Rollen und in der Tabelle Methoden für die Verwendung von Rollen vergleichen.
Die temporären Anmeldeinformationen enthalten das Sitzungstoken, die Zugriffsschlüssel-ID und den geheimen Zugriffsschlüssel. Diese drei Anmeldeinformationen sind für die Authentifizierung der JDBC-Verbindung zu Athena erforderlich. Beachten Sie, dass die temporären Anmeldeinformationen eine maximale Lebensdauer von 12 Stunden haben.
1.Speichern Sie auf dem Computer, auf dem der Athena-JDBC-Treiber installiert ist, die temporären Anmeldeinformationen in der Datei mit den AWS-Anmeldeinformationen (~/.aws/credentials) als benanntes Profil. Weitere Informationen finden Sie unter Konfiguration und Einstellungen für Anmeldeinformationsdateien.
Hier ist ein Beispiel für temporäre Anmeldeinformationen, die in einem AWS-CLI-Profil namens testprofile gespeichert sind:
[testprofile] aws_access_key_id=ASIAXXXXXXXXX aws_secret_access_key=XXXXXXXX aws_session_token=XXXXXXXXXXXXXXXXXX
2.Um mit dem JDBC-Treiber eine Verbindung zu Athena herzustellen, geben Sie den Profilnamen in der JDBC-Verbindungszeichenfolge an (zum Beispiel: jdbc:awsathena://AwsRegion=us-west-2;Profile=testProfile;). Oder legen Sie den Profilnamen in der JDBC-Konfigurationseigenschaft Profile fest.
Hinweis: Die JDBC-Konfigurationseigenschaft Profile ist in den Athena-JDBC-Treiberversionen 2.0.6 und höher verfügbar. Den neuesten JDBC-Treiber finden Sie unter Links zum Herunterladen des JDBC-Treibers.
Zu einer anderen IAM-Rolle wechseln und dann eine Verbindung zum Athena-JDBC-Treiber herstellen
Um die Rollen zu wechseln, bevor Sie eine Verbindung zum Athena-JDBC-Treiber herstellen, verwenden Sie die Option source_profile im benannten Profil:
1.Fügen Sie auf dem Computer, auf dem der Athena-JDBC-Treiber installiert ist, der Datei mit den AWS-CLI-Anmeldeinformationen (~/.aws/credentials) ein benanntes Profil hinzu. Weitere Informationen zum Erstellen benannter Profile finden Sie unter Benannte Profile. Das Profil muss die folgenden Eigenschaften enthalten:
role_arn: der Amazon-Ressourcenname (ARN) der Rolle, die Sie übernehmen möchten
source_profile: ein Profil, das die Anmeldeinformationen eines IAM-Benutzers enthält, oder eine IAM-Rolle, die berechtigt ist, die Rolle anzunehmen
Um beispielsweise eine Rolle namens testrole anzunehmen, die den ARN arn:aws:iam: :123456789012:role/testrole hat, erstellen Sie ein benanntes Profil wie folgt:
[switchroletest] role_arn=arn:aws:iam::123456789012:role/testrole source_profile=default
In diesem Beispiel enthält das Standardprofil die Anmeldeinformationen eines IAM-Benutzers oder einer IAM-Rolle mit der Berechtigung, testrole zu übernehmen:
[default] aws_access_key_id=ASIAXXXXXXXXX aws_secret_access_key=XXXXXXXX aws_session_token=XXXXXXXXXXXXXXXXXX
Hinweis: AWS CLI unterstützt die Angabe von source_profile in der AWS-CLI-Konfigurationsdatei (/.aws/config) und von Benutzeranmeldeinformationen in einer separaten Datei mit AWS-CLI-Anmeldeinformationen (/.aws/credentials). Der Athena-JDBC-Treiber unterstützt jedoch das Lesen von Anmeldeinformationen nur aus der Datei mit den AWS-CLI-Anmeldeinformationen. Aufgrund dieser Einschränkung müssen die Profile in den vorherigen Beispielen in derselben Datei mit den AWS-CLI-Anmeldeinformationen (~/.aws/credentials) abgelegt werden und dürfen nicht mit dem Präfix profile versehen werden. Der Athena-JDBC-Treiber unterstützt die Verwendung von credential_source = ec2InstanceMetadata in benannten Profilen nicht.
2.Um mit dem JDBC-Treiber eine Verbindung zu Athena herzustellen, geben Sie den Profilnamen in der JDBC-Verbindungszeichenfolge an (zum Beispiel: jdbc:awsathena://AwsRegion=us-west-2;profile=switchroletest;). Oder legen Sie den Profilnamen in der JDBC-Konfigurationseigenschaft Profile fest.
Weitere Informationen
Temporäre Sicherheitsanmeldeinformationen anfordern
Relevanter Inhalt
- AWS OFFICIALAktualisiert vor 2 Jahren