aws / aws/amazon-redshift-python-driver

IAMR not supported

Ouverte
#255 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub
Langage dominant
Python
Étoiles
220
Forks
86
Métriques de merge des PR
Aucune PR mergée en 30 j

Description

I can't connect to an IAMR redshift user with this lib

```sql
CREATE USER "IAMR:test_to_delete_redshift_ci" PASSWORD DISABLE;
```

but It work when I manually use boto3+psycopg2

```python

import os

import boto3
import psycopg2
import redshift_connector

os.environ["AWS_PROFILE"] = "redshift_test_role_2"

def with_lib():
conn = redshift_connector.connect(
iam=True,
cluster_identifier="YYYYYY",
database="AAAAA",
db_user="test_to_delete_redshift_ci",
password="",
region="eu-west-1",
)
cursor = conn.cursor()
cursor.execute("SELECT 10,20")
print(cursor.fetchall())

def manually():

RS_PORT = 5439
DATABASE = 'AAAAAA'
CLUSTER_ID = 'YYYYYYY'
RS_HOST = 'XXXXXXXXXXX'

client = boto3.client('redshift')

cluster_creds = client.get_cluster_credentials_with_iam(ClusterIdentifier=CLUSTER_ID)

print(cluster_creds)
conn = psycopg2.connect(
host=RS_HOST,
port=RS_PORT,
user=cluster_creds['DbUser'],
password=cluster_creds['DbPassword'],
database=DATABASE
)
cur = conn.cursor()
cur.execute("SELECT 10,20")

print(cur.fetchall())

if __name__ == '__main__':

with_lib()
manually()
```

with_lib fail with

```log
redshift_connector.error.ProgrammingError: {'S': 'FATAL', 'C': '42704', 'M': 'user "IAM:test_to_delete_redshift_ci" does not exist', 'F': '/opt/brazil-pkg-cache/packages/RedshiftPADB/RedshiftPADB-1.0.7910.0/AL2_x86_64/generic-flavor/src/src/pg/src/backend/utils/init/miscinit.c', 'L': '976', 'R': 'InitializeSessionUserId'}
```

Guide de contribution

Ouvrir le guide de contribution

Piste de recherche

Commencez par exécuter with_lib() et manually() à partir de l’exemple de l’issue, puis comparez le comportement de l’utilisateur et de la connexion générés. Suivez le point d’entrée de l’authentification IAM du connecteur, puis vérifiez qu’un utilisateur IAMR se connecte correctement et que SELECT 10,20 renvoie les lignes attendues.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
aws, python
Domaine
authentication, databases
Type d'issue
Bug
Difficulté
3/5
Temps estimé
1-2 jours
Activité
À l'abandon
Clarté
Plutôt claire
Accessibilité débutants
42/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.