Usar a Conta do Google Service para Acessar Recursos do Google Cloud Platform
Você pode usar uma conta de serviço do Google para acessar recursos do Google Cloud Platform (GCP) de uma instância do Autonomous AI Database.
Sobre como Usar uma Conta do Google Service para Acessar Recursos do Google Cloud
Quando você usa a autenticação baseada em conta de serviço do Google com o Autonomous AI Database, um aplicativo pode acessar com segurança os recursos do Google Cloud Platform (GCP) sem criar e salvar credenciais com base em chaves de acesso de longo prazo do IAM para os recursos do GCP.
Uma conta de serviço do Google é um tipo especial de conta GCP usada por um aplicativo. Você pode usar uma conta de serviço do Google para fazer chamadas de API REST GCP autorizadas de um aplicativo (depois que a conta de serviço receber permissões de acesso por meio da configuração da atribuição do IAM). Quando um aplicativo faz chamadas com autenticação baseada em conta de serviço do GCP, a chamada inicial gera um token de acesso temporário por meio do OAuth2.0. O token de acesso do OAuth2.0 é válido por uma hora. As solicitações subsequentes dentro de uma hora usam o token de acesso OAuth2.0 para fazer chamadas de API REST do GCP autorizadas.
Por exemplo, talvez você queira carregar dados do Google Cloud Storage no seu Autonomous AI Database, executar alguma operação nos dados e, em seguida, gravar os dados modificados de volta no Google Cloud Storage. Você pode fazer isso sem usar uma conta de serviço se tiver credenciais de usuário do GCP para acessar o Google Cloud Storage. No entanto, o uso de uma conta de serviço do Google baseada em atribuição para acessar recursos do GCP no Autonomous AI Database tem os seguintes benefícios:
-
Você pode criar acesso baseado em atribuição, com diferentes políticas para diferentes usuários ou esquemas que precisam de acesso aos recursos do GCP de uma instância do Autonomous AI Database. Isso permite que você defina uma política para limitar o acesso a recursos por atribuição. Por exemplo, definir uma política limitada ao acesso somente leitura, por função, a um bucket do Google Cloud Storage.
-
As credenciais baseadas na conta de serviço do Google oferecem melhor segurança, pois você não precisa fornecer credenciais de usuário de longo prazo no código quando seu aplicativo acessa os recursos do GCP. O Autonomous AI Database gerencia as credenciais temporárias da conta de serviço do Google e não precisa armazenar as credenciais do usuário do recurso do GCP no banco de dados.
Consulte Contas de serviço para obter informações sobre contas de serviço do Google.
Ativar Conta do Google Service e Localizar o Nome da Conta do GCP Service
Antes de usar um recurso do Google Cloud Platform (GCP) com uma conta de serviço do Google, você precisa ativar o acesso do GCP à sua instância do Autonomous AI Database.
-
Ative a autenticação da conta de serviço do Google com o
DBMS_CLOUD_ADMIN.ENABLE_PRINCIPAL_AUTH.Por exemplo, para ativar a autenticação da conta de serviço do Google para o usuário
ADMIN:BEGIN DBMS_CLOUD_ADMIN.ENABLE_PRINCIPAL_AUTH( provider => 'GCP' ); END; /Ative a autenticação da conta de serviço do Google para um usuário não
ADMIN,adb_userda seguinte forma:BEGIN DBMS_CLOUD_ADMIN.ENABLE_PRINCIPAL_AUTH( provider => 'GCP', username => 'adb_user'); END; /Se você quiser que o usuário especificado tenha privilégios para ativar a autenticação da conta de serviço do Google para outros usuários, defina o parâmetro
paramsgrant_optioncomoTRUE.BEGIN DBMS_CLOUD_ADMIN.ENABLE_PRINCIPAL_AUTH( provider => 'GCP', username => 'adb_user', params => JSON_OBJECT('grant_option' value TRUE)); END; /Depois de executar
DBMS_CLOUD_ADMIN.ENABLE_PRINCIPAL_AUTHcomgrant_optiondefinido comoTRUE, oadb_userpoderá ativar a autenticação da conta de serviço do Google para outro usuário. Por exemplo, se você se conectar comoadb_user, poderá executar o seguinte comando para ativar o acesso à conta de serviço do GCP paraadb_user2:BEGIN DBMS_CLOUD_ADMIN.ENABLE_PRINCIPAL_AUTH( provider => 'GCP', username => 'adb_user2'); END; / -
Quando o
DBMS_CLOUD_ADMIN.ENABLE_PRINCIPAL_AUTHé executado, ele cria uma conta do serviço Google. ConsulteCLOUD_INTEGRATIONSpara obter os detalhes da conta de serviço da sua instância do Autonomous AI Database.SELECT * FROM CLOUD_INTEGRATIONS WHERE param_name = 'gcp_service_account';PARAM_NAME PARAM_VALUE --------------------------------------------------------------------------- gcp_service_account GCP-SA-22222-32222@gcp-example.iam.gserviceaccount.com -
Observe o valor do parâmetro
gcp_service_account, pois você deve fornecer esse valor ao configurar recursos do GCP.
Consulte Procedimento ENABLE_PRINCIPAL_AUTH para obter mais informações.
Designar Atribuições à Conta do Google Service e Fornecer Acesso para Recursos do GCP
Para usar recursos do Google Cloud Platform (GCP) de uma instância do Autonomous AI Database, você ou um Administrador do Google Cloud deve atribuir funções e privilégios à conta de serviço do Google que seu aplicativo acessa. Além de atribuir funções para a conta de serviço do Google, para quaisquer recursos do GCP que você queira usar um administrador do Google Cloud, adicione os principais do Google IAM.
Como pré-requisito, primeiro ative a conta de serviço do Google na sua instância do Autonomous AI Database. Consulte Ativar Conta do Serviço Google e Localizar o Nome da Conta do Serviço GCP para obter mais informações.
-
Abra o Google Cloud Console da sua conta.
-
Crie funções com as permissões especificadas.
-
No menu de navegação, selecione IAM & Admin.
-
No navegador IAM e Admin, selecione Atribuições.
-
Na página Atribuições, clique em Mais Ações e selecione + CREATE ROLE.
Por exemplo, você pode criar uma atribuição Leitura e Gravação do Serviço Object Store para controlar o uso de um bucket do serviço Object Store.
-
-
Na página Criar função, clique em + ADICIONAR PERMISSÕES.
-
Selecione filtros para limitar a lista de permissões.
Por exemplo, informe o filtro Permissão: Storage.Objects para mostrar somente as permissões do serviço Object Store.
-
Na caixa de diálogo Adicionar permissões, clique em ADICIONAR.
-
-
Na página Criar Função, clique em CREATE.
-
Adicione funções e principais para o recurso que você deseja acessar.
Por exemplo, se você quiser acessar o Google Cloud Storage usando a atribuição recém-criada, Leitura/Gravação do Object Store:
-
No navegador, selecione Cloud Storage e Buckets.
-
Selecione o bloco que você deseja usar e clique em PERMISSÕES.
-
Clique em + ADICIONAR PRINCIPAL.
-
-
Na caixa de diálogo Conceder acesso ao "bucketname", adicione atribuições e controladores para o recurso selecionado.
-
Em Adicionar principais, adicione o valor do parâmetro
gcp_service_accountda sua instância do Autonomous AI Database. -
Na caixa de diálogo Conceder acesso ao "bucketname", digite as atribuições em Designar Atribuições e clique em SAVE.
-
Depois de concluir essas etapas, as atribuições e os principais serão designados. Isso permite que seu aplicativo em execução na instância do Autonomous AI Database acesse o recurso do GCP com uma conta de serviço do Google.
Usar a Conta do Google Service com DBMS_CLOUD
Quando você faz chamadas DBMS_CLOUD para acessar recursos do Google Cloud Platform (GCP) e especifica o nome da credencial como GCP$PA, a autenticação no lado do Google Cloud Platform acontece usando uma conta de serviço do Google.
Se ainda não tiver feito isso, execute as etapas de pré-requisito:
-
Ative o esquema ADMIN ou outro esquema para usar a autenticação da conta de serviço do Google. Consulte Ativar Conta do Serviço Google e Localizar o Nome da Conta do Serviço GCP para obter mais informações.
-
Execute as atribuições de função do Google Cloud Platform para os recursos que você deseja acessar. Consulte Atribuir Atribuições à Conta do Google Service e Fornecer Acesso para Recursos de GCP para obter mais informações.
Para usar um procedimento ou função DBMS_CLOUD com autenticação de conta de serviço do Google:
-
Use
GCP$PAcomo o nome da credencial. -
Construa o URI para acessar o recurso do GCP usando o estilo hospedado virtual:
https://BUCKET_NAME.storage.googleapis.com/OBJECT_NAMEPor exemplo, você pode acessar o Google Cloud Storage usando as credenciais da conta de serviço do Google da seguinte forma:
SELECT * FROM DBMS_CLOUD.LIST_OBJECTS('GCP$PA', 'https://treetypes.storage.googleapis.com/' );OBJECT_NAME BYTES CHECKSUM CREATED LAST_MODIFIED ----------- ----- -------------------------------- ------- ------------------------ trees.txt 58 682075a8c38f5686c32c25c6fb67dcbe 2022-10-05T20:03:55.253Z
Para obter mais informações, consulte:
-
Consulte Pontos finais de solicitação para obter mais informações sobre solicitações de estilo hospedado virtual do GCP.
-
Consulte Função LIST_OBJECTS.
Desativar Conta do Google Service
Para desativar o acesso da conta de serviço do Google aos recursos do Google Cloud Platform (GCP), use DBMS_CLOUD_ADMIN.DISABLE_PRINCIPAL_AUTH.
Quando o valor provider é GCP e o username é um usuário diferente do usuário ADMIN, o procedimento revoga os privilégios do usuário especificado. Nesse caso, o usuário ADMIN e outros usuários podem continuar usando o GCP$PA.
Por exemplo, para revogar privilégios para adb_user:
BEGIN
DBMS_CLOUD_ADMIN.DISABLE_PRINCIPAL_AUTH(
provider => 'GCP',
username => 'adb_user');
END;
/Quando o valor provider é GCP e o username é ADMIN, o procedimento desativa o acesso à conta de serviço do Google na instância do Autonomous AI Database. O valor padrão para username é ADMIN.
Por exemplo:
BEGIN
DBMS_CLOUD_ADMIN.DISABLE_PRINCIPAL_AUTH(
provider => 'GCP' );
END;
/Consulte Procedimento DISABLE_PRINCIPAL_AUTH para obter mais informações.
Observações da Conta do Google Service
Observações sobre o uso da conta de serviço do Google.
-
Restrição de caractere do Google Cloud Platform (GCP):
DBMS_CLOUDnão suporta um URI que contenha um "" para acessar um nome de bucket do Google Cloud Storage. Se o nome do bucket do Google Cloud Storage contiver um "", você poderá ver o seguinte erro:SELECT * FROM DBMS_CLOUD.LIST_OBJECTS('GCP$PA', 'https://app_bucket.storage.googleapis.com/');ORA-20006: Unsupported object store URI - https://app_bucket.storage.googleapis.com/ ORA-06512: at "C##CLOUD$SERVICE.DBMS_CLOUD", line 1306 -
Clonando uma instância do Autonomous AI Database com uma conta de serviço do Google: Quando você clona uma instância com uma conta de serviço do Google ativada, a configuração da conta de serviço do Google não é transferida para o clone. Execute as etapas para ativar a conta de serviço do Google no clone se quiser ativar a conta de serviço do Google em uma instância clonada.