Neste documento, mostramos como configurar a autenticação para acessar Google Cloud quando o sistema SAP está hospedado em uma instância de VM do Compute Engine.
Ativar as APIs Google Cloud
No projeto Google Cloud , ative as APIs Google Cloud necessárias.
Para a replicação de CDC pelo Pub/Sub, ative as seguintes APIs:
- API Pub/Sub
- API BigQuery
- API IAM Service Account Credentials
Para a replicação de dados de streaming, ative as seguintes APIs:
- API BigQuery
- API IAM Service Account Credentials
Para informações sobre como ativar as APIs do Google Cloud , consulte Como ativar APIs.
Criar uma conta de serviço
BigQuery Connector para SAP precisa de uma conta de serviço do IAM para autenticação e autorização para acessar recursos do Google Cloud .
Essa conta de serviço precisa ser a principal no projeto Google Cloud que contém as APIs Google Cloud ativadas. Se você criar a conta de serviço no mesmo projeto que as APIs do Google Cloud , ela será adicionada como principal automaticamente ao projeto.
Se você criar a conta de serviço em um projeto diferente daquele que contém as APIs Google Cloud ativadas, será necessário adicionar a conta de serviço ao projeto das APIs Google Cloud ativadas em uma etapa extra.
Para criar uma conta de serviço, faça o seguinte:
No console Google Cloud , acesse a página Contas de serviço do IAM & Admin.
Se solicitado, selecione o projeto do Google Cloud .
Clique em Criar conta de serviço.
Especifique um nome para a conta de serviço e, opcionalmente, uma descrição.
Clique em Criar e continuar.
Se você estiver criando a conta de serviço no mesmo projeto que as APIs Google Cloud ativadas, no painel Conceder a essa conta de serviço acesso ao projeto, selecione os papéis conforme apropriado:
Para a replicação de CDC pelo Pub/Sub, selecione os seguintes papéis:
- Editor do Pub/Sub
- Editor de dados do BigQuery
- Usuário de jobs do BigQuery
Para replicação de dados de streaming, selecione as seguintes funções:
- Editor de dados do BigQuery
- Usuário de jobs do BigQuery
Se você estiver criando a conta de serviço em um projeto diferente daquele em que as APIs do Google Cloud estão ativadas, não conceda papéis a essa conta.
Clique em Continuar.
Conceda aos outros usuários acesso à conta de serviço, conforme adequado.
Clique em Concluído. A conta de serviço aparece na lista de contas de serviço do projeto.
Se você criou a conta de serviço em um projeto diferente daquele que contém as APIs Google Cloud ativadas, anote o nome da conta de serviço. Você especifica o nome ao adicionar a conta de serviço ao projeto de APIs Google Cloud ativadas. Para mais informações, consulte Adicione a conta de serviço ao projeto do BigQuery.
A conta de serviço agora está listada como principal na página Permissões do IAM do projeto Google Cloud em que a conta de serviço foi criada.
Adicionar a conta de serviço ao projeto de destino
Se você criou a conta de serviço para o BigQuery Connector para SAP em um projeto diferente do projeto que contém as APIs Google Cloud ativadas, será necessário adicionar a conta de serviço ao projeto de APIs Google Cloud ativadas.
Se você criou a conta de serviço no mesmo projeto que as APIs Google Cloud ativadas, pule esta etapa.
Para adicionar uma conta de serviço atual ao projeto do conjunto de dados do BigQuery, conclua as etapas a seguir:
No console Google Cloud , acesse a página IAM.
Confirme se o nome do projeto que contém as APIs Google Cloud ativadas é exibido próximo à parte de cima da página. Exemplo:
Permissões do projeto "
PROJECT_NAME
"Caso contrário, mude de projeto.
Na página IAM, clique em
Adicionar. A caixa de diálogo Adicionar principais à "PROJECT_NAME
" será aberta.Na caixa de diálogo Adicionar principais a "
PROJECT_NAME
", conclua as seguintes etapas:- No campo Novos principais, especifique o nome da conta de serviço.
- No campo Selecionar papel, especifique Editor de dados do BigQuery.
- Clique em ADICIONAR OUTRO PAPEL. O campo Selecionar papel é exibido novamente.
- No campo Selecionar papel, especifique Usuário de jobs do BigQuery.
- Para a replicação de CDC pelo Pub/Sub, repita a etapa anterior e especifique Editor do Pub/Sub.
- Clique em Salvar. A conta de serviço aparece na lista de principais do projeto na página IAM.
Configurar a segurança na VM do host
O conector do BigQuery para SAP requer que a VM do Compute Engine que hospeda o SAP LT Replication Server seja configurada com as seguintes opções de segurança:
- Os escopos de acesso da VM do host precisam ser definidos para permitir acesso total às APIs do Cloud.
- A conta de serviço da VM do host precisa incluir o papel do IAM de criador de token da conta de serviço.
Se essas opções não estiverem configuradas na VM host, você precisará configurá-las.
Verifique os escopos de acesso da API da VM do host
Verifique a configuração atual do escopo de acesso da VM do host do SAP LT Replication Server. Se a VM já tiver acesso total a todas as APIs do Cloud, não será necessário mudar os escopos de acesso.
Para verificar o escopo de acesso de uma VM do host, faça o seguinte:
Google Cloud console
No Google Cloud console, abra a página "Instâncias de VM":
Se necessário, selecione o projeto Google Cloud que contém o host do SAP LT Replication Server.
Na página "Instâncias de VM", clique no nome da VM do host. A página de detalhes da VM é aberta.
Em Gerenciamento de APIs e identidades na página de detalhes da VM do host, verifique a configuração atual dos escopos de acesso das APIs do Cloud:
- Se a configuração for Permitir acesso total a todas as APIs do Cloud, a configuração estará correta e não precisará ser alterada.
- Se a configuração não for Permitir acesso total a todas as APIs do Cloud, será necessário interromper a VM e alterar a configuração. Para ver mais instruções, consulte a próxima seção.
CLI da gcloud
Exiba os escopos de acesso atuais da VM do host:
gcloud compute instances describe VM_NAME --zone=VM_ZONE --format="yaml(serviceAccounts)"
Se os escopos de acesso não incluírem
https://www.googleapis.com/auth/cloud-platform
, você precisará mudar os escopos de acesso da VM do host. Por exemplo, se você criar uma instância de VM com uma conta de serviço padrão do Compute Engine, será necessário alterar os seguintes escopos de acesso padrão:serviceAccounts: - email: 600915385160-compute@developer.gserviceaccount.com scopes: - https://www.googleapis.com/auth/devstorage.read_only - https://www.googleapis.com/auth/logging.write - https://www.googleapis.com/auth/monitoring.write - https://www.googleapis.com/auth/servicecontrol - https://www.googleapis.com/auth/service.management.readonly - https://www.googleapis.com/auth/trace.append
Se o único escopo listado em
scopes
forhttps://www.googleapis.com/auth/cloud-platform
, como no exemplo a seguir, não será necessário mudar os escopos:serviceAccounts: - email: 600915385160-compute@developer.gserviceaccount.com scopes: - https://www.googleapis.com/auth/cloud-platform
Alterar os escopos de acesso da API à VM do host
Se a VM do host do SAP LT Replication Server não tiver acesso total às APIsGoogle Cloud , altere os escopos de acesso para permitir o acesso total a todas as APIs do Cloud.
Para mudar a configuração dos escopos de acesso da API do Cloud de uma VM host, faça o seguinte:
Google Cloud console
Se necessário, limite os papéis que são concedidos à conta de segurança da VM do host.
Encontre o nome da conta de segurança na página de detalhes da VM do host em Gerenciamento de APIs e identidades. É possível mudar os papéis concedidos a uma conta de serviço no console do Google Cloud na página do IAM em Principais.
Se necessário, interrompa todas as cargas de trabalho em execução na VM do host.
No Google Cloud console, abra a página "Instâncias de VM":
Na página da instância de VM, clique no nome da VM do host para abrir a página de detalhes.
Na parte superior da página de detalhes da VM do host, pare a VM do host clicando em
INTERROMPER.Depois que a VM for interrompida, clique em
EDITAR.Em Segurança e acesso > Escopos de acesso, selecione Permitir acesso total a todas as APIs do Cloud.
Clique em Salvar.
Na parte superior da página de detalhes da VM do host, inicie a VM do host clicando em
INICIAR/RETOMAR.Se necessário, reinicie todas as cargas de trabalho interrompidas na VM do host.
CLI da gcloud
Se necessário, ajuste os papéis do IAM concedidos à conta de serviço da VM para garantir que o acesso aos serviços do Google Cloud pela VM do host seja adequadamente restrito.
Para informações sobre como alterar os papéis que são concedidos a uma conta de serviço, consulte Como atualizar uma conta de serviço.
Se necessário, interrompa qualquer software SAP executado na VM do host.
Pare a VM:
gcloud compute instances stop VM_NAME --zone=VM_ZONE
Altere os escopos de acesso da VM:
gcloud compute instances set-service-account VM_NAME --scopes=cloud-platform --zone=VM_ZONE
Inicie a VM:
gcloud compute instances start VM_NAME --zone=VM_ZONE
Se necessário, inicie o software SAP executado na VM do host.
Ativar a VM do host para receber tokens de acesso
Você precisa criar uma conta de serviço dedicada para a VM host e conceder a ela permissão para receber os tokens de acesso que o BigQuery Connector para SAP exige para acessar Google Cloud.
Para ativar a VM do host para receber tokens de acesso, faça o seguinte:
No console Google Cloud , crie uma conta de serviço do IAM para a instância de VM do host.
Para mais informações sobre como criar uma conta de serviço, consulte Criar uma conta de serviço.
Conceda o papel
Service Account Token Creator
à conta de serviço. Para informações sobre como conceder um papel, consulte Conceder um único papel.Anexe a conta de serviço à instância de VM em que a carga de trabalho SAP está sendo executada.
Para informações sobre como anexar uma conta de serviço a uma instância de VM, consulte Criar uma VM e anexar a conta de serviço.
Agora, a VM do host tem permissão para criar tokens de acesso.
Criar um conjunto de dados do BigQuery
Para criar um conjunto de dados do BigQuery, sua conta de usuário precisa ter as permissões de IAM adequadas para o BigQuery. Para mais informações, consulte Permissões necessárias.
No console Google Cloud , acesse a página BigQuery:
Ao lado do ID do projeto, clique no ícone Ver ações,
e, em seguida, clique em Criar conjunto de dados.No campo ID do conjunto de dados, insira um nome exclusivo. Para mais informações, consulte Nomear conjuntos de dados.
Para mais informações sobre como criar conjuntos de dados do BigQuery, consulte Como criar conjuntos de dados.
Configurar certificados TLS/SSL e HTTPS
A comunicação entre o BigQuery Connector para SAP e os serviços do Google é protegida usando TLS/SSL e HTTPS.
Para se conectar aos serviços do Google, siga as recomendações do Google Trust Services. No mínimo, faça o download de todos os certificados de AC raiz do repositório do Google Trust Services.
Para garantir que você esteja usando os certificados de CA raiz confiáveis mais recentes, recomendamos atualizar o repositório de certificados raiz do sistema a cada seis meses. O Google anuncia certificados de CA raiz novos e removidos no Google Trust Services. Para receber notificações automáticas, inscreva-se no feed RSS do Google Trust Services.
Na GUI do SAP, use a transação
STRUST
para importar os certificados da CA raiz para a pasta PSESSL client SSL Client (Standard)
.Para mais informações da SAP, consulte a Ajuda da SAP: manter a lista de certificações do PSE.
No host do SAP LT Replication Server, confirme se as regras de firewall ou os proxies estão configurados para permitir o tráfego de saída da porta HTTPS para a API BigQuery.
Especificamente, o SAP LT Replication Server precisa ser capaz de acessar as seguintes APIs Google Cloud :
https://bigquery.googleapis.com
https://iamcredentials.googleapis.com
https://pubsub.googleapis.com
Se você quiser que o BigQuery Connector para SAP acesse as APIs do Google Cloud usando endpoints do Private Service Connect na rede VPC, será necessário configurar destinos de RFC e especificar os endpoints do Private Service Connect nesses destinos de RFC. Para mais informações, consulte Destinos de RFC.
Para mais informações da SAP sobre a configuração do TLS/SSL, consulte a Nota SAP 510007 – Considerações adicionais para configurar o TLS/SSL no Application Server ABAP.
Especificar as configurações de acesso em /GOOG/CLIENT_KEY
Use a transação SM30
para especificar as configurações de acesso a
Google Cloud. BigQuery Connector para SAP armazena as configurações
como um registro na tabela de configuração personalizada /GOOG/CLIENT_KEY
.
Para especificar as configurações de acesso, faça o seguinte:
Na GUI do SAP, insira o código da transação
SM30
.Selecione a tabela de configuração
/GOOG/CLIENT_KEY
.Insira valores para os seguintes campos da tabela:
Campo Tipo de dado Descrição Nome String Especifique um nome descritivo para a configuração
CLIENT_KEY
, comoBQC_CKEY
.Um nome de chave de cliente é um identificador exclusivo usado pelo BigQuery Connector para SAP para identificar as configurações de acesso ao Google Cloud.
Nome da conta de serviço String O nome da conta de serviço, em formato de endereço de e-mail, que foi criada para o BigQuery Connector para SAP na etapa Criar uma conta de serviço. Exemplo:
sap-example-svc-acct@example-project-123456.iam.gserviceaccount.com
.Escopo String O escopo de acesso. Especifique o escopo de acesso da API
https://www.googleapis.com/auth/cloud-platform
, conforme recomendado pelo Compute Engine. Este escopo de acesso corresponde à configuraçãoAllow full access to all Cloud APIs
na VM do host. Para mais informações, consulte Definir escopos de acesso na VM do host.ID do projeto String O ID do projeto que contém o conjunto de dados de destino do BigQuery. Nome do comando String Deixe esse campo em branco.
Classe de autorização String Especificar /GOOG/CL_GCP_AUTH_GOOGLE
Campo de autorização Não relevante Deixe esse campo em branco. Token de atualização em segundos Inteiro O tempo (em segundos) que um token de acesso expira e precisa ser atualizado. O valor padrão é
3500
. É possível substituir esse valor padrão definindo um valor para o parâmetroCMD_SECS_DEFLT
nas configurações avançadas.Especificar um valor de
1
a3599
substitui o prazo de validade padrão. Se você especificar0
, o BigQuery Connector para SAP usará o valor padrão.Armazenamento de tokens em cache Booleano A flag que determina se os tokens de acesso recuperados de Google Cloud são armazenados em cache. Recomendamos que você ative o armazenamento do token em cache após concluir a configuração do BigQuery Connector para SAP e testar a conexão com Google Cloud. Para mais informações sobre o armazenamento do token em cache, consulte Ativar o armazenamento do token em cache.
Configurar destinos de RFC
Para conectar o BigQuery Connector para SAP ao Google Cloud, recomendamos que você use destinos RFC.
Os destinos de RFC de exemplo GOOG_IAMCREDENTIALS
e GOOG_BIGQUERY
são importados como parte do transporte do BigQuery Connector para SAP.
É necessário criar novos destinos de RFC copiando os destinos de RFC de exemplo.
Para configurar os destinos de RFC, faça o seguinte:
Na GUI do SAP, insira o código da transação
SM59
.(Recomendado) Para criar novos destinos de RFC, copie as amostras de RFC de destino e anote os novos nomes de destino do RFC. Elas serão usadas em etapas posteriores.
O BigQuery Connector para SAP usa destinos RFC para se conectar às APIs Google Cloud .
Se você quiser testar a conectividade baseada no destino do RFC, pule esta etapa e use os destinos de RFC de amostra.
Para os destinos de RFC que você criou, faça o seguinte:
Acesse a guia Configurações técnicas e verifique se o campo Número do serviço está definido com o valor
443
. Essa é a porta usada pelo destino RFC para uma comunicação segura.Acesse a guia Logon único e segurança e verifique se o campo Certificado SSL está definido com a opção Cliente SSL DFAULT (padrão).
Também é possível definir configurações de proxy, ativar a compactação do HTTP e especificar endpoints do Private Service Connect.
Salve as alterações.
Para testar a conexão, clique em Teste de conexão.
É aceitável e esperado uma resposta que contenha
404 Not Found
, porque o endpoint especificado no destino RFC corresponde a um serviçoGoogle Cloud , e não a um recurso específico hospedado pelo serviço. Essa resposta indica que o serviço de destino Google Cloud está acessível e que nenhum recurso de destino foi encontrado.
Na GUI do SAP, insira o código da transação
SM30
.Na tabela
/GOOG/CLIENT_KEY
que você criou na seção anterior, anote o valor do campo Nome.Na tabela
/GOOG/SERVIC_MAP
, crie entradas com os seguintes valores de campo:Nome da chave do Google Cloud Nome do serviço do Google Destino do RFC CLIENT_KEY_TABLE_NAME
bigquery.googleapis.com
Especifique o nome do destino RFC que segmenta o BigQuery. Se você estiver usando o destino RFC de amostra para testes, especifique GOOG_BIGQUERY
.CLIENT_KEY_TABLE_NAME
pubsub.googleapis.com
Especifique o nome do destino RFC que segmenta o Pub/Sub. Se você estiver usando o destino RFC de amostra para testes, especifique GOOG_PUBSUB
.CLIENT_KEY_TABLE_NAME
iamcredentials.googleapis.com
Especifique o nome do destino RFC que segmenta o IAM. Se você estiver usando o destino RFC de amostra para testes, especifique GOOG_IAMCREDENTIALS
.Substitua
CLIENT_KEY_TABLE_NAME
pelo nome da chave do cliente que você anotou na etapa anterior.
Definir as configurações de proxy
Ao usar destinos RFC para se conectar ao Google Cloud, você pode encaminhar a comunicação do BigQuery Connector para SAP pelo servidor proxy que você estiver usando no ambiente SAP.
Se você não quiser usar um servidor proxy ou não tiver um no ambiente SAP, pule esta etapa.
Para definir as configurações do servidor proxy para o BigQuery Connector for SAP, siga estas etapas:
Na GUI do SAP, insira o código da transação
SM59
.Selecione o destino RFC que segmenta o IAM.
Acesse a guia Configurações técnicas e insira os valores dos campos na seção Opções de proxy HTTP.
Repita a etapa anterior para o destino do RFC que segmenta o BigQuery.
Ativar compactação HTTP
Ao usar destinos RFC para se conectar ao Google Cloud, é possível ativar a compactação HTTP.
Se não quiser ativar essa funcionalidade, pule esta etapa.
Para ativar a compactação HTTP, faça o seguinte:
Na GUI do SAP, insira o código da transação
SM59
.Selecione o destino RFC que segmenta o BigQuery.
Acesse a guia Opções especiais.
No campo Versão HTTP, selecione HTTP 1.1.
No campo Compactação, selecione um valor apropriado.
Para informações sobre as opções de compactação, consulte a Nota SAP 1037677: a compactação HTTP compacta apenas alguns documentos.
Especificar endpoints do Private Service Connect
Se você quiser que o BigQuery Connector para SAP use endpoints do Private Service Connect para permitir o consumo particular do BigQuery e do IAM, será necessário criar esses endpoints no projeto Google Cloud e especificá-los nos respectivos destinos RFC.
Se você quiser que o BigQuery Connector para SAP continue usando os endpoints de API públicos padrão para se conectar ao BigQuery e ao IAM, ignore esta etapa.
Para configurar o BigQuery Connector para SAP para usar os endpoints do Private Service Connect, faça o seguinte:
Na GUI do SAP, insira o código da transação
SM59
.Verifique se você criou novos destinos de RFC para o BigQuery e o IAM. Para instruções sobre como criar esses destinos de RFC, consulte Configurar destinos de RFC.
Selecione o destino do RFC que segmenta o BigQuery e faça o seguinte:
Acesse a guia Configurações técnicas.
No campo Host de destino, insira o nome do endpoint do Private Service Connect que você criou para acessar o BigQuery.
Acesse a guia Login e segurança.
No campo Número do serviço, verifique se o valor
443
está especificado.No campo Certificado SSL, verifique se a opção Cliente SSL DFAULT (padrão) está selecionada.
Selecione o destino RFC que segmenta o IAM e faça o seguinte:
Acesse a guia Configurações técnicas.
No campo Host de destino, insira o nome do endpoint do Private Service Connect que você criou para acessar o IAM.
Acesse a guia Login e segurança.
No campo Número do serviço, verifique se o valor
443
está especificado.No campo Certificado SSL, verifique se a opção Cliente SSL DFAULT (padrão) está selecionada.
Valide as portas HTTP e HTTPS no Internet Communication Manager (ICM)
Os metadados da VM são armazenados em um servidor de metadados, que só pode ser acessado por uma porta HTTP. Portanto, é preciso validar se uma porta HTTP e uma porta HTTPS foram criadas e estão ativas para acessar os metadados da VM.
- Na GUI do SAP, insira o código da transação
SMICM
. - Na barra de menus, clique em Goto > Services. Uma marca de seleção verde na coluna Actv indica que as portas HTTP e HTTPS estão ativadas.
Para informações sobre como configurar as portas HTTP e HTTPS, consulte Configurações de HTTP(S) no ICM.
Testar a Google Cloud autenticação e autorização
Confirme se você configurou a autenticação Google Cloud corretamente solicitando um token de acesso e recuperando informações sobre o conjunto de dados do BigQuery.
Use o procedimento a seguir para testar a autenticação e autorização do Google Cloud na VM do host do SAP LT Replication Server:
Na VM do host do SAP LT Replication Server, abra um shell de linha de comando.
Mude para o usuário
sidadm
.Solicite o primeiro token de acesso do servidor de metadados da VM do host:
curl "http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/default/token" -H "Metadata-Flavor: Google"
O servidor de metadados retorna um token de acesso semelhante ao exemplo a seguir, em que ACCESS_TOKEN_STRING_1 é uma string de token de acesso copiada no comando na etapa a seguir:
{"access_token":"ACCESS_TOKEN_STRING_1", "expires_in":3599,"token_type":"Bearer"}
Solicite o segundo token de acesso da API IAM emitindo o seguinte comando depois de substituir os valores do marcador:
Linux
curl --request POST \ "https://iamcredentials.googleapis.com/v1/projects/-/serviceAccounts/SERVICE_ACCOUNT:generateAccessToken" \ --header "Authorization: Bearer ACCESS_TOKEN_STRING_1" \ --header "Accept: application/json" \ --header "Content-Type: application/json" \ --data "{"scope":["https://www.googleapis.com/auth/bigquery"],"lifetime":"300s"}" \ --compressed
Windows
curl --request POST ` "https://iamcredentials.googleapis.com/v1/projects/-/serviceAccounts/SERVICE_ACCOUNT:generateAccessToken" ` --header "Authorization: Bearer ACCESS_TOKEN_STRING_1" ` --header "Accept: application/json" ` --header "Content-Type: application/json" ` --data "{"scope":["https://www.googleapis.com/auth/bigquery"],"lifetime":"300s"}" ` --compressed
Substitua:
SERVICE_ACCOUNT
: a conta de serviço que você criou para o BigQuery Connector para SAP em uma etapa anterior.ACCESS_TOKEN_STRING_1
: a primeira string do token de acesso da etapa anterior.
A API IAM retorna um segundo token de acesso, ACCESS_TOKEN_STRING_2, que é semelhante ao exemplo a seguir. Na próxima etapa, copie essa segunda string de token em uma solicitação para a API BigQuery.
{"access_token":"ACCESS_TOKEN_STRING_2","expires_in":3599,"token_type":"Bearer"}
Para recuperar informações sobre o conjunto de dados do BigQuery emita o comando a seguir depois de substituir os valores do marcador:
Linux
curl "https://bigquery.googleapis.com/bigquery/v2/projects/PROJECT_ID/datasets/DATASET_NAME" \ -H "Accept: application/json" -H "Authorization: Bearer ACCESS_TOKEN_STRING_2"
Windows
curl "https://bigquery.googleapis.com/bigquery/v2/projects/PROJECT_ID/datasets/DATASET_NAME" ` -H "Accept: application/json" -H "Authorization: Bearer ACCESS_TOKEN_STRING_2"
Substitua:
PROJECT_ID
: o ID do projeto que contém o conjunto de dados do BigQuery.DATASET_NAME
: o nome do conjunto de dados de destino, conforme definido no BigQuery.ACCESS_TOKEN_STRING_2
: a string do token de acesso retornado pela API IAM na etapa anterior.
Se a autenticação do Google Cloud estiver configurada corretamente, as informações sobre o conjunto de dados serão retornadas.
Se ele não estiver configurado corretamente, consulte Solução de problemas do conector do BigQuery para SAP.