Depois de instalar o componente apigee-mtls em cada nó do cluster, é necessário
configurá-lo e inicializá-lo. Para fazer isso, gere um par de certificado/chave e atualize o
arquivo de configuração na máquina de administração. Em seguida, implante
os mesmos arquivos gerados em todos os nós do cluster e inicialize o componente
apigee-mtls local.
Configurar apigee-mtls (após a instalação inicial)
Nesta seção, descrevemos como configurar o mTLS da Apigee para um único data center imediatamente após a instalação inicial. Para informações sobre como fazer atualizações em uma instalação existente da Apigee mTLS, consulte Alterar uma configuração atual da apigee-mtls. Para informações sobre como configurar vários data centers, consulte Configurar vários data centers para mTLS da Apigee.
Veja a seguir o processo geral para configurar o
apigee-mtls:
- Atualize o arquivo de configuração:na máquina de administração, atualize o arquivo de configuração para incluir as configurações de
apigee-mtls. - Instalar o Consul e gerar credenciais:instale o Consul e use-o para gerar as credenciais TLS (apenas uma vez).
Além disso, edite o arquivo de configuração da mTLS da Apigee para:
- Adicionar as informações de credenciais
- Definir a topologia do cluster
É possível usar suas credenciais atuais ou gerá-las com o Consul.
- Distribua o arquivo de configuração e as credenciais:distribua o mesmo par de chaves/certificado gerado e o arquivo de configuração atualizado para todos os nós no cluster.
- Inicializar apigee-mtls:inicialize o
componente
apigee-mtlsem cada nó.
Cada uma dessas etapas é descrita nas seções a seguir.
Etapa 1: atualizar o arquivo de configuração
Nesta seção, descrevemos como modificar o arquivo de configuração para incluir propriedades de configuração de mTLS. Para mais informações gerais sobre o arquivo de configuração, consulte Como criar um arquivo de configuração.
Depois de atualizar o arquivo de configuração com as propriedades relacionadas à mTLS, copie-o para todos os nós no cluster antes de inicializar o componente apigee-mtls nesses nós.
Os comandos que fazem referência ao arquivo de configuração usam "config_file" para indicar que o local é variável, dependendo de onde ele é armazenado em cada nó.
Para atualizar o arquivo de configuração:
- Na máquina de administração, abra o arquivo de configuração.
- Copie o seguinte conjunto de propriedades de configuração de mTLS e cole-as no arquivo de
configuração:
ALL_IP="ALL_PRIVATE_IPS_IN_CLUSTER" ZK_MTLS_HOSTS="ZOOKEEPER_PRIVATE_IPS" CASS_MTLS_HOSTS="CASSANDRA_PRIVATE_IPS" PG_MTLS_HOSTS="POSTGRES_PRIVATE_IPS" RT_MTLS_HOSTS="ROUTER_PRIVATE_IPS" MS_MTLS_HOSTS="MGMT_SERVER_PRIVATE_IPS" MP_MTLS_HOSTS="MESSAGE_PROCESSOR_PRIVATE_IPS" QP_MTLS_HOSTS="QPID_PRIVATE_IPS" LDAP_MTLS_HOSTS="OPENLDAP_PRIVATE_IPS" MTLS_ENCAPSULATE_LDAP="y" ENABLE_SIDECAR_PROXY="y" ENCRYPT_DATA="BASE64_GOSSIP_MESSAGE" PATH_TO_CA_CERT="PATH/TO/consul-agent-ca.pem" PATH_TO_CA_KEY="PATH/TO/consul-agent-ca-key.pem" APIGEE_MTLS_NUM_DAYS_CERT_VALID_FOR="NUMBER_OF_DAYS"
Defina o valor de cada propriedade para se alinhar à sua configuração.
A tabela a seguir descreve essas propriedades de configuração:
Propriedade Descrição ALL_IPUma lista separada por espaços dos endereços IP de host particular de todos os nós no cluster. A ordem dos endereços IP não importa, mas precisa ser a mesma em todos os arquivos de configuração do cluster.
Se você configurar a mTLS da Apigee para vários data centers, liste todos os endereços IP de todos os hosts em todas as regiões.
LDAP_MTLS_HOSTSO endereço IP do host particular do nó do OpenLDAP no cluster. ZK_MTLS_HOSTSUma lista separada por espaços de endereços IP de host particulares em que os nós do ZooKeeper estão hospedados no cluster.
Com base nos requisitos, é preciso haver pelo menos três nós do ZooKeeper.
CASS_MTLS_HOSTSUma lista separada por espaços de endereços IP de host privado em que os servidores do Cassandra estão hospedados no cluster. PG_MTLS_HOSTSUma lista separada por espaços de endereços IP de host particulares em que os servidores do Postgres estão hospedados no cluster. RT_MTLS_HOSTSUma lista separada por espaços de endereços IP de host particular em que os roteadores estão hospedados no cluster. MTLS_ENCAPSULATE_LDAPCriptografa o tráfego LDAP entre o processador de mensagens e o servidor LDAP. Defina como y.MS_MTLS_HOSTSUma lista separada por espaços de endereços IP de host particular em que os nós do servidor de gerenciamento estão hospedados no cluster. MP_MTLS_HOSTSUma lista separada por espaços de endereços IP de host particular em que os processadores de mensagens estão hospedados no cluster. QP_MTLS_HOSTSUma lista separada por espaços de endereços IP de host privado em que os servidores Qpid estão hospedados no cluster. ENABLE_SIDECAR_PROXYDetermina se o Cassandra e o Postgres precisam estar cientes da malha de serviço. Defina esse valor como "y".
ENCRYPT_DATAA chave de criptografia codificada em Base64 usada pelo Consul . Você gerou essa chave usando o comando consul keygenna Etapa 2: instalar o Consul e gerar credenciais.Esse valor precisa ser o mesmo em todos os nós do cluster.
PATH_TO_CA_CERTO local do arquivo de certificado no nó. Você gerou esse arquivo na Etapa 2: instalar o Consul e gerar credenciais. Esse local precisa ser o mesmo em todos os nós do cluster para que os arquivos de configuração sejam iguais.
O certificado precisa ser codificado em X509v3.
PATH_TO_CA_KEYO local do arquivo de chave no nó. Você gerou esse arquivo na Etapa 2: instalar o Consul e gerar credenciais. Esse local precisa ser o mesmo em todos os nós do cluster para que os arquivos de configuração sejam iguais.
O arquivo de chave precisa ser codificado em X509v3.
APIGEE_MTLS_NUM_DAYS_CERT_VALID_FORO número de dias em que um certificado é válido quando você gera um certificado personalizado.
O valor padrão é 365. O valor máximo é de 7.865 dias (5 anos).
Além das propriedades listadas acima, o mTLS da Apigee usa várias outras propriedades quando você o instala em uma configuração de vários data centers. Para mais informações, consulte Configurar vários data centers.
- Verifique se a propriedade
ENABLE_SIDECAR_PROXYestá definida como "y". - Atualize os endereços IP nas propriedades relacionadas ao host. Use os endereços IP particulares ao se referir a cada nó, não os endereços IP públicos.
Nas próximas etapas, você vai definir os valores das outras propriedades, como
ENCRYPT_DATA,PATH_TO_CA_CERTePATH_TO_CA_KEY. Não defina os valores deles ainda.Ao editar as propriedades de configuração de
apigee-mtls, observe o seguinte:- Todas as propriedades são strings. É necessário colocar os valores de todas as propriedades entre aspas simples ou duplas.
- Se um valor relacionado ao host tiver mais de um endereço IP privado, separe cada endereço IP com um espaço.
- Use endereços IP privados, e não nomes de host ou endereços IP públicos, para todas as propriedades relacionadas ao host no arquivo de configuração.
- A ordem dos endereços IP em um valor de propriedade precisa ser a mesma em todos os arquivos de configuração do cluster.
- Salve suas alterações no arquivo de configuração.
Etapa 2: instalar o Consul e gerar credenciais
Nesta seção, descrevemos como instalar o Consul e gerar credenciais.
Escolha um dos seguintes métodos para gerar credenciais:
- Crie sua própria CA usando o Consul, conforme descrito nesta seção (recomendado)
- Usar as credenciais de uma CA atual com o mTLS da Apigee (avançado)
Sobre as credenciais
As credenciais consistem no seguinte:
- Certificado:o certificado TLS hospedado em cada nó.
- Chave:a chave pública TLS hospedada em cada nó.
- Mensagem de fofoca:uma chave de criptografia codificada em base64.
Você gera uma única versão de cada um desses arquivos apenas uma vez. Copie os arquivos de chave e certificado para todos os nós do cluster e adicione a chave de criptografia ao arquivo de configuração, que também é copiado para todos os nós.
Para mais informações sobre a implementação de criptografia do Consul, consulte:
Instalar o Consul e gerar credenciais
Use um binário local do Consul para gerar credenciais que a mTLS da Apigee usa para autenticar comunicações seguras entre os nós no cluster da nuvem privada. Por isso, é necessário instalar o Consul na sua máquina de administração antes de gerar credenciais.
Para instalar o Consul e gerar credenciais de mTLS:
- Na máquina de administração, faça o download do binário do Consul 1.6.2 no site da HashiCorp.
- Extraia o conteúdo do arquivo baixado. Por exemplo, extraia o conteúdo para
/opt/consul/. - Na máquina de administração, crie uma nova autoridade certificadora (CA) executando o
seguinte comando:
/opt/consul/consul tls ca create
O Consul cria os seguintes arquivos, que são um par de chaves/certificado:
consul-agent-ca.pem(certificado)consul-agent-ca-key.pem(chave)
Por padrão, os arquivos de certificado e chave são codificados em X509v3.
Depois, você vai copiar esses arquivos para todos os nós do cluster. No entanto, no momento, você só precisa decidir onde nos nós você vai colocar esses arquivos. Eles precisam estar no mesmo local em cada nó. Por exemplo,
/opt/apigee/. - No arquivo de configuração, defina o valor de
PATH_TO_CA_CERTcomo o local em que você vai copiar o arquivoconsul-agent-ca.pemno nó. Exemplo:PATH_TO_CA_CERT="/opt/apigee/consul-agent-ca.pem"
- Defina o valor de
PATH_TO_CA_KEYcomo o local em que você vai copiar o arquivoconsul-agent-ca-key.pemno nó. Exemplo:PATH_TO_CA_KEY="/opt/apigee/consul-agent-ca-key.pem"
- Crie uma chave de criptografia para o Consul executando o seguinte comando:
/opt/consul/consul keygen
O Consul gera uma string aleatória semelhante a esta:
QbhgD+EXAMPLE+Y9u0742X/IqX3X429/x1cIQ+JsQvY=
- Copie a string e defina-a como o valor da propriedade
ENCRYPT_DATAno arquivo de configuração. Exemplo:ENCRYPT_DATA="
QbhgD+EXAMPLE+Y9u0742X/IqX3X429/x1cIQ+JsQvY=" - Salve o arquivo de configuração.
O exemplo a seguir mostra as configurações relacionadas ao mTLS em um arquivo de configuração (com valores de exemplo):
... IP1=10.126.0.121 IP2=10.126.0.124 IP3=10.126.0.125 IP4=10.126.0.127 IP5=10.126.0.130 ALL_IP="$IP1 $IP2 $IP3 $IP4 $IP5" LDAP_MTLS_HOSTS="$IP3" ZK_MTLS_HOSTS="$IP3 $IP4 $IP5" CASS_MTLS_HOSTS="$IP3 $IP4 $IP5" PG_MTLS_HOSTS="$IP2 $IP1" RT_MTLS_HOSTS="$IP4 $IP5" MS_MTLS_HOSTS="$IP3" MP_MTLS_HOSTS="$IP4 $IP5" QP_MTLS_HOSTS="$IP2 $IP1" ENABLE_SIDECAR_PROXY="y" ENCRYPT_DATA="QbhgD+EXAMPLE+Y9u0742X/IqX3X429/x1cIQ+JsQvY=" PATH_TO_CA_CERT="/opt/apigee/consul-agent-ca.pem" PATH_TO_CA_KEY="/opt/apigee/consul-agent-ca-key.pem" ...
Etapa 3: distribuir o arquivo de configuração e as credenciais
Copie os arquivos a seguir para os nós que executam o ZooKeeper usando uma ferramenta como
scp:
- Arquivo de configuração:copie a versão atualizada desse arquivo e substitua a versão atual em todos os nós (não apenas nos nós que executam o ZooKeeper).
- consul-agent-ca.pem::copie para o local especificado como o valor de
PATH_TO_CA_CERTno arquivo de configuração. - consul-agent-ca-key.pem::copie para o local especificado como o valor de
PATH_TO_CA_KEYno arquivo de configuração.
Verifique se os locais em que você copia os arquivos de certificado e chave correspondem aos valores definidos no arquivo de configuração na Etapa 2: instalar o Consul e gerar credenciais.
Etapa 4: inicializar apigee-mtls
Depois de atualizar o arquivo de configuração, copiá-lo e as credenciais para todos os nós no
cluster e instalar o apigee-mtls em cada nó, você estará pronto para inicializar o
componente apigee-mtls em cada nó.
Para inicializar apigee-mtls:
- Faça login em um nó no cluster como usuário raiz. É possível executar essas etapas nos nós em qualquer ordem.
- Torne o usuário
apigee:apigeeproprietário do arquivo de configuração atualizado, conforme mostrado no exemplo a seguir:chown apigee:apigee config_file
- Configure o componente
apigee-mtlsexecutando o seguinte comando:/opt/apigee/apigee-service/bin/apigee-service apigee-mtls setup -f config_file
- (Opcional) Execute o seguinte comando para verificar se a configuração foi bem-sucedida:
/opt/apigee/apigee-mtls/lib/actions/iptables.sh validate
- Inicie a mTLS da Apigee executando o seguinte comando:
/opt/apigee/apigee-service/bin/apigee-service apigee-mtls start
Depois de instalar o mTLS da Apigee, inicie esse componente antes de qualquer outro componente no nó.
- (Somente nós do Cassandra) O Cassandra requer argumentos adicionais para funcionar na
malha de segurança. Como resultado, você precisa executar os seguintes comandos em cada nó do Cassandra:
/opt/apigee/apigee-service/bin/apigee-service apigee-cassandra setup -f config_file
/opt/apigee/apigee-service/bin/apigee-service apigee-cassandra configure/opt/apigee/apigee-service/bin/apigee-service apigee-cassandra restart - (Somente nós do Postgres) O Postgres requer argumentos adicionais para funcionar na
malha de segurança. Como resultado, você precisa fazer o seguinte nos nós do Postgres:
(somente para o mestre)
- Execute os seguintes comandos no nó mestre do Postgres:
/opt/apigee/apigee-service/bin/apigee-service apigee-postgresql setup -f config_file
/opt/apigee/apigee-service/bin/apigee-service apigee-postgresql configure/opt/apigee/apigee-service/bin/apigee-service apigee-postgresql restart
(somente em espera)
- Faça backup dos dados atuais do Postgres. Para instalar a mTLS da Apigee, é necessário reiniciar os nós mestre/em espera, o que vai causar perda de dados. Para mais informações, consulte Configurar a replicação mestre/em espera para o Postgres.
- Exclua todos os dados do Postgres:
rm -rf /opt/apigee/data/apigee-postgresql/pgdata
- Configure o Postgres e reinicie-o, conforme mostrado no exemplo a seguir:
/opt/apigee/apigee-service/bin/apigee-service apigee-postgresql setup -f config_file
/opt/apigee/apigee-service/bin/apigee-service apigee-postgresql configure/opt/apigee/apigee-service/bin/apigee-service apigee-postgresql restart
Se você estiver instalando em uma topologia de vários data centers, use um caminho absoluto para o arquivo de configuração.
- Execute os seguintes comandos no nó mestre do Postgres:
- Inicie os componentes restantes da Apigee no nó na
ordem de início, como mostra o
exemplo a seguir:
/opt/apigee/apigee-service/bin/apigee-service component_name start
- Repita esse processo para cada nó no cluster.
- (Opcional) Verifique se a inicialização do
apigee-mtlsfoi concluída usando um ou mais dos seguintes métodos:- Validar a configuração do iptables
- Verificar o status do proxy remoto
- Verificar o status do quórum
Cada um desses métodos é descrito em Verificar sua configuração.
Mudar uma configuração atual do apigee-mtls
Para personalizar uma configuração atual do apigee-mtls, desinstale e reinstale o apigee-mtls.
Para reiterar esse ponto, ao alterar uma configuração de mTLS da Apigee:
- Se você alterar um arquivo de configuração, primeiro desinstale
apigee-mtlse execute novamentesetupouconfigure:# DO THIS:
/opt/apigee/apigee-service/bin/apigee-service apigee-mtls uninstall# BEFORE YOU DO THIS:/opt/apigee/apigee-service/bin/apigee-service apigee-mtls setup -f fileOR/opt/apigee/apigee-service/bin/apigee-service apigee-mtls configure - É necessário desinstalar e executar novamente
setupouconfigureem todos os nós do cluster, não apenas em um único nó.