Selecione suas preferências de cookies

Usamos cookies essenciais e ferramentas semelhantes que são necessárias para fornecer nosso site e serviços. Usamos cookies de desempenho para coletar estatísticas anônimas, para que possamos entender como os clientes usam nosso site e fazer as devidas melhorias. Cookies essenciais não podem ser desativados, mas você pode clicar em “Personalizar” ou “Recusar” para recusar cookies de desempenho.

Se você concordar, a AWS e terceiros aprovados também usarão cookies para fornecer recursos úteis do site, lembrar suas preferências e exibir conteúdo relevante, incluindo publicidade relevante. Para aceitar ou recusar todos os cookies não essenciais, clique em “Aceitar” ou “Recusar”. Para fazer escolhas mais detalhadas, clique em “Personalizar”.

Conectar-se à instância de banco de dados usando a autenticação do IAM e o AWS SDK para Python (Boto3)

Modo de foco
Conectar-se à instância de banco de dados usando a autenticação do IAM e o AWS SDK para Python (Boto3) - Amazon Relational Database Service

Você pode se conectar a uma instância de banco de dados do RDS para MariaDB, RDS para MySQL ou RDS para PostgreSQL com a AWS SDK para Python (Boto3), conforme descrito a seguir.

Pré-requisitos

Veja a seguir os pré-requisitos para se conectar à instância de banco de dados usando a autenticação do IAM:

Além disso, verifique se as bibliotecas importadas no código de exemplo existem no sistema.

Exemplos

Os exemplos de código usam perfis para credenciais compartilhadas. Para obter informações sobre a especificação de credenciais, consulte Credenciais na documentação AWS SDK para Python (Boto3).

O exemplo de código a seguir mostra como gerar um token de autenticação e usá-lo para se conectar a uma instância de banco de dados.

Para executar esse exemplo de código, você precisa do AWS SDK para Python (Boto3), encontrado no site AWS.

Modifique os valores das seguintes variáveis, conforme necessário:

  • ENDPOINT: o endpoint da instância de banco de dados que você deseja acessar

  • PORT: o número da porta usada para se conectar à instância de banco de dados

  • USER: a conta de banco de dados que você deseja acessar

  • REGION: a região da AWS na qual a instância do banco de dados está em execução.

  • DBNAME: o banco de dados que você deseja acessar

  • SSLCERTIFICATE: o caminho completo para o certificado SSL do Amazon RDS

    Para ssl_ca, defina um certificado SSL. Para baixar um certificado SSL, consulte Usar SSL/TLS para criptografar uma conexão com uma instância ou um cluster de banco de dados.

nota

Não é possível usar um registro DNS personalizado do Route 53 em vez do endpoint do  da instância de banco de dados para gerar o token de autenticação.

Esse código se conecta a uma instância de banco de dados MariaDB ou MySQL.

Antes de executar esse código, instale o driver PyMySQL seguindo as instruções no Python Package Index.

import pymysql import sys import boto3 import os ENDPOINT="mysqldb.123456789012.us-east-1.rds.amazonaws.com" PORT="3306" USER="jane_doe" REGION="us-east-1" DBNAME="mydb" os.environ['LIBMYSQL_ENABLE_CLEARTEXT_PLUGIN'] = '1' #gets the credentials from .aws/credentials session = boto3.Session(profile_name='default') client = session.client('rds') token = client.generate_db_auth_token(DBHostname=ENDPOINT, Port=PORT, DBUsername=USER, Region=REGION) try: conn = pymysql.connect(auth_plugin_map={'mysql_clear_password':None},host=ENDPOINT, user=USER, password=token, port=PORT, database=DBNAME, ssl_ca='SSLCERTIFICATE', ssl_verify_identity=True) cur = conn.cursor() cur.execute("""SELECT now()""") query_results = cur.fetchall() print(query_results) except Exception as e: print("Database connection failed due to {}".format(e))

Esse código se conecta a uma instância de banco de dados PostgreSQL.

Antes de executar esse código, instale psycopg2, seguindo as instruções na documentação de Psycopg.

import psycopg2 import sys import boto3 import os ENDPOINT="postgresmydb.123456789012.us-east-1.rds.amazonaws.com" PORT="5432" USER="jane_doe" REGION="us-east-1" DBNAME="mydb" #gets the credentials from .aws/credentials session = boto3.Session(profile_name='RDSCreds') client = session.client('rds') token = client.generate_db_auth_token(DBHostname=ENDPOINT, Port=PORT, DBUsername=USER, Region=REGION) try: conn = psycopg2.connect(host=ENDPOINT, port=PORT, database=DBNAME, user=USER, password=token, sslrootcert="SSLCERTIFICATE") cur = conn.cursor() cur.execute("""SELECT now()""") query_results = cur.fetchall() print(query_results) except Exception as e: print("Database connection failed due to {}".format(e))

Se você quiser se conectar a uma instância de banco de dados por meio de um proxy, consulte Conectar-se a um proxy usando autenticação do IAM.

PrivacidadeTermos do sitePreferências de cookies
© 2025, Amazon Web Services, Inc. ou suas afiliadas. Todos os direitos reservados.