Hacktoberfest 2026:维护者为十月标记出来的 issue,仍然开放、适合新手。 浏览 Hacktoberfest issue

IAMR not supported

未关闭
#255 0 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

还没有人认领这个 Issue。

评估

难度
3/5
预计耗时
1-2 天
新手友好度
42/100
Issue 类型
缺陷
描述清晰度
基本清楚
活跃度
停滞
技术栈
aws, python

调研方向

首先运行 issue 示例中的 with_lib() 和 manually(),并比较生成的用户和连接行为。跟踪 connector 的 IAM 身份验证入口点,然后验证 IAMR 用户能够成功连接,并且 SELECT 10,20 返回预期的行。

由索引模型根据 Issue 内容生成。

描述

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

CREATE USER "IAMR:test_to_delete_redshift_ci" PASSWORD DISABLE;

but It work when I manually use boto3+psycopg2


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

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'}
主要语言
Python
星标
220
派生
88
PR 合并指标
30 天内没有已合并 PR

环境准备

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

aws/amazon-redshift-python-driver 的其他 Issue

查看 aws/amazon-redshift-python-driver 的全部 Issue

相似的 Issue

更多 Python Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。