Esta página aplica-se ao Apigee e ao Apigee Hybrid.
Veja a documentação do
Apigee Edge.
O Apigee integra-se com os VPC Service Controls, que lhe permitem isolar recursos dos seus projetos do Google Cloud. Isto ajuda a evitar fugas/exfiltração de dados.
Esta secção descreve como usar os VPC Service Controls com o Apigee.
Vista geral
O VPC Service Controls define um perímetro de serviço que funciona como um limite entre um projeto e outros serviços. Os perímetros de serviço são um método ao nível da organização para proteger os serviços do Google Cloud nos seus projetos, de modo a mitigar o risco de exfiltração de dados.
Os VPC Service Controls também podem garantir que os clientes dentro de um perímetro que têm acesso privado a recursos não têm acesso a recursos não autorizados fora do perímetro.
Para uma análise detalhada das vantagens dos perímetros de serviço, consulte a vista geral dos VPC Service Controls.
Quando usar os VPC Service Controls, tenha em atenção que:
- O projeto do Google Cloud e o respetivo tempo de execução associado estão incluídos no perímetro do VPC Service Controls desse projeto.
- A interação entre serviços dentro de um perímetro pode ser restrita através da funcionalidade Serviços acessíveis da rede VPC.
O Apigee e o Apigee Hybrid integram-se com o VPC Service Controls. Para ver uma lista completa dos produtos que se integram com o VPC Service Controls, consulte os produtos suportados.
Impacto na conetividade à Internet
Quando os VPC Service Controls estão ativados, o acesso à Internet é desativado: o tempo de execução do Apigee deixa de comunicar com qualquer destino público da Internet. Tem de encaminhar o tráfego para a sua VPC estabelecendo rotas personalizadas. Consulte o artigo Importar e exportar encaminhamentos personalizados.
Configurar o VPC Service Controls com o Apigee
O processo geral de configuração do VPC Service Controls com o Apigee é o seguinte:
- Ative os VPC Service Controls.
- Crie um novo perímetro de serviço.
- Configure o perímetro de serviço.
Estes passos são descritos mais detalhadamente abaixo.
Para configurar o VPC Service Controls com o Apigee:
-
Ative os VPC Service Controls para a ligação de peering da sua rede ao Apigee executando o seguinte comando:
gcloud services vpc-peerings enable-vpc-service-controls \ --network=SHARED_VPC_NETWORK --project=PROJECT_ID
Onde:
- SHARED_VPC_NETWORK é o nome da sua rede VPC partilhada.
- PROJECT_ID é o nome do projeto que aloja a rede VPC partilhada; não é o projeto usado para criar a organização Apigee.
Este comando ativa os VPC Service Controls para o seu projeto. Pode executar este comando várias vezes para ativar os VPC Service Controls para mais do que um projeto.
-
Crie um novo perímetro conforme descrito no guia de início rápido do VPC Service Controls. Quando cria um perímetro, escolhe os projetos a adicionar nesse perímetro, bem como os serviços a proteger.
Para o Apigee e o Apigee Hybrid, a Google recomenda que proteja todos os serviços quando cria um perímetro, incluindo a API Apigee.
Para mais informações, consulte o artigo Criar um perímetro de serviço.
- Configure o perímetro de serviço, conforme descrito nos detalhes do perímetro de serviço e na configuração.
Para adicionar um portal integrado no seu perímetro, consulte o artigo Adicionar um portal integrado ao perímetro.
Configurar o VPC Service Controls com o Apigee Hybrid
O Apigee hybrid suporta os VPC Service Controls, mas tem de realizar passos adicionais. O processo geral de integração do Apigee hybrid com o VPC Service Controls é o seguinte:
- Configure a conetividade privada.
- Proteja serviços adicionais dentro do perímetro.
- Configure um repositório privado. (Um repositório privado é um que está dentro do perímetro. Não tem necessariamente de ser um repositório local, desde que esteja dentro do perímetro.)
- Envie as imagens do Apigee para o seu repositório privado.
- Atualize as substituições para usar o repositório privado durante o processo de instalação e configuração híbrido.
Cada um destes passos é descrito mais detalhadamente no procedimento seguinte.
Para configurar o VPC Service Controls com o Apigee Hybrid:
- Configure endereços IP privados para os anfitriões da sua rede híbrida, conforme descrito no artigo Configurar a conetividade privada às APIs e aos serviços Google. Isto envolve a configuração de rotas, regras de firewall e entradas de DNS para permitir que as APIs Google acedam a esses IPs privados.
-
Siga os passos em Configurar o VPC Service Controls com o Apigee.
Durante este processo, tem de garantir a segurança dos seguintes serviços, além dos especificados para o Apigee, dentro do seu perímetro:
- Anthos Service Mesh
- Cloud Monitoring (Stackdriver)
- Google Kubernetes Engine (se estiver a ser executado no GKE)
- Google Container Registry (se o estiver a usar como repositório local)
Para adicionar estes serviços ao seu perímetro, siga as instruções em Detalhes do perímetro de serviço e configuração.
- Copie as imagens do Apigee para o seu repositório privado:
-
Transfira as imagens assinadas do Apigee a partir do Docker Hub, conforme descrito aqui. Certifique-se de que especifica os números da versão mais recentes.
Por exemplo:
docker pull google/apigee-installer:1.3.3 docker pull google/apigee-authn-authz:1.3.3 docker pull google/apigee-mart-server:1.3.3 docker pull google/apigee-synchronizer:1.3.3 docker pull google/apigee-runtime:1.3.3 docker pull google/apigee-hybrid-cassandra-client:1.3.3 docker pull google/apigee-hybrid-cassandra:1.3.3 docker pull google/apigee-cassandra-backup-utility:1.3.3 docker pull google/apigee-udca:1.3.3 docker pull google/apigee-stackdriver-logging-agent:1.6.8 docker pull google/apigee-prom-prometheus:v2.9.2 docker pull google/apigee-stackdriver-prometheus-sidecar:0.7.5 docker pull google/apigee-connect-agent:1.3.3 docker pull google/apigee-watcher:1.3.3 docker pull google/apigee-operators:1.3.3 docker pull google/apigee-kube-rbac-proxy:v0.4.1
-
Etiquete as imagens.
O exemplo seguinte etiqueta as imagens num repositório do GCR sediado nos EUA:
docker tag google/apigee-installer:1.3.3 us.gcr.io/project_ID/apigee-installer:1.3.3 docker tag google/apigee-authn-authz:1.3.3 us.gcr.io/project_ID/apigee-authn-authz:1.3.3 docker tag google/apigee-mart-server:1.3.3 us.gcr.io/project_ID/apigee-mart-server:1.3.3 docker tag google/apigee-synchronizer:1.3.3 us.gcr.io/project_ID/apigee-synchronizer:1.3.3 docker tag google/apigee-runtime:1.3.3 us.gcr.io/project_ID/apigee-runtime:1.3.3 docker tag google/apigee-hybrid-cassandra-client:1.3.3 us.gcr.io/project_ID/apigee-hybrid-cassandra-client:1.3.3 docker tag google/apigee-hybrid-cassandra:1.3.3 us.gcr.io/project_ID/apigee-hybrid-cassandra:1.3.3 docker tag google/apigee-cassandra-backup-utility:1.3.3 us.gcr.io/project_ID/apigee-cassandra-backup-utility:1.3.3 docker tag google/apigee-udca:1.3.3 us.gcr.io/project_ID/apigee-udca:1.3.3 docker tag google/apigee-stackdriver-logging-agent:1.6.8 us.gcr.io/project_ID/apigee-stackdriver-logging-agent:1.6.8 docker tag google/apigee-prom-prometheus:v2.9.2 us.gcr.io/project_ID/apigee-prom-prometheus:v2.9.2 docker tag google/apigee-stackdriver-prometheus-sidecar:0.7.5 us.gcr.io/project_ID/apigee-stackdriver-prometheus-sidecar:0.7.5 docker tag google/apigee-connect-agent:1.3.3 us.gcr.io/project_ID/apigee-connect-agent:1.3.3 docker tag google/apigee-watcher:1.3.3 us.gcr.io/project_ID/apigee-watcher:1.3.3 docker tag google/apigee-operators:1.3.3 us.gcr.io/project_ID/apigee-operators:1.3.3 docker tag google/apigee-kube-rbac-proxy:v0.4.1 us.gcr.io/project_ID/apigee-kube-rbac-proxy:v0.4.1
Embora não seja obrigatório, a Google recomenda que inclua o ID do projeto ou outro valor de identificação no caminho do repositório para cada imagem.
-
Envie as imagens para o seu repositório privado.
O exemplo seguinte envia as imagens para um repositório do GCR sediado nos EUA:
docker push us.gcr.io/project_ID/apigee-installer:1.3.3 docker push us.gcr.io/project_ID/apigee-authn-authz:1.3.3 docker push us.gcr.io/project_ID/apigee-mart-server:1.3.3 docker push us.gcr.io/project_ID/apigee-synchronizer:1.3.3 docker push us.gcr.io/project_ID/apigee-runtime:1.3.3 docker push us.gcr.io/project_ID/apigee-hybrid-cassandra-client:1.3.3 docker push us.gcr.io/project_ID/apigee-hybrid-cassandra:1.3.3 docker push us.gcr.io/project_ID/apigee-cassandra-backup-utility:1.3.3 docker push us.gcr.io/project_ID/apigee-cassandra-backup-utility:1.3.3 docker push us.gcr.io/project_ID/apigee-udca:1.3.3 docker push us.gcr.io/project_ID/apigee-stackdriver-logging-agent:1.6.8 docker push us.gcr.io/project_ID/apigee-prom-prometheus:v2.9.2 docker push us.gcr.io/project_ID/apigee-stackdriver-prometheus-sidecar:0.7.5 docker push us.gcr.io/project_ID/apigee-connect-agent1.3.3 docker push us.gcr.io/project_ID/apigee-watcher1.3.3 docker push us.gcr.io/project_ID/apigee-operators1.3.3 docker push us.gcr.io/project_ID/apigee-kube-rbac-proxy:v0.4.1
Embora não seja obrigatório, a Google recomenda que inclua o ID do projeto ou outro valor de identificação no caminho do repositório para cada imagem.
-
-
Atualize o ficheiro de substituições para direcionar os URLs das imagens para o seu repositório privado, conforme descrito em Especifique substituições de configuração
Tem de alterar os URLs das imagens dos seguintes componentes:
Nome do componente (no ficheiro de substituições) URL da imagem ao
your_private_repo/apigee-operators
authz
your_private_repo/apigee-authn-authz
cassandra
your_private_repo/apigee-hybrid-cassandra
auth: your_private_repo/apigee-hybrid-cassandra-client
backup: your_private_repo/apigee-cassandra-backup-utility
restore: your_private_repo/apigee-cassandra-backup-utilityconnectAgent
your_private_repo/apigee-connect-agent
installer
your_private_repo/apigee-installer
kubeRBACProxy
your_private_repo/apigee-kube-rbac-proxy
logger
your_private_repo/apigee-stackdriver-logging-agent
mart
your_private_repo/apigee-mart-server
metrics
your_private_repo/apigee-prom-prometheus
sdSidecar: your_private_repo/apigee-stackdriver-prometheus-sidecarruntime
your_private_repo/apigee-runtime
synchronizer
your_private_repo/apigee-synchronizer
udca
your_private_repo/apigee-udca
fluentd: your_private_repo/apigee-stackdriver-logging-agentwatcher
your_private_repo/apigee-watcher
- Aplique as alterações com as novas imagens no GCR, conforme descrito em Aplique a configuração ao cluster.
Conceder acesso dos portais integrados ao perímetro
O VPC-SC suporta a concessão de níveis de acesso do VPC-SC a portais integrados, mas este processo requer passos adicionais, conforme descrito nesta secção.
Se não conceder um nível de acesso a portais integrados, estes ficam indisponíveis para organizações do Apigee com o VPC-SC ativado.
Conceder um nível de acesso a portais:
- Não coloca portais integrados no perímetro.
- Permite o acesso a portais integrados a partir do exterior do perímetro.
- Permite a exposição de dados do Apigee protegidos pelo VPC-SC (como dados de aplicações) a utilizadores do portal fora do perímetro do VPC-SC.
Para mais informações, consulte o artigo Permitir o acesso a recursos protegidos a partir do exterior de um perímetro.
Pré-requisitos
Antes de conceder acesso ao perímetro a um portal integrado, tem de ativar a
Access Context Manager API
para o seu projeto, se ainda não estiver
ativada. Pode fazê-lo na Cloud Console ou através do comando gcloud services enable.
Para verificar se a API está ativada, examine o resultado do comando gcloud services list, conforme descrito no Passo 2: ative as APIs Apigee.
Além disso, tem de ter o endereço de email da conta de serviço do projeto no qual o portal é usado. Para o obter, precisa do ID e do número do projeto da GCP. Os passos seguintes descrevem como obter estes valores:
- Obtenha detalhes do projeto da GCP através do comando gcloud projects list, como mostra o exemplo seguinte:
gcloud projects list
Este comando devolve o ID do projeto (na coluna
PROJECT_ID
) e o número do projeto (na colunaPROJECT_NUMBER
) para cada projeto na sua organização da GCP. -
Identifique o endereço de email da conta de serviço do Apigee. Esta é a mesma conta que o instalador do Apigee criou quando aprovisionou a sua organização no Passo 3: crie uma organização.
Para obter este endereço de email, use o comando
iam service-accounts list
, que usa a seguinte sintaxe:gcloud iam service-accounts list --project GCP_PROJECT_ID
Por exemplo:
gcloud iam service-accounts list --project my-project DISPLAY NAME EMAIL DISABLED Apigee default service account service-
8675309
@gcp-sa-apigee.iam.gserviceaccount.com False Compute Engine default service account8675309
-compute@developer.gserviceaccount.com FalseA conta de serviço que quer é aquela cujo endereço de email corresponde ao seguinte formato:
service-GCP_PROJECT_NUMBER@gcp-sa-apigee.iam.gserviceaccount.com
Por exemplo:
service-
8675309
@gcp-sa-apigee.iam.gserviceaccount.com -
Obtenha o ID da política (ou do perímetro) através do comando
access-context-manager policies list
. Transmita o ID da organização para este comando, como mostra o exemplo seguinte:gcloud access-context-manager policies list --organization=organizations/GCP_ORG_ID
gcloud
responde com uma lista de políticas associadas à organização especificada; por exemplo:gcloud access-context-manager policies list --organization=organizations/
2244340
NAME ORGANIZATION TITLE ETAG04081981
2244340
Default policy
421924c5a97c0Icu8O ID da política do VPC-SC (também conhecido como ID do perímetro) é o ID do perímetro de serviço do VPC-SC que atua como um limite entre o seu projeto e outros serviços). É o valor na coluna
NAME
.
Passos para conceder acesso ao perímetro a portais integrados
Para conceder acesso ao perímetro a um portal integrado:
- Reúna o endereço de email da conta de serviço e o ID da política do VPC-SC, conforme descrito nos Pré-requisitos.
-
Crie um ficheiro de condições no seu computador de administrador que especifique o endereço da conta de serviço que vai conceder o acesso ao portal através do perímetro.
O ficheiro pode ter qualquer nome, mas tem de ter a extensão
*.yaml
. Por exemplo,my-portal-access-rules.yaml
. -
No ficheiro de condições, adicione uma secção
members
que especifique a conta de serviço do Apigee, como mostra o exemplo seguinte:- members: - serviceAccount:
service-
8675309
@gcp-sa-apigee.iam.gserviceaccount.comTenha em atenção que adicionar uma secção
members
é suficiente. Não precisa de adicionar uma secção de nível de acesso. Para mais informações sobre como criar um ficheiro de condições, consulte o artigo Limite o acesso por utilizador ou conta de serviço. - Crie um nível de acesso com o comando
access-context-manager levels create
; por exemplo:gcloud access-context-manager levels create ACCESS_LEVEL_ID \ --title ACCESS_LEVEL_TITLE \ --basic-level-spec PATH/TO/CONDITIONS_FILE.yaml \ --policy=POLICY_ID
Onde:
- ACCESS_LEVEL_ID é um identificador do novo nível de acesso que está a ser concedido; por exemplo,
my-portal-access-level
. - ACCESS_LEVEL_TITLE é um título para o nível de acesso. O título pode ser o que quiser, mas a Google recomenda que lhe atribua um valor significativo para que você e outros administradores saibam a que se aplica. Por exemplo, O meu nível de acesso ao portal.
- CONDITIONS_FILE é o caminho para o ficheiro YAML que criou no passo anterior.
- POLICY_ID é o ID da política ou do perímetro.
Por exemplo:
gcloud access-context-manager levels create
my-portal-access-level
\ --title My Portal Access Level \ --basic-level-spec ~/my-portal-access-rules.yaml
\ --policy=04081981
- ACCESS_LEVEL_ID é um identificador do novo nível de acesso que está a ser concedido; por exemplo,
- Atualize o perímetro com o novo nível de acesso através do comando
access-context-manager perimeters update
:gcloud access-context-manager perimeters update POLICY_ID \ --add-access-levels=ACCESS_LEVEL_ID \ --policy=POLICY_ID
Por exemplo:
gcloud access-context-manager perimeters update
04081981
\ --add-access-levels=my-portal-access-level
\ --policy=04081981
Resolução de problemas
Verifique o seguinte:
- Se a API Access Context Manager não estiver ativada para o seu projeto da GCP,
gcloud
pede-lhe que a ative quando tentar listar ou definir políticas. - Certifique-se de que usa o ID da organização do GCP e não o ID da organização do Apigee quando obtiver detalhes sobre a organização.
- Alguns comandos descritos nesta secção requerem autorizações elevadas. Por exemplo, para obter detalhes sobre as contas de serviço de um projeto, tem de ser proprietário desse projeto.
-
Para verificar se a conta de serviço existe, execute o comando
iam service-accounts describe
, como mostra o exemplo seguinte:gcloud iam service-accounts describe
service-
8675309
@gcp-sa-apigee.iam.gserviceaccount.comO
gcloud
responde com informações sobre a conta de serviço, incluindo o nome a apresentar e o ID do projeto ao qual pertence. Se a conta de serviço não existir, ogcloud
responde com um erroNOT_FOUND
.
Limitações
As integrações do Apigee com os VPC Service Controls têm as seguintes limitações:
- Os portais integrados requerem passos adicionais para a configuração.
- Tem de implementar portais do Drupal dentro do perímetro do serviço.