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?

Lesedauer: 4 Minute
0

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

Simba Athena JDBC-Treiber mit SQL Connector Installations- und Konfigurationsanleitung (Version 2.0.9)

Zu einer IAM-Rolle wechseln (AWS CLI)

Eine IAM-Rolle in der AWS CLI verwenden

AWS OFFICIAL
AWS OFFICIALAktualisiert vor 2 Jahren