在 AWS 文档中,MySQL 和 PostgreSQL (boto3) 调用提供的 SSL 证书颁发机构的"[full path]"组件是什么?



在AWS文档中;使用IAM身份验证和AWS SDK for Python(Boto3(连接到您的DB实例";,对CCD_ 1(示出(和CCD_

conn = psycopg2.connect(host=ENDPOINT, port=PORT, database=DBNAME, user=USR, password=token, sslmode='prefer', sslrootcert="[full path]rds-combined-ca-bundle.pem")
cur = conn.cursor()
cur.execute("""SELECT now()""")
query_results = cur.fetchall()
print(query_results)

我看到了一些关于ssl_ca路径(这里和这里(以及这些捆绑包的用途的讨论。但我在这里给出的三个链接都没有描述AWS文档给出的[full path]组件,也没有描述它指向的位置。我目前的猜测(从第二个链接来看(是这个URL,但我想确定一下。

此外,将此捆绑包下载到运行Python3(boto3(脚本的远程EC2有什么好处?

EDIT:顺便说一句,上面对psycopg2.connect的调用目前正在Jupyter中使用EC2上的Python 3.9.5,[full path]按原样编写。。。

当您将pem文件下载到本地计算机(从您提供的最后一个URL(时,您应该将'[完整路径]'替换为保存pem文件的文件系统路径(目录路径(。

使用它的好处是,您的客户端将验证它是否连接到了正确的数据库,而不是拦截您流量的恶意系统。我不知道你认为这有多有利:如果有人破坏了亚马逊,拦截了他们的内部流量,他们也可能破坏了他们的CA。但至少有一种可能性,他们做了一个没有另一个。

您显示的代码对我不起作用,因为ssl_ca不是它的拼写方式。假设您使用了PostgreSQL第一个链接中实际给出的代码:

sslmode='prefer', sslrootcert="[full path]rds-combined-ca-bundle.pem"

那么,尽管有虚假的路径,它仍然有效的原因是";优选";意味着它不在乎rootcert是否丢失,在这种情况下它只是跳过验证。如果您将其更改为"验证已满",那么它可能会停止工作。

最新更新