使用 Python 使用 IAM 角色连接到 Redshift

2023-11-22

我正在使用 sqlalchemy 和 psycopg2 将 python 连接到 redshift。

engine = create_engine('postgresql://user:password@hostname:port/database_name')

我想避免使用我的密码连接到 redshift 并使用 IAM 角色。


AWS 提供了一种请求临时凭证以访问 Redshift 集群的方法。 Boto3实现get_cluster_credentials,允许您执行如下操作。确保您已遵循此处说明关于设置您的 IAM 用户和角色。

def db_connection():
    logger = logging.getLogger(__name__)

    RS_PORT = 5439
    RS_USER = 'myDbUser'
    DATABASE = 'myDb'
    CLUSTER_ID = 'myCluster'
    RS_HOST = 'myClusterHostName'

    client = boto3.client('redshift')

    cluster_creds = client.get_cluster_credentials(DbUser=RS_USER,
                                               DbName=DATABASE,
                                          ClusterIdentifier=CLUSTER_ID,
                                               AutoCreate=False)

    try:
      conn = psycopg2.connect(
        host=RS_HOST,
        port=RS_PORT,
        user=cluster_creds['DbUser'],
        password=cluster_creds['DbPassword'],
        database=DATABASE
      )
      return conn
    except psycopg2.Error:
      logger.exception('Failed to open database connection.')
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Python 使用 IAM 角色连接到 Redshift 的相关文章

  • DreamPie 不适用于 Python 3.2

    我最喜欢的 Python shell 是DreamPie http dreampie sourceforge net 我想将它与 Python 3 2 一起使用 我使用了 添加解释器 DreamPie 应用程序并添加了 Python 3 2
  • 导入错误:没有名为 _ssl 的模块

    带 Python 2 7 的 Ubuntu Maverick 我不知道如何解决以下导入错误 gt gt gt import ssl Traceback most recent call last File
  • 更改自动插入 tkinter 小部件的文本颜色

    我有一个文本框小部件 其中插入了三条消息 一条是开始消息 一条是结束消息 一条是在 单位 被摧毁时发出警报的消息 我希望开始和结束消息是黑色的 但被毁坏的消息 参见我在代码中评论的位置 插入小部件时颜色为红色 我不太确定如何去做这件事 我看
  • Python 多处理示例不起作用

    我正在尝试学习如何使用multiprocessing但我无法让它发挥作用 这是代码文档 http docs python org 2 library multiprocessing html from multiprocessing imp
  • 如何在Windows上模拟socket.socketpair

    标准Python函数套接字 套接字对 https docs python org 3 library socket html socket socketpair不幸的是 它在 Windows 上不可用 从 Python 3 4 1 开始 我
  • Python tcl 未正确安装

    我刚刚为 python 安装了graphics py 但是当我尝试运行以下代码时 from graphics import def main win GraphWin My Circle 100 100 c Circle Point 50
  • 从 scikit-learn 导入 make_blobs [重复]

    这个问题在这里已经有答案了 我收到下一个警告 D Programming Python ML venv lib site packages sklearn utils deprecation py 77 DeprecationWarning
  • 在 S3 中迭代对象时出现“ConnectionPoolTimeoutException”

    我已经使用 aws java API 一段时间了 没有遇到太多问题 目前我使用的是库 1 5 2 版本 当我使用以下代码迭代文件夹内的对象时 AmazonS3 s3 new AmazonS3Client new PropertiesCred
  • 从列表中的数据框列中搜索部分字符串匹配 - Pandas - Python

    我有一个清单 things A1 B2 C3 我有一个 pandas 数据框 其中有一列包含用分号分隔的值 某些行将包含与上面列表中的一项的匹配 它不会是完美的匹配 因为它在其中包含字符串的其他部分 该列 例如 该列中的一行可能有 哇 这里
  • IRichBolt 在storm-1.0.0 和 pyleus-0.3.0 上运行拓扑时出错

    我正在运行风暴拓扑 pyleus verbose local xyz topology jar using storm 1 0 0 pyleus 0 3 0 centos 6 6并得到错误 线程 main java lang NoClass
  • feedparser 在脚本运行期间失败,但无法在交互式 python 控制台中重现

    当我运行 eclipse 或在 iPython 中运行脚本时 它失败了 ascii codec can t decode byte 0xe2 in position 32 ordinal not in range 128 我不知道为什么 但
  • 在pyyaml中表示具有相同基类的不同类的实例

    我有一些单元测试集 希望将每个测试运行的结果存储为 YAML 文件以供进一步分析 YAML 格式的转储数据在几个方面满足我的需求 但测试属于不同的套装 结果有不同的父类 这是我所拥有的示例 gt gt gt rz shorthand for
  • 允许 Amazon VPC A 访问 VPC B 上的新私有子网吗?

    我有一个现有的 VPC vpcA 并且最近设置了一个新的 VPC vpcB 同时具有私有子网 privateSubnet 和公共子网 publicSubnet 我想允许来自以下位置的连接vpcA to vpcB vpcB设置了堡垒服务器以允
  • Geopandas 设置几何图形:MultiPolygon“等于 len 键和值”的 ValueError

    我有 2 个带有几何列的地理数据框 我将一些几何图形从 1 个复制到另一个 这对于多边形效果很好 但对于任何 有效 多多边形都会返回 ValueError 请指教如何解决这个问题 我不知道是否 如何 为什么应该更改 MultiPolygon
  • Python:尝试检查有效的电话号码

    我正在尝试编写一个接受以下格式的电话号码的程序XXX XXX XXXX并将条目中的任何字母翻译为其相应的数字 现在我有了这个 如果启动不正确 它将允许您重新输入正确的数字 然后它会翻译输入的原始数字 我该如何解决 def main phon
  • Python - 按月对日期进行分组

    这是一个简单的问题 起初我认为很简单而忽略了它 一个小时过去了 我不太确定 所以 我有一个Python列表datetime对象 我想用图表来表示它们 x 值是年份和月份 y 值是此列表中本月发生的日期对象的数量 也许一个例子可以更好地证明这
  • Python:计算字典的重复值

    我有一本字典如下 dictA unit1 test1 alpha unit1 test2 beta unit2 test1 alpha unit2 test2 gamma unit3 test1 delta unit3 test2 gamm
  • VSCode:调试配置中的 Python 路径无效

    对 Python 和 VSCode 以及 stackoverflow 非常陌生 直到最近 我已经使用了大约 3 个月 一切都很好 当尝试在调试器中运行任何基本的 Python 程序时 弹出窗口The Python path in your
  • 在 Python 类中动态定义实例字段

    我是 Python 新手 主要从事 Java 编程 我目前正在思考Python中的类是如何实例化的 我明白那个 init 就像Java中的构造函数 然而 有时 python 类没有 init 方法 在这种情况下我假设有一个默认构造函数 就像
  • Python:元类属性有时会覆盖类属性?

    下面代码的结果让我感到困惑 class MyClass type property def a self return 1 class MyObject object metaclass MyClass a 2 print MyObject

随机推荐

  • 我必须在哪里声明静态变量?

    即我想将其引入我的代码中 static BOOL MyConstantBool YES 必须在 implementation之前还是之后 有规则把它放在哪里吗 它也可以进入头文件吗 如果要定义全局变量 将其放在何处 implementati
  • R.java是手动修改的!恢复到生成的版本

    我有紧急实时追踪器示例 apk 文件 所以我通过 eclipse 运行该应用程序 我收到错误 只需清理您的项目 然后重建它即可 这将自动生成一个新的 R 文件
  • Spring Boot OAuth 始终重定向到 HTTP (IBM Cloud CF + Spring Boot 2)

    在 IBM Cloud CF Java Buildpack 上使用 Spring Boot OAuth 2 https github com ericis oauth cf https issue 我已经尝试了以下的每种组合 With在此配
  • 如何解决 AZFD0005 Azure Function App 错误

    目前 Node Azure Function App 存在抛出错误的问题AZFD0005 节点应用程序在本地运行良好 Azure 的具体错误是 Microsoft Azure WebJobs Script ExternalStartupEx
  • 如何减少 numpy 数组的维数?

    我从一个mxnxp array A In 16 A Out 16 array 2 10000000e 01 3 70060693e 01 2 00000000e 01 2 15659121e 01 1 50000000e 01 1 3500
  • 如何从命令行将 EOF 发送到 Python sys.stdin? CTRL-D 不起作用

    我正在从 unix 上的命令行写入我的 Python 进程 我想发送 EOF 或以某种方式刷新标准输入缓冲区 以便 Python 可以读取我的输入 如果我按下 CTRL C 就会出现键盘错误 如果我按下 CTRL D 程序就会停止 如何刷新
  • 将 AngularJS 嵌套表单设置为已提交

    我有一个嵌套的 AngularJS 表单 如下所示
  • 如何在 Android 上将 UTC 日期转换为本地 GMT 时间

    我有这个日期字符串 2016 04 26T09 14 10 477Z这是在 UTC 时区 我想将其转换为用户本地时区 因此如果是 GMT 02 00 我想要一个值为2016 04 26T11 14 10 477Z 注意 9 更改为 11 到
  • 使用适用于 Android 的 Smack Api 发送和接收消息

    自过去四天以来 我一直在尝试使用自己的 XMPP 和 Smack OpenFire 发送和接收聊天消息 根据Smack的 readme txt 我设置了连接并登录了用户 连接和登录的代码是这样的 public static String T
  • Magento - 从优惠券代码获取规则

    我必须检索与优惠券代码关联的规则 以便在报价中显示该规则的折扣百分比 最简单的方法是直接根据报价金额进行计算 但我想直接检索规则 然后从中获取折扣百分比 这就是我尝试过的 rule Mage getModel salesrule coupo
  • 编写新 DialogPreference 类的简洁方法?

    我正在通过扩展在 Android 中编写一些自定义首选项对话框DialogPreference班级 但是 我有点担心所需的样板代码量 因为似乎有很多行为需要测试 例如 这个数字首选项对话框的示例相当典型 http svn jimblackl
  • Python 中一张图中的多个图

    我是 python 新手 正在尝试使用 matplotlib 在同一个图中绘制多条线 我的 Y 轴的值存储在字典中 我在以下代码中在 X 轴中制作相应的值 我的代码是这样的 for i in range len ID AxisY PlotP
  • 在webview中加载flv视频的问题

    我想要load网络视图中的 flv 视频 我已经得到了帮助这个链接 但问题是我无法在模拟器中查看视频 这是我的代码 package com FlvTester import java lang reflect InvocationTarge
  • 来自闪亮应用程序的写入权限

    这是对此的后续问题 write csv 许可闪亮服务器 R 我正在使用一个闪亮的应用程序来搜索和保存一些数据 我在获取文件夹权限时遇到问题 读完这篇文章后 https groups google com forum topic shiny
  • Hadoop MapReduce 读取文本文件

    我正在尝试编写一个 MapReduce 程序 它可以读取输入文件并将输出写入另一个文本文件 我计划为此使用 BufferedReader 类 但我真的不知道如何在 MapReduce 程序中使用它 我怎样才能为其编写代码片段 附 我对 Ha
  • Meteor.js:查找所有文档并以相反的自然顺序返回

    我正在尝试返回集合中的所有文档 以将其与模板中的 each 一起使用 我的代码如下所示 return Answers find sort natural 1 但文档按自然顺序返回 而不是反向 有谁知道为什么 我从 MongoDB 文档中获取
  • WinMerge:如何在比较中忽略特定单词?

    当我在 Windows 平台上使用 WinMerge 比较 2 个文件时 您知道如何忽略特定单词吗 我的意思是我想对 WinMerge 说 不要关心那串单词 房子 花园等 所以当比较这两行时 the house is at london t
  • 由于来自 localhost 的 CORS 问题,请求失败

    我在 SO 和不同的博客上看到了几十个问题 并用 答案 谈论这个问题 但都无济于事 我的本地计算机 Ubuntu 16 04 上有一个 React js 应用程序 在本地 我尝试通过运行来测试它npm start它会打开浏览器http 本地
  • 列出所有当前打开的文件句柄? [复制]

    这个问题在这里已经有答案了 可能的重复 检查Python中打开了哪些文件 Hello 是否可以获得所有当前打开的文件句柄的列表 我认为它们存储在环境中的某个位置 我对这个函数感兴趣 因为我想安全地处理出现致命错误时打开的任何文件 即关闭文件
  • 使用 Python 使用 IAM 角色连接到 Redshift

    我正在使用 sqlalchemy 和 psycopg2 将 python 连接到 redshift engine create engine postgresql user password hostname port database n