Configurar o Controle de Acesso Baseado em Atribuição Automaticamente usando um Script

Configure o RBAC (Role-Based Access Control) para autenticação do IAM automaticamente usando um script no Oracle Cloud Infrastructure.

Você pode executar o script no Cloud Shell para gerar arquivos de Conexões do IAM rapidamente. Esse processo de automação reduz significativamente o tempo necessário para executar a configuração detalhada do RBAC. Depois que um usuário Administrador gera o arquivo Conexões, ele pode ser compartilhado na organização para permitir o acesso ao banco de dados em Suplementos de Planilha.

A seção a seguir descreve como:

  • Gerar arquivo Conexões usando script

  • Fazer download do arquivo Conexões

  • Permitir acesso para usuários de domínio

Pré-requisitos

Para usar o script para configuração RBAC, você deve ter:

  • Uma conta de Administrador no Oracle Cloud Infrastructure

  • Um domínio do IAM

  • Uma instância e um esquema do Autonomous AI Database

Gerar Arquivo de Conexões usando Script

Observação:

Embora o script execute as tarefas de configuração automaticamente, ele é um script interativo, que exige que as entradas do usuário continuem.

Faça log-in na console do Oracle Cloud Infrastructure, se ainda não tiver feito log-in, e faça o seguinte.

  1. No ícone de Ferramentas do Desenvolvedor ao lado da região, abra o Cloud Shell e execute o arquivo de script na janela de terminal.

    adb-create-cred.sh
  2. O script descobre se sua conta do Oracle Cloud tem uma chave de API e uma impressão digital existentes. Se não for encontrado, o script criará um par de chaves para você.

    You have an existing API Key and Fingerprint! Do you want to try to reuse them? (y/n): y

    Pressione y para reutilizar as teclas existentes. O script cria sua credencial nativa em arquivos SQL e JSON. Se quiser gerar um novo par de chaves de API, pressione n.

  3. O script oferece a geração de um Perfil do AI para seu banco de dados.

    Proceed to generate the AI Profile script? (y/n): n

    Neste exemplo, pressione n para continuar sem o Perfil do AI.

  4. Gere Conexões do IAM para Suplementos de Planilha.

    Proceed to generate the Spreadsheet add-ins IAM connection? (y/n): y

    Pressione y para continuar.

  5. Selecione o domínio com os usuários que você deseja permitir estabelecer conexão com a instância do banco de dados. Insira o número correspondente nos domínios disponíveis.

    Select a domain (1-3):
    O script cria o seguinte:
    • Um atributo personalizado do usuário denominado Suplementos de Planilha RBAC

    • Um aplicativo integrado de domínio chamado Suplementos de Planilha

    • Uma reivindicação personalizada JWT

    O script também gera um script PL/SQL, create_jwt_profile.sql, contendo informações de perfil JWT.

    Observação:

    Você pode reutilizar o atributo de usuário existente e a reivindicação personalizada ou criar novos usando o script. Se um aplicativo integrado já existir, você poderá criar um novo, mas qualquer conexão antiga usada pelo aplicativo se tornará inválida.

  6. Execute o script de credencial para o esquema necessário no seu Autonomous AI Database.

    Proceed to run the Credential Scripts on your Autonomous Database? (y/n): y

    Pressione y para continuar.

  7. Selecione o compartimento e o banco de dados no qual o esquema reside.

    Select the number pertaining to your Compartment:
    ...
    Select the number pertaining to your Autonomous Database:
  8. Você pode usar uma Wallet do Cloud existente ou criar uma nova, se necessário. Se o script descobrir uma Cloud Wallet existente, ele solicitará se você deseja reutilizá-la.

    You have an existing Wallet File for [DB_NAME]. Do you want to reuse it? (y/n):

    Se uma wallet não existir, você poderá configurar uma nova.

  9. Especifique as credenciais de log-in do esquema ao qual você deseja permitir a conexão do RBAC.

    Enter Autonomous Database username (ADMIN):
    Enter Autonomous Database password:
    O script executa o arquivo SQL que contém as informações do Perfil JWT criadas anteriormente e gera um arquivo de Conexões do serviço IAM no formato JSON em sua pasta home.
    Spreadsheet connection file: [$HOME/iam_connection_[DB_NAME]_[schema].json] created.

    Observação:

    Você pode copiar o nome do arquivo Conexões, excluindo a parte $HOME/, e usar o mesmo nome durante o download do arquivo. Se o script ainda estiver em execução, usar Ctrl + C para copiar pode interromper ou interromper o script com força.

  10. Por fim, o script solicita se você deseja repetir as etapas e criar o arquivo Conexões para outro banco de dados ou sair do script. Assim, você pode configurar o acesso do usuário do domínio para vários esquemas.

Faça Download do Arquivo Connections

  1. Na janela do Cloud Shell, clique no ícone de engrenagem para abrir o menu do Cloud Shell e clique em Download.

  2. Você pode colar o mesmo nome de arquivo copiado anteriormente ou especificar um novo nome para o arquivo Conexões no formato JSON.

  3. Clique em Fazer Download na janela de mensagens para fazer download do arquivo Conexões.

Você pode usar o arquivo Conexões em Suplementos de Planilha para estabelecer conexão com seu banco de dados e compartilhá-lo com outros usuários.

Permitir acesso para usuários de domínio

Faça log-in na console do Oracle Cloud Infrastructure, se ainda não tiver feito log-in, e faça o seguinte.

  1. Clique no menu de hambúrguer e vá para Identidade e Segurança e selecione Domínios.

  2. Em Nome, clique no domínio para o qual você criou o arquivo Conexões, por exemplo, Padrão.

  3. Vá para a guia Gerenciamento de Usuários e clique no nome de usuário cujo acesso você deseja permitir.

  4. Clique em Editar Usuário para modificar as informações do usuário.

  5. Role para baixo até a seção Outras informações. No campo Spreadsheet add-ins RBAC, digite SQL Developer.

  6. Clique em Salvar Alterações para adicionar a função ao usuário.

A partir do ORDS 26.2, as funções do ORDS são desativadas por padrão. Para usar uma função ORDS, você deve ativar a função. Por exemplo:

BEGIN
    ords.set_property(
      p_key   => 'security.jwt.profile.allowed.roles',
      p_value => 'SQL Developer'
    );
    COMMIT;
  END;
/

Para obter mais informações sobre atribuições de usuário do ORDS, consulte Sobre Atribuições de Usuário do Oracle REST Data Services.