Usar um perfil de autenticação para se conectar ao Amazon Redshift
Se você tiver muitas conexões com o Amazon Redshift, poderá ser difícil gerenciar as configurações para todas elas. Muitas vezes, cada conexão JDBC ou ODBC usa opções de configuração específicas. Com um perfil de autenticação, você pode armazenar opções de conexão juntas. Dessa forma, seus usuários podem escolher um perfil para se conectar e evitar o gerenciamento de configurações para opções individuais. Os perfis podem ser aplicados a vários cenários e tipos de usuário.
Depois de criar um perfil de autenticação, os usuários podem adicionar o perfil pronto para uso a uma cadeia de conexão. Com isso, eles podem se conectar ao Amazon Redshift com as configurações corretas para cada função e caso de uso.
Para obter informações de API do Amazon Redshift, consulte CreateAuthenticationProfile.
Criar um perfil de autenticação
Com o AWS CLI, você cria um perfil de autenticação com o comando create-authentication-profile
. Isso pressupõe que você tenha um cluster do Amazon Redshift existente e um banco de dados existente. Suas credenciais devem ter permissão para se conectar ao banco de dados do Amazon Redshift e direitos para buscar o perfil de autenticação. Forneça as opções de configuração como uma string JSON ou referencie um arquivo que contenha sua string JSON.
create-authentication-profile --authentication-profile-name<value: String> --authentication-profile-content<value: String>
O exemplo a seguir cria um perfil chamado ExampleProfileName
. Aqui, você pode adicionar chaves e valores que definem o nome do cluster e outras configurações de opção, como uma string JSON.
create-authentication-profile --authentication-profile-name "ExampleProfileName" --authentication-profile-content "{\"AllowDBUserOverride\":\"1\",\"Client_ID\":\"ExampleClientID\",\"App_ID\":\"ExampleAppID\",\"AutoCreate\":false,\"enableFetchRingBuffer\":true,\"databaseMetadataCurrentDbOnly\":true}" }
Esse comando cria o perfil com as configurações JSON especificadas. Retorna-se o seguinte resultado, indicando que o perfil foi criado.
{"
AuthenticationProfileName
": "ExampleProfileName
",
"AuthenticationProfileContent"
: "{\"AllowDBUserOverride
\":\"1\",\"Client_ID
\":\"ExampleClientID
\",\"App_ID
\":\"ExampleAppID
\",\"AutoCreate
\":false,\"enableFetchRingBuffer
\":true,\"databaseMetadataCurrentDbOnly
\":true}"
}
Limitações e cotas para criar um perfil de autenticação
Cada cliente tem uma cota de dez (10) perfis de autenticação.
Podem ocorrer alguns erros com perfis de autenticação. Por exemplo, se você criar um novo perfil com um nome existente ou se exceder sua cota de perfil. Para obter mais informações, consulte CreateAuthenticationProfile.
Não é possível armazenar determinadas chaves e valores de opção para cadeias de conexão JDBC, ODBC e Python no repositório de perfis de autenticação:
AccessKeyID
access_key_id
SecretAccessKey
secret_access_key_id
PWD
Password
password
Não é possível armazenar a chave ou o valor AuthProfile
no repositório de perfis, para cadeias de conexão JDBC ou ODBC. Para conexões Python, não é possível armazenar auth_profile
.
Os perfis de autenticação são armazenados no Amazon DynamoDB e gerenciados pela AWS.
Trabalhar com perfis de autenticação
Depois de criar um perfil de autenticação, é possível incluir o nome do perfil como uma opção de conexão para o JDBC versão 2.0 AuthProfile
. Usar essa opção de conexão recupera as configurações armazenadas.
jdbc:redshift:iam://endpoint:port/database?AuthProfile=<Profile-Name>&AccessKeyID=<Caller-Access-Key>&SecretAccessKey=<Caller-Secret-Key>
Este é um exemplo de string URL do JDBC.
jdbc:redshift:iam://examplecluster:us-west-2/dev?AuthProfile="ExampleProfile"&AccessKeyID="AKIAIOSFODNN7EXAMPLE"&SecretAccessKey="wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY"
Especifique AccessKeyID
e SecretAccessKey
na URL do JDBC, juntamente com o nome do perfil de autenticação.
Também é possível separar as opções de configuração com delimitadores de ponto e vírgula, como no exemplo a seguir, que inclui opções para registro em log.
jdbc:redshift:iam://my_redshift_end_point:5439/dev?LogLevel=6;LogPath=/tmp;AuthProfile=my_profile;AccessKeyID="AKIAIOSFODNN7EXAMPLE";SecretAccessKey="wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY"
nota
Não acrescente informações confidenciais ao perfil de autenticação. Por exemplo, não armazene um valor AccessKeyID
ou SecretAccessKey
em um perfil de autenticação. O repositório de perfis de autenticação tem regras para proibir o armazenamento de chaves secretas. Você receberá um erro, caso tente armazenar uma chave e um valor associados a informações confidenciais.
Obter perfis de autenticação
Para listar perfis de autenticação existentes, chame o comando a seguir.
describe-authentication-profiles --authentication-profile-name <value: String>
O exemplo a seguir mostra dois perfis recuperados. Se você não especificar um nome de perfil, todos os perfis serão retornados.
{
"AuthenticationProfiles": [
{
"AuthenticationProfileName": "testProfile1",
"AuthenticationProfileContent": "{\"AllowDBUserOverride\":\"1\",\"Client_ID\":\"ExampleClientID\",\"App_ID\":\"ExampleAppID\",\"AutoCreate\":false,\"enableFetchRingBuffer\":true,\"databaseMetadataCurrentDbOnly\":true}"
},
{
"AuthenticationProfileName": "testProfile2",
"AuthenticationProfileContent": "{\"AllowDBUserOverride\":\"1\",\"Client_ID\":\"ExampleClientID\",\"App_ID\":\"ExampleAppID\",\"AutoCreate\":false,\"enableFetchRingBuffer\":true,\"databaseMetadataCurrentDbOnly\":true}"
}
]
}