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 ao cluster de banco de dados usando a autenticação do IAM e o AWS SDK para Go - Amazon Aurora

Conectar-se ao cluster de banco de dados usando a autenticação do IAM e o AWS SDK para Go

Você pode se conectar a um cluster de banco de dados Aurora MySQL ou Aurora PostgreSQL com a AWS SDK para Go, conforme descrito a seguir.

Pré-requisitos

Veja a seguir os pré-requisitos para se conectar ao cluster de banco de dados usando a autenticação do IAM:

Exemplos

Para executar esses exemplos de código, você precisa do AWS SDK para Go, encontrado no site AWS.

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

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

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

  • dbHost: o endpoint do cluster de banco de dados que você deseja acessar

    nota

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

  • dbPort: o número da porta usada para se conectar ao cluster de banco de dados

  • region: a região da AWS na qual o cluster do banco de dados está em execução.

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

Importante

Os exemplos nesta seção usam o seguinte código para fornecer credenciais que acessam um banco de dados a partir de um ambiente local:

creds := credentials.NewEnvCredentials()

Se estiver acessando um banco de dados de um serviço da AWS, como o Amazon EC2 ou Amazon ECS, você poderá substituir o código pelo seguinte código:

sess := session.Must(session.NewSession())

creds := sess.Config.Credentials

Se você fizer essa alteração, certifique-se de adicionar a seguinte importação:

"github.com/aws/aws-sdk-go/aws/session"

Conectar-se usando a autenticação do IAM e o AWS SDK para Go V2

Conecte-se a um cluster de banco de dados usando a autenticação do IAM e o AWS SDK para Go V2.

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

Esse código se conecta a um cluster de banco de dados Aurora MySQL.

package main import ( "context" "database/sql" "fmt" "github.com/aws/aws-sdk-go-v2/config" "github.com/aws/aws-sdk-go-v2/feature/rds/auth" _ "github.com/go-sql-driver/mysql" ) func main() { var dbName string = "DatabaseName" var dbUser string = "DatabaseUser" var dbHost string = "mysqlcluster.cluster-123456789012.us-east-1.rds.amazonaws.com" var dbPort int = 3306 var dbEndpoint string = fmt.Sprintf("%s:%d", dbHost, dbPort) var region string = "us-east-1" cfg, err := config.LoadDefaultConfig(context.TODO()) if err != nil { panic("configuration error: " + err.Error()) } authenticationToken, err := auth.BuildAuthToken( context.TODO(), dbEndpoint, region, dbUser, cfg.Credentials) if err != nil { panic("failed to create authentication token: " + err.Error()) } dsn := fmt.Sprintf("%s:%s@tcp(%s)/%s?tls=true&allowCleartextPasswords=true", dbUser, authenticationToken, dbEndpoint, dbName, ) db, err := sql.Open("mysql", dsn) if err != nil { panic(err) } err = db.Ping() if err != nil { panic(err) } }

Esse código se conecta a um cluster de banco de dados Aurora PostgreSQL.

package main import ( "context" "database/sql" "fmt" "github.com/aws/aws-sdk-go-v2/config" "github.com/aws/aws-sdk-go-v2/feature/rds/auth" _ "github.com/lib/pq" ) func main() { var dbName string = "DatabaseName" var dbUser string = "DatabaseUser" var dbHost string = "postgresmycluster.cluster-123456789012.us-east-1.rds.amazonaws.com" var dbPort int = 5432 var dbEndpoint string = fmt.Sprintf("%s:%d", dbHost, dbPort) var region string = "us-east-1" cfg, err := config.LoadDefaultConfig(context.TODO()) if err != nil { panic("configuration error: " + err.Error()) } authenticationToken, err := auth.BuildAuthToken( context.TODO(), dbEndpoint, region, dbUser, cfg.Credentials) if err != nil { panic("failed to create authentication token: " + err.Error()) } dsn := fmt.Sprintf("host=%s port=%d user=%s password=%s dbname=%s", dbHost, dbPort, dbUser, authenticationToken, dbName, ) db, err := sql.Open("postgres", dsn) if err != nil { panic(err) } err = db.Ping() if err != nil { panic(err) } }

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

Conectar-se usando a autenticação do IAM e o AWS SDK para Go V1.

Conecte-se a uma instância de banco de dados usando a autenticação do IAM e o AWS SDK para Go V1

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

Esse código se conecta a um cluster de banco de dados Aurora MySQL.

package main import ( "database/sql" "fmt" "log" "github.com/aws/aws-sdk-go/aws/credentials" "github.com/aws/aws-sdk-go/service/rds/rdsutils" _ "github.com/go-sql-driver/mysql" ) func main() { dbName := "app" dbUser := "jane_doe" dbHost := "mysqlcluster.cluster-123456789012.us-east-1.rds.amazonaws.com" dbPort := 3306 dbEndpoint := fmt.Sprintf("%s:%d", dbHost, dbPort) region := "us-east-1" creds := credentials.NewEnvCredentials() authToken, err := rdsutils.BuildAuthToken(dbEndpoint, region, dbUser, creds) if err != nil { panic(err) } dsn := fmt.Sprintf("%s:%s@tcp(%s)/%s?tls=true&allowCleartextPasswords=true", dbUser, authToken, dbEndpoint, dbName, ) db, err := sql.Open("mysql", dsn) if err != nil { panic(err) } err = db.Ping() if err != nil { panic(err) } }

Esse código se conecta a um cluster de banco de dados Aurora PostgreSQL.

package main import ( "database/sql" "fmt" "github.com/aws/aws-sdk-go/aws/credentials" "github.com/aws/aws-sdk-go/service/rds/rdsutils" _ "github.com/lib/pq" ) func main() { dbName := "app" dbUser := "jane_doe" dbHost := "postgresmycluster.cluster-123456789012.us-east-1.rds.amazonaws.com" dbPort := 5432 dbEndpoint := fmt.Sprintf("%s:%d", dbHost, dbPort) region := "us-east-1" creds := credentials.NewEnvCredentials() authToken, err := rdsutils.BuildAuthToken(dbEndpoint, region, dbUser, creds) if err != nil { panic(err) } dsn := fmt.Sprintf("host=%s port=%d user=%s password=%s dbname=%s", dbHost, dbPort, dbUser, authToken, dbName, ) db, err := sql.Open("postgres", dsn) if err != nil { panic(err) } err = db.Ping() if err != nil { panic(err) } }

Se você quiser se conectar a um cluster 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.