Visão geral
Nesta etapa, explicamos como criar as contas de serviço do Google Cloud necessárias para a Apigee híbrida funcionar e como atribuir os papéis apropriados do IAM a elas.
Este procedimento usa as duas variáveis de ambiente a seguir definidas na Etapa 2: fazer o download dos gráficos do Apigee Helm. Essas variáveis são opcionais. Se você não as tiver definido, substitua o caminho do diretório apropriado para cada variável nos exemplos de código.
$APIGEE_HELM_CHARTS_HOME
: o diretório em que você fez o download dos gráficos do Apigee Helm, definido na Etapa 2: fazer o download dos gráficos do Apigee Helm.$PROJECT_ID
: o ID do projeto do Google Cloud, definido na Parte 1: configuração do projeto e da organização - Etapa 1: ativar APIs.
Ambientes de produção e não produção
Este guia se refere às instalações de produção e de não produção. Uma instalação de produção é ajustada para aumentar a capacidade de uso, o armazenamento e a escalonabilidade. Uma instalação de não produção usa menos recursos e é principalmente para fins de aprendizado e demonstração.
Ao criar e configurar contas de serviço para a Apigee híbrida, é importante estar ciente do tipo de instalação que você está segmentando.
Para instalações de produção, recomendamos criar uma conta de serviço separada para cada componente da Apigee híbrida. Por exemplo, ambiente de execução, mart, métricas, mint, udca e assim por diante. Cada componente tem uma conta de serviço dedicada.
Para instalações sem produção, crie uma única conta de serviço que se aplique a todos os componentes.
Para saber mais sobre as contas de serviço usadas pela Apigee e os papéis atribuídos a elas, consulte Contas de serviço e papéis usados por componentes híbridos.
Como autenticar contas de serviço
A Apigee híbrida oferece suporte aos seguintes métodos de autenticação de contas de serviço do Google:
- Secrets do Kubernetes
- Arquivos de chave JSON da conta de serviço ("Arquivos JSON" nas guias de seleção na seção a seguir).
- Vault
- Federação de identidade da carga de trabalho para GKE ("WIF para GKE" nas guias de seleção na seção a seguir).
- Federação de identidade da carga de trabalho em outras plataformas ("WIF em outras plataformas" nas guias de seleção na seção a seguir).
Na seção a seguir, escolha o procedimento para o tipo de autenticação que você planeja usar.
Criar contas de serviço
A Apigee híbrida usa as seguintes contas de serviço:
Produção
Conta de serviço | Papéis do IAM | Gráfico do Apigee Helm |
---|---|---|
apigee-cassandra |
Administrador de objetos do Storage | apigee-datastore |
apigee-logger |
Gravador de registros | apigee-telemetry |
apigee-mart |
Agente do Apigee Connect | apigee-org |
apigee-metrics |
Gravador da métrica de monitoramento | apigee-telemetry |
apigee-mint-task-scheduler (obrigatório apenas se você estiver usando a Monetização para a Apigee híbrida) |
Nenhum papel necessário | apigee-org |
apigee-runtime |
Nenhum papel necessário | apigee-env |
apigee-synchronizer |
Gerenciador de sincronização da Apigee Administrador de objetos do Storage |
apigee-env |
apigee-udca |
Agente de análise da Apigee | apigee-org apigee-env |
apigee-watcher |
Agente do ambiente de execução da Apigee | apigee-org |
Sem produção
Conta de serviço | Papéis do IAM | Gráfico do Apigee Helm |
---|---|---|
apigee-non-prod |
Administrador de objetos do Storage Gravador de registros Agente de conexão da Apigee Gravador de métrica de monitoramento Gerenciador sincronizador da Apigee Agente de Analytics da Apigee Agente do ambiente de execução da Apigee |
apigee-datastore apigee-telemetry apigee-org apigee-env |
A ferramenta create-service-account
A Apigee fornece uma ferramenta,
create-service-account
, no
diretório apigee-operator/etc/tools
:
$APIGEE_HELM_CHARTS_HOME/ └── apigee-operator/ └── etc/ └── tools/ └── create-service-account
Essa ferramenta cria as contas de serviço, atribui os papéis do IAM a cada uma delas e faz o download dos arquivos de certificado no formato JSON para cada uma delas.
Verifique se é possível executar create-service-account
. Se você acabou de fazer o download dos gráficos,
o arquivo create-service-account
pode não estar em um modo executável. No
diretório APIGEE_HELM_CHARTS_HOME, execute o seguinte comando:
$APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account --help
Se a saída informar permission denied
, será necessário tornar o arquivo executável, por
exemplo, com chmod
no Linux, MacOS ou UNIX ou no Windows Explorer ou com o
comando icacls
no Windows. Por exemplo:
chmod +x $APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account
Criar contas de serviço
Escolha o procedimento para o método de autenticação da conta de serviço que você planeja usar na instalação. Para mais informações, consulte Métodos de autenticação de contas de serviço na Apigee híbrida.
Secrets do Kubernetes
Para preparar os arquivos de chave da conta de serviço para armazenar em secrets do Kubernetes, use a
ferramenta create-service-account
para criar os arquivos de chave da conta de serviço com a flag --dir
e criar um diretório para eles.
Produção
- Verifique se a variável de ambiente
PROJECT_ID
está definida.echo $PROJECT_ID
O
create-service-account tool uses the value of the
. Se não estiver, defina-a com o ID do projeto do Google Cloud ou adicione a flagPROJECT_ID
environment variable--project-id PROJECT_ID
ao comandocreate-service-account
. -
Crie as contas de serviço com os comandos a seguir, em que
$APIGEE_HELM_CHARTS_HOME
é o caminho em que você fez o download dos gráficos do Apigee Helm. Talvez seja necessário criar cada conta de serviço. Responda comy
.$APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account \ --env prod \ --dir $APIGEE_HELM_CHARTS_HOME/service-accounts
- Para verificar se os arquivos da conta de serviço foram criados, confira o
conteúdo do diretório
service-accounts
. A resposta será parecida com esta:ls $APIGEE_HELM_CHARTS_HOME/service-accounts/
my-project-apigee-cassandra.json my-project-apigee-runtime.json my-project-apigee-logger.json my-project-apigee-synchronizer.json my-project-apigee-mart.json my-project-apigee-udca.json my-project-apigee-metrics.json my-project-apigee-watcher.json my-project-apigee-mint-task-scheduler.json
Sem produção
- Verifique se a variável de ambiente
PROJECT_ID
está definida.echo $PROJECT_ID
O
create-service-account tool uses the value of the
. Se não estiver, defina-a com o ID do projeto do Google Cloud ou adicione a flagPROJECT_ID
environment variable--project-id PROJECT_ID
ao comandocreate-service-account
. -
Crie as contas de serviço com o comando a seguir, em que
$APIGEE_HELM_CHARTS_HOME
é o caminho em que você fez o download dos gráficos do Apigee Helm. Talvez seja necessário criar a conta de serviço. Responda comy
.$APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account \ --env non-prod \ --dir $APIGEE_HELM_CHARTS_HOME/service-accounts
- Para verificar se o arquivo da conta de serviço foi criado, confira o
conteúdo do diretório
service-accounts
. A resposta será parecida com esta:ls $APIGEE_HELM_CHARTS_HOME/service-accounts/
my-project-apigee-non-prod.json
Arquivos JSON
Como o Helm não aceita referências a arquivos fora do diretório de gráficos, você criará cada arquivo de certificado da conta de serviço no diretório de gráfico para o componente híbrido correspondente.
Para as próximas etapas, escolha se você está configurando uma instalação de produção ou de não produção.
Produção
- Verifique se a variável de ambiente
PROJECT_ID
está definida.echo $PROJECT_ID
O
create-service-account tool uses the value of the
. Se não estiver, defina-a com o ID do projeto do Google Cloud ou adicione a flagPROJECT_ID
environment variable--project-id PROJECT_ID
aos comandoscreate-service-account
. -
Crie as contas de serviço com os comandos a seguir, em que
$APIGEE_HELM_CHARTS_HOME
é o caminho em que você fez o download dos gráficos do Apigee Helm. Talvez seja necessário criar cada conta de serviço. Responda comy
.$APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account \ --profile apigee-cassandra \ --env prod \ --dir $APIGEE_HELM_CHARTS_HOME/apigee-datastore
$APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account \ --profile apigee-logger \ --env prod \ --dir $APIGEE_HELM_CHARTS_HOME/apigee-telemetry
$APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account \ --profile apigee-mart \ --env prod \ --dir $APIGEE_HELM_CHARTS_HOME/apigee-org
$APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account \ --profile apigee-metrics \ --env prod \ --dir $APIGEE_HELM_CHARTS_HOME/apigee-telemetry
$APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account \ --profile apigee-runtime \ --env prod \ --dir $APIGEE_HELM_CHARTS_HOME/apigee-env
$APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account \ --profile apigee-synchronizer \ --env prod \ --dir $APIGEE_HELM_CHARTS_HOME/apigee-env
$APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account \ --profile apigee-udca \ --env prod \ --dir $APIGEE_HELM_CHARTS_HOME/apigee-env
$APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account \ --profile apigee-udca \ --env prod \ --dir $APIGEE_HELM_CHARTS_HOME/apigee-org
$APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account \ --profile apigee-watcher \ --env prod \ --dir $APIGEE_HELM_CHARTS_HOME/apigee-org
Se você estiver ativando a monetização para a Apigee híbrida (Apigee híbrida v1.15.1 e mais recentes):
$APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account \ --profile apigee-mint-task-scheduler \ --env prod \ --dir $APIGEE_HELM_CHARTS_HOME/apigee-org
- Copie o arquivo JSON
apigee-udca
para o diretório de gráficoapigee-env
. Ele é necessário para operações no escopo da organização e do ambiente.cp $APIGEE_HELM_CHARTS_HOME/apigee-org/$PROJECT_ID-apigee-udca.json $APIGEE_HELM_CHARTS_HOME/apigee-env/
- Para verificar se os arquivos da conta de serviço foram criados nos diretórios corretos, confira o
conteúdo do diretório de cada gráfico. A resposta será parecida com esta:
ls ./apigee-datastore
Chart.yaml my-project-apigee-cassandra.json templates values.yamlls ./apigee-telemetry
Chart.yaml my-project-apigee-metrics.json values.yaml my-project-apigee-logger.json templatesls ./apigee-org
Chart.yaml my-project-apigee-udca.json my-project-apigee-mart.json my-project-apigee-watcher.json my-project-apigee-mint-task-scheduler.json values.yamlls ./apigee-env
Chart.yaml my-project-apigee-synchronizer.json templates my-project-apigee-runtime.json my-project-apigee-udca.json values.yaml
Sem produção
- Verifique se a variável de ambiente
PROJECT_ID
está definida.echo $PROJECT_ID
O
create-service-account tool uses the value of the
. Se não estiver, defina-a com o ID do projeto do Google Cloud ou adicione a flagPROJECT_ID
environment variable--project-id PROJECT_ID
aos comandoscreate-service-account
. -
Crie a conta de serviço com o comando a seguir, em que
$APIGEE_HELM_CHARTS_HOME
é o caminho em que você fez o download dos gráficos do Apigee Helm. Talvez seja necessário criar cada conta de serviço. Responda comy
.$APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account \ --env non-prod \ --dir $APIGEE_HELM_CHARTS_HOME/apigee-datastore
- Verifique o nome do arquivo da conta de serviço criado no diretório
apigee-datastore
:ls $APIGEE_HELM_CHARTS_HOME/apigee-datastore
Chart.yaml PROJECT_ID-apigee-non-prod.json templates values.yaml
- Copie o arquivo da conta de serviço para os outros diretórios de gráficos que precisarão referenciá-lo:
cp $APIGEE_HELM_CHARTS_HOME/apigee-datastore/SA_FILE_NAME $APIGEE_HELM_CHARTS_HOME/apigee-telemetry/
cp $APIGEE_HELM_CHARTS_HOME/apigee-datastore/SA_FILE_NAME $APIGEE_HELM_CHARTS_HOME/apigee-org/
cp $APIGEE_HELM_CHARTS_HOME/apigee-datastore/SA_FILE_NAME $APIGEE_HELM_CHARTS_HOME/apigee-env/
Vault
Para preparar os arquivos de chave da conta de serviço para armazenar no Vault, use a ferramenta
create-service-account
para criar os arquivos de chave da conta de serviço
com a flag --dir
e criar um diretório para os arquivos de chave.
Produção
- Verifique se a variável de ambiente
PROJECT_ID
está definida.echo $PROJECT_ID
O
create-service-account tool uses the value of the
. Se não estiver, defina-a com o ID do projeto do Google Cloud ou adicione a flagPROJECT_ID
environment variable--project-id PROJECT_ID
ao comandocreate-service-account
. -
Crie as contas de serviço com os comandos a seguir, em que
$APIGEE_HELM_CHARTS_HOME
é o caminho em que você fez o download dos gráficos do Apigee Helm. Talvez seja necessário criar cada conta de serviço. Responda comy
.$APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account \ --env prod \ --dir $APIGEE_HELM_CHARTS_HOME/service-accounts
- Para verificar se os arquivos da conta de serviço foram criados, confira o
conteúdo do diretório
service-accounts
. A resposta será parecida com esta:ls $APIGEE_HELM_CHARTS_HOME/service-accounts/
my-project-apigee-cassandra.json my-project-apigee-runtime.json my-project-apigee-logger.json my-project-apigee-synchronizer.json my-project-apigee-mart.json my-project-apigee-udca.json my-project-apigee-metrics.json my-project-apigee-watcher.json my-project-apigee-mint-task-scheduler.json
Sem produção
- Verifique se a variável de ambiente
PROJECT_ID
está definida.echo $PROJECT_ID
O
create-service-account tool uses the value of the
. Se não estiver, defina-a com o ID do projeto do Google Cloud ou adicione a flagPROJECT_ID
environment variable--project-id PROJECT_ID
ao comandocreate-service-account
. -
Crie as contas de serviço com o comando a seguir, em que
$APIGEE_HELM_CHARTS_HOME
é o caminho em que você fez o download dos gráficos do Apigee Helm. Talvez seja necessário criar a conta de serviço. Responda comy
.$APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account \ --env non-prod \ --dir $APIGEE_HELM_CHARTS_HOME/service-accounts
- Para verificar se o arquivo da conta de serviço foi criado, confira o
conteúdo do diretório
service-accounts
. A resposta será parecida com esta:ls $APIGEE_HELM_CHARTS_HOME/service-accounts/
my-project-apigee-non-prod.json
WIF para GKE
Crie as contas de serviço para sua instalação com os seguintes comandos:
Produção
- Verifique se a variável de ambiente
PROJECT_ID
está definida.echo $PROJECT_ID
O
create-service-account tool uses the value of the
. Se não estiver, defina-a com o ID do projeto do Google Cloud ou adicione a flagPROJECT_ID
environment variable--project-id PROJECT_ID
ao comandocreate-service-account
. -
Crie as contas de serviço com os comandos a seguir, em que
$APIGEE_HELM_CHARTS_HOME
é o caminho em que você fez o download dos gráficos do Apigee Helm. Talvez seja necessário criar cada conta de serviço. Responda comy
.$APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account \ --env prod \ --dir $APIGEE_HELM_CHARTS_HOME/service-accounts
-
Verifique a criação das contas de serviço do Google com o seguinte comando:
gcloud iam service-accounts list --project $PROJECT_ID
A saída será parecida com esta:
DISPLAY NAME EMAIL DISABLED apigee-cassandra apigee-cassandra@my-project.iam.gserviceaccount.com False apigee-mart apigee-mart@my-project.iam.gserviceaccount.com False apigee-metrics apigee-metrics@my-project.iam.gserviceaccount.com False apigee-mint-task-scheduler apigee-mint-task-scheduler@my-project.iam.gserviceaccount.com False apigee-runtime apigee-runtime@my-project.iam.gserviceaccount.com False apigee-synchronizer apigee-synchronizer@my-project.iam.gserviceaccount.com False apigee-udca apigee-udca@my-project.iam.gserviceaccount.com False apigee-watcher apigee-watcher@my-project.iam.gserviceaccount.com False
Sem produção
- Verifique se a variável de ambiente
PROJECT_ID
está definida.echo $PROJECT_ID
O
create-service-account tool uses the value of the
. Se não estiver, defina-a com o ID do projeto do Google Cloud ou adicione a flagPROJECT_ID
environment variable--project-id PROJECT_ID
ao comandocreate-service-account
. -
Crie as contas de serviço com o comando a seguir, em que
$APIGEE_HELM_CHARTS_HOME
é o caminho em que você fez o download dos gráficos do Apigee Helm. Talvez seja necessário criar a conta de serviço. Responda comy
.$APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account \ --env non-prod \ --dir $APIGEE_HELM_CHARTS_HOME/service-accounts
-
Verifique a criação das contas de serviço do Google com o seguinte comando:
gcloud iam service-accounts list --project $PROJECT_ID
A saída será parecida com esta:
DISPLAY NAME EMAIL DISABLED apigee-non-prod apigee-non-prod@my-project.iam.gserviceaccount.com False
Opcional:não é necessário ter os arquivos de chave da conta de serviço para a Federação de Identidade da Carga de Trabalho para GKE. Você pode excluir o diretório service-accounts
depois de terminar.
WIF em outras plataformas
Crie as contas de serviço para sua instalação com os seguintes comandos:
Produção
- Verifique se a variável de ambiente
PROJECT_ID
está definida.echo $PROJECT_ID
O
create-service-account tool uses the value of the
. Se não estiver, defina-a com o ID do projeto do Google Cloud ou adicione a flagPROJECT_ID
environment variable--project-id PROJECT_ID
ao comandocreate-service-account
. -
Crie as contas de serviço com os comandos a seguir, em que
$APIGEE_HELM_CHARTS_HOME
é o caminho em que você fez o download dos gráficos do Apigee Helm. Talvez seja necessário criar cada conta de serviço. Responda comy
.$APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account \ --env prod \ --dir $APIGEE_HELM_CHARTS_HOME/service-accounts
-
Verifique a criação das contas de serviço do Google com o seguinte comando:
gcloud iam service-accounts list --project $PROJECT_ID
A saída será parecida com esta:
DISPLAY NAME EMAIL DISABLED apigee-cassandra apigee-cassandra@my-project.iam.gserviceaccount.com False apigee-mart apigee-mart@my-project.iam.gserviceaccount.com False apigee-metrics apigee-metrics@my-project.iam.gserviceaccount.com False apigee-mint-task-scheduler apigee-mint-task-scheduler@my-project.iam.gserviceaccount.com False apigee-runtime apigee-runtime@my-project.iam.gserviceaccount.com False apigee-synchronizer apigee-synchronizer@my-project.iam.gserviceaccount.com False apigee-udca apigee-udca@my-project.iam.gserviceaccount.com False apigee-watcher apigee-watcher@my-project.iam.gserviceaccount.com False
Sem produção
- Verifique se a variável de ambiente
PROJECT_ID
está definida.echo $PROJECT_ID
O
create-service-account tool uses the value of the
. Se não estiver, defina-a com o ID do projeto do Google Cloud ou adicione a flagPROJECT_ID
environment variable--project-id PROJECT_ID
ao comandocreate-service-account
. -
Crie as contas de serviço com o comando a seguir, em que
$APIGEE_HELM_CHARTS_HOME
é o caminho em que você fez o download dos gráficos do Apigee Helm. Talvez seja necessário criar a conta de serviço. Responda comy
.$APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account \ --env non-prod \ --dir $APIGEE_HELM_CHARTS_HOME/service-accounts
-
Verifique a criação das contas de serviço do Google com o seguinte comando:
gcloud iam service-accounts list --project $PROJECT_ID
A saída será parecida com esta:
DISPLAY NAME EMAIL DISABLED apigee-non-prod apigee-non-prod@my-project.iam.gserviceaccount.com False
Opcional:não é necessário ter os arquivos de chave da conta de serviço para a Federação de Identidade da Carga de Trabalho para GKE. Você pode excluir o diretório service-accounts
depois de terminar.
Para mais informações sobre contas de serviço e a ferramenta create-service-account
, consulte:
Agora você criou contas de serviço e atribuiu os papéis necessários aos componentes da Apigee híbrida. Em seguida, crie os certificados TLS exigidos pelo gateway de entrada híbrido.