Estabelecer conexão com o Autonomous Database com Autenticação do IAM (Identity and Access Management)

Depois que o usuário ADMIN ativa o Oracle Cloud Infrastructure IAM no Autonomous Database, os usuários fazem log-in na instância do Autonomous Database usando suas credenciais do Oracle Cloud Infrastructure IAM ou acessam o banco de dados por meio de um token de banco de dados do Oracle Cloud Infrastructure IAM.

Depois de ativar o acesso do usuário do Oracle Cloud Infrastructure IAM, você também pode fazer log-in no Autonomous Database usando o nome de usuário e a senha da sua conta de banco de dados local (conta de usuário do banco de dados não global).

Você pode usar um cliente de banco de dados para acessar uma instância do Autonomous Database como um usuário do Oracle Cloud Infrastructure IAM. Para usar um cliente com credenciais de nome de usuário e senha do Oracle Cloud Infrastructure IAM e um verificador de senha, o cliente do banco de dados deve ser 12c ou mais recente.

Como alternativa, você pode usar um token de banco de dados do Oracle Cloud Infrastructure IAM para acessar uma instância do Autonomous Database. O uso de tokens do IAM requer o cliente 19c mais recente do Oracle Database (pelo menos 19.16). Alguns clientes anteriores fornecem um conjunto limitado de recursos para acesso por token.

Os exemplos a seguir mostram o verificador de senha com o SQL*Plus para acessar o banco de dados com um nome de usuário e uma senha do Oracle Cloud Infrastructure IAM e as etapas necessárias para usar o SQL*Plus com um token de banco de dados do Oracle Cloud Infrastructure IAM.

Observação

Se sua instância do Autonomous Database estiver no Modo Restrito, somente os usuários com o privilégio RESTRICTED SESSION, como ADMIN, poderão se conectar ao banco de dados.

Você pode usar um token de banco de dados do Oracle Cloud Infrastructure IAM para acessar uma instância do Autonomous Database com clientes suportados, incluindo o seguinte:

Sobre a Conexão com uma Instância do Autonomous Database Usando o IAM

Os usuários do serviço IAM podem se conectar com a instância do Autonomous Database usando um verificador de senha de banco de dados do IAM ou um token do IAM.

O uso do verificador de senha do banco de dados do IAM é semelhante ao processo de autenticação de senha do Oracle Database. No entanto, em vez de o verificador de senha (hash criptografado da senha) ser armazenado no banco de dados Oracle, ele é armazenado como parte do perfil de usuário do OCI (Oracle Cloud Infrastructure) IAM.

O segundo método de conexão, o uso de um token do serviço IAM para o banco de dados, é mais moderno. O uso do acesso baseado em token é melhor para recursos de Nuvem, como o Autonomous Database. O token se baseia na força que o ponto final do IAM pode impor. Isso pode ser autenticação multifator, que é mais forte do que o uso exclusivo de senhas. Outro benefício do uso de tokens é que o verificador de senha (que é considerado confidencial) nunca fica armazenado ou disponível na memória. Uma conexão TCPS (TLS) é necessária ao usar tokens para acesso ao banco de dados.

Observação

Você não pode configurar a criptografia de rede nativa ao transmitir um token do serviço IAM. Somente o TLS (Transport Layer Security) por si só é suportado, não é criptografia de rede nativa ou criptografia de rede nativa com TLS.

Conexões de Cliente que Usam um Verificador de Senha do Banco de Dados do IAM

Depois de configurar a autorização necessária para o usuário do IAM, esse usuário poderá fazer log-in usando o aplicativo cliente existente, como SQL*Plus ou SQLcl, sem configuração adicional.

O usuário do IAM informa o nome de usuário e a senha do banco de dados do IAM (não a senha da console do Oracle Cloud Infrastructure [OCI]) usando qualquer cliente de banco de dados suportado no momento. A única restrição é que a versão do cliente de banco de dados seja a do Oracle Database release 12.1.0.2 ou mais recente para usar as senhas do Oracle Database 12c. O cliente do banco de dados deve poder usar o verificador de senha 12C. O uso da criptografia do verificador 11G não é suportado com o IAM. Nenhuma configuração especial de cliente ou ferramenta é necessária para que o usuário do IAM se conecte à instância do OCI DBaaS.

Conexões de Cliente que Usam um Token Solicitado por um Aplicativo ou uma Ferramenta Cliente

Para acesso de token do IAM ao Autonomous Database, o aplicativo cliente ou a ferramenta solicita um token de banco de dados do IAM para o usuário do IAM.

O aplicativo cliente passará o token do banco de dados diretamente para o cliente do banco de dados por meio da API do cliente do banco de dados.

Se o aplicativo ou a ferramenta não tiverem sido atualizados para solicitar um token do IAM, o usuário do IAM poderá usar a CLI (interface de linha de comando) do Oracle Cloud Infrastructure (OCI) para solicitar e armazenar o token do banco de dados. Você pode solicitar um token de acesso (db-token) ao banco de dados usando as seguintes credenciais:

  • Tokens de segurança (com autenticação do IAM), tokens de delegação (no cloud shell do OCI) e API-keys, que são credenciais que representam o usuário do IAM para ativar a autenticação
  • Tokens de controlador de instâncias, que permitem que as instâncias sejam atores (ou entidades) autorizados a executar ações nos recursos de serviço após a autenticação
  • Token de controlador de recursos, que é uma credencial que permite que o aplicativo se autentique em outros serviços do Oracle Cloud Infrastructure
  • Usando um nome de usuário do IAM e uma senha de banco de dados do IAM (só pode ser solicitada pelo cliente do banco de dados).

Quando os usuários do IAM fazem log-in no cliente com um log-in de barra / e o parâmetro OCI_IAM é configurado (sqlnet.ora, tnsnames.ora ou como parte de uma string de conexão), o cliente do banco de dados recupera o token do banco de dados de um arquivo. Se o usuário do IAM enviar um nome de usuário e uma senha, a conexão usará o acesso do verificador de banco de dados do IAM descrito para conexões de cliente que usam verificadores de senha de banco de dados do IAM. As instruções deste guia mostram como usar a CLI do OCI como auxiliar para o token de banco de dados. Se o aplicativo ou a ferramenta tiverem sido atualizados para trabalhar com o IAM, siga as instruções do aplicativo ou da ferramenta. Alguns casos de uso comuns incluem: SQL Plus on-premises, SQLcl on-premises, SQL*Plus no Cloud Shell ou aplicativos que usam wallets SEP.

Configurando uma Conexão de Cliente para o SQL*Plus que Usa uma Senha do Banco de Dados do IAM

Você pode configurar o SQL*Plus para usar uma senha do banco de dados do IAM.

  • Como usuário do IAM, faça log-in na instância do Autonomous Database usando a seguinte sintaxe:
    CONNECT user_name@db_connect_string
    Enter password: password

    Nesta especificação, user_name é o nome de usuário do IAM. Há um limite de 128 bytes para a combinação domain_name/user_name.

    O exemplo a seguir mostra como o usuário do IAM peter_fitch pode fazer log-in em uma instância do Autonomous Database.

    sqlplus /nolog
    connect peter_fitch@db_connect_string
    Enter password: password

    Alguns caracteres especiais exigirão aspas duplas em torno de user_name e password. Por exemplo:

    "peter_fitch@example.com"@db_connect_string
    
    "IAM database password"

Configurando uma Conexão do Cliente para o SQL*Plus que Usa um Token do Serviço IAM

Você pode configurar uma conexão de cliente para o SQL*Plus que usa um token do serviço IAM.

  1. Certifique-se de ter uma conta de usuário do serviço IAM.
  2. Verifique com um administrador do IAM e do Oracle Database se você tem uma política que permite acessar o banco de dados no compartimento ou na tenancy e se você está mapeado para um esquema global no banco de dados.
  3. Se seu aplicativo ou ferramenta não oferecer suporte à integração direta do serviço IAM, faça download, instale e configure a CLI do OCI. (Consulte Início Rápido da Interface de Linha de Comando do OCI.) Configure uma chave de API como parte da configuração da CLI do OCI e selecione valores padrão.
    1. Configure o acesso de chave da API para o usuário do serviço IAM.
    2. Recupere o db-token. Por exemplo:
      • Recuperando um db-token com uma API-key usando a interface da linha de comando do OCI (Oracle Cloud Infrastructure):
        oci iam db-token get
      • Recuperando um db-token com um token de segurança (ou sessão):
        oci iam db-token get --auth security_token

        Se o token de segurança tiver expirado, será exibida uma janela para que o usuário possa fazer log-in no OCI novamente. Isso gerará o token de segurança para o usuário. A CLI do OCI usará esse token atualizado para obter o db-token.

      • Recuperando um db-token com um token de delegação: Quando você faz log-in no cloud shell, o token de delegação é gerado automaticamente e colocado no diretório /etc. Para obter esse token, execute o seguinte comando no cloud shell:
        oci iam db-token get
      • Recuperando um token de instância usando a interface de linha de comando do OCI:
        oci iam db-token get --auth instance_principal
    3. O cliente do banco de dados também pode ser configurado para recuperar um token de banco de dados usando o nome de usuário do IAM e a senha do banco de dados do IAM.
    Consulte Chave e OCIDs Necessários para obter mais informações.
  4. Certifique-se de estar usando as atualizações de versão mais recentes para o cliente Oracle Database versões 19c, 21c ou 23ai.
    Essa configuração só funciona com o cliente 19c, 21c ou 23ai do Oracle Database.
  5. Siga o processo existente para fazer download da wallet do Autonomous Database e siga as instruções para configurá-la para uso com o SQL*Plus.
    1. Confirme se a correspondência de DN está ativada procurando SSL_SERVER_DN_MATCH=ON no arquivo sqlnet.ora.
      Observação

      A correspondência de DN parcial ou completo é necessária ao enviar um token do cliente de banco de dados para o Autonomous Database. Se o Autonomous Database estiver usando um ponto final privado, especifique um valor de host para o parâmetro de string de conexão. O uso de um endereço IP para o parâmetro de host na string de conexão não funcionará com correspondência de DN e o token do IAM não será enviado ao banco de dados.

      Consulte Exemplos de Configuração de Pontos Finais Privados no Autonomous Database para obter informações de configuração sobre como definir o parâmetro de host ao usar um ponto final privado.

    2. Configure o cliente de banco de dados para usar o token do serviço IAM adicionando TOKEN_AUTH=OCI_TOKEN ao arquivo sqlnet.ora. Como você usará os locais padrão para o arquivo de token do banco de dados, não será necessário incluir o local do token.
    Os valores TOKEN_AUTH e TOKEN_LOCATION nas strings de conexão tnsnames.ora têm precedência sobre as definições sqlnet.ora dessa conexão. Por exemplo, para a string de conexão, supondo que o token esteja no local padrão (~/.oci/db-token para Linux):
    (description= 
      (retry_count=20)(retry_delay=3)
      (address=(protocol=tcps)(port=1522)
      (host=example.us-phoenix-1.oraclecloud.com))
      (connect_data=(service_name=aaabbbccc_exampledb_high.example.oraclecloud.com))
      (security=(ssl_server_dn_match=yes)
      (TOKEN_AUTH=OCI_TOKEN)))
    
Depois que a string de conexão for atualizada com o parâmetro TOKEN_AUTH, o usuário do serviço IAM poderá fazer log-in na instância do Autonomous Database executando o comando a seguir para iniciar o SQL*Plus. Você pode incluir o próprio descritor de conexão ou usar o nome do descritor do arquivo tnsnames.ora.
connect /@exampledb_high

Ou:

connect /@(description= 
  (retry_count=20)(retry_delay=3)
  (address=(protocol=tcps)(port=1522)
  (host=example.us-phoenix-1.oraclecloud.com))
  (connect_data=(service_name=aaabbbccc_exampledb_high.example.oraclecloud.com))
  (security=(ssl_server_cert_dn="CN=example.uscom-east-1.oraclecloud.com, 
     O=Example Corporation, 
     L=Redwood City, ST=California, C=US")
  (TOKEN_AUTH=OCI_TOKEN)))

O cliente de banco de dados já está configurado para obter um db-token porque o parâmetro TOKEN_AUTH já foi definido, por meio do arquivo sqlnet.ora ou em uma string de conexão. O cliente de banco de dados obtém o db-token e o assina usando a chave privada e, em seguida, envia o token ao Autonomous Database. Se um nome de usuário do IAM e uma senha de banco de dados do IAM forem especificados, em vez de uma barra /, o cliente de banco de dados estabelecerá conexão usando a senha, em vez de usar db-token.

Usar o Controlador de Instâncias para Acessar o Autonomous Database com a Autenticação do IAM (Identity and Access Management)

Depois que o usuário ADMIN ativar o Oracle Cloud Infrastructure IAM no Autonomous Database, um aplicativo poderá acessar o banco de dados por meio de um token de banco de dados do Oracle Cloud Infrastructure IAM usando um controlador de instâncias.