Depois de instalar o mTLS da Apigee em todos os nós do cluster, é necessário configurar e inicializar o componente apigee-mtls
. Para 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 e o arquivo de configuração em todos os nós do cluster e inicialize o componente
apigee-mtls
local.
Configurar o apigee-mtls (após a instalação inicial)
Nesta seção, descrevemos como configurar o mTLS da Apigee diretamente após a instalação inicial. Para informações sobre como atualizar uma instalação existente do Apigee mTLS, consulte Mudar uma configuração do apigee-mtls.
Esta seção se aplica a instalações em um único data center. Para informações sobre como configurar o mTLS da Apigee em uma configuração de vários data centers, consulte Configurar vários data centers para o mTLS da Apigee.
O processo geral para configurar apigee-mtls
é o seguinte:
- 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, opcionalmente, use-o para gerar credenciais TLS (apenas uma vez).
Além disso, edite o arquivo de configuração do mTLS do Apigee para:
- Adicione as informações de credenciais
- Definir a topologia do cluster
É possível usar as credenciais atuais ou gerá-las com o Consul.
- Distribua as credenciais e o arquivo de configuração: Distribua o mesmo par de certificado/chave gerado e o arquivo de configuração atualizado para todos os nós no cluster.
- Inicializar o apigee-mtls:inicialize o componente
apigee-mtls
em 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 do mTLS. Para mais informações gerais sobre o arquivo de configuração, consulte Criar um arquivo de configuração.
Depois de atualizar o arquivo de configuração com as propriedades relacionadas ao mTLS, copie-o para
todos os nós do cluster antes de inicializar o componente apigee-mtls
nesses
nós.
Para atualizar o arquivo de configuração:
- Na máquina de administração, abra o arquivo de configuração para edição.
- Copie o seguinte conjunto de propriedades de configuração do mTLS e cole 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_IP
Uma lista separada por espaços dos endereços IP de host particulares de todos os nós no cluster. A ordem dos endereços IP não importa, exceto que precisa ser a mesma em todos os arquivos de configuração do cluster.
Se você configurar o 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_HOSTS
O endereço IP do host particular do nó SymasLDAP no cluster. ZK_MTLS_HOSTS
Uma lista separada por espaços de endereços IP de host particulares em que os nós do ZooKeeper são hospedados no cluster.
Com base nos requisitos, é necessário ter pelo menos três nós do ZooKeeper.
CASS_MTLS_HOSTS
Uma lista separada por espaços de endereços IP de host particulares em que os servidores do Cassandra estão hospedados no cluster. PG_MTLS_HOSTS
Uma lista separada por espaços de endereços IP de host particulares em que os servidores do Postgres são hospedados no cluster. RT_MTLS_HOSTS
Uma lista separada por espaços de endereços IP de host particulares em que os roteadores são hospedados no cluster. MTLS_ENCAPSULATE_LDAP
Criptografa o tráfego LDAP entre o processador de mensagens e o servidor LDAP. Defina como y
.MS_MTLS_HOSTS
Uma lista separada por espaços de endereços IP de host particulares em que os nós do servidor de gerenciamento são hospedados no cluster. MP_MTLS_HOSTS
Uma lista separada por espaços de endereços IP de host particulares em que os processadores de mensagens são hospedados no cluster. QP_MTLS_HOSTS
Uma lista separada por espaços de endereços IP de host particulares em que os servidores Qpid estão hospedados no cluster. ENABLE_SIDECAR_PROXY
Determina se o Cassandra e o Postgres precisam conhecer a malha de serviço. Defina esse valor como "y".
ENCRYPT_DATA
A chave de criptografia codificada em base64 usada pelo Consul. Você gerou essa chave usando o comando consul keygen
na Etapa 2: instale o Consul e gere credenciais.Esse valor precisa ser o mesmo em todos os nós do cluster.
PATH_TO_CA_CERT
O 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_KEY
O 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_FOR
O 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 do Apigee usa várias outras propriedades ao ser instalado em uma configuração de vários data centers. Para mais informações, consulte Configurar vários data centers.
- Verifique se
ENABLE_SIDECAR_PROXY
está definido como "y". - Atualize os endereços IP nas propriedades relacionadas ao host. Use os endereços IP privados ao se referir a cada nó, não os endereços IP públicos.
Nas etapas posteriores, você vai definir os valores das outras propriedades, como
ENCRYPT_DATA
,PATH_TO_CA_CERT
ePATH_TO_CA_KEY
. Você ainda não definiu os valores.Ao editar as propriedades de configuração do
apigee-mtls
, observe o seguinte:- Todas as propriedades são strings. Você precisa 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 um deles com um espaço.
- Use endereços IP particulares, 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
Esta seção descreve como instalar o Consul e gerar as credenciais usadas pelos componentes ativados para mTLS.
Escolha um dos seguintes métodos para gerar suas credenciais:
- (Recomendado) Crie sua própria autoridade de certificação (CA) usando o Consul, conforme descrito nesta seção.
- 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
- Chave:a chave pública TLS
- Mensagem de fofoca:uma chave de criptografia codificada em base64
Você gera uma única versão de cada um desses arquivos apenas uma vez. Em seguida, 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 será 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
Para gerar as credenciais que o mTLS da Apigee usa para autenticar comunicações seguras entre os nós no cluster da nuvem privada, use um binário local do Consul . Por isso, você precisa instalar o Consul na sua máquina de administração antes de gerar credenciais.
Para instalar o Consul e gerar credenciais mTLS:
- Na máquina de administração, faça o download do binário do Consul 1.8.0 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 formam um par de certificado/chave:
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, por enquanto, você só precisa decidir onde colocar esses arquivos nos nós. 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_CERT
como o local em que você vai copiar o arquivoconsul-agent-ca.pem
no nó. Exemplo:PATH_TO_CA_CERT="/opt/apigee/consul-agent-ca.pem"
- Defina o valor de
PATH_TO_CA_KEY
como o local em que você vai copiar o arquivoconsul-agent-ca-key.pem
no nó. Exemplo:PATH_TO_CA_KEY="/opt/apigee/consul-agent-ca-key.pem"
- Execute o comando a seguir para criar uma chave de criptografia para o Consul:
/opt/consul/consul keygen
O Consul gera uma string aleatória semelhante a esta:
QbhgD+EXAMPLE+Y9u0742X/IqX3X429/x1cIQ+JsQvY=
- Copie essa string gerada e defina-a como o valor da propriedade
ENCRYPT_DATA
no 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 seguintes arquivos para todos os nós 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_CERT
no arquivo de configuração. - consul-agent-ca-key.pem::copie para o local especificado como o valor de
PATH_TO_CA_KEY
no arquivo de configuração.
Etapa 4: inicializar o apigee-mtls
Depois de instalar o apigee-mtls
em cada nó, atualizar o arquivo de configuração e
copiar ele e as credenciais para todos os nós do cluster, você poderá inicializar o
componente apigee-mtls
em cada nó.
Para inicializar o apigee-mtls:
- Faça login em um nó do cluster como usuário raiz. Essas etapas podem ser realizadas nos nós em qualquer ordem.
- Faça com que o usuário
apigee:apigee
seja proprietário do arquivo de configuração atualizado, conforme mostra o exemplo a seguir:chown apigee:apigee config_file
- Configure o componente
apigee-mtls
executando 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 o mTLS do 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 exige argumentos adicionais para funcionar na
malha de segurança. Como resultado, execute os comandos a seguir 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 exige argumentos extras para funcionar na malha de segurança. Como resultado, você precisa fazer o seguinte nos nós do Postgres:
(somente principal)
- Execute os seguintes comandos no nó principal 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 seus dados do Postgres. Para instalar o mTLS da Apigee, é necessário reinicializar os nós primários/em espera, o que vai causar perda de dados. Para mais informações, consulte Configurar a replicação principal/em espera para Postgres.
- Exclua todos os dados do Postgres:
rm -rf /opt/apigee/data/apigee-postgresql/pgdata
- Configure e reinicie o Postgres, 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ó principal do Postgres:
- Inicie os componentes restantes da Apigee no nó na ordem de inicialização, 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-mtls
foi 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 do apigee-mtls
Para personalizar uma configuração do apigee-mtls
, desinstale e reinstale o apigee-mtls
. Aplique a personalização em todos os nós.
Para reiterar esse ponto, ao mudar uma configuração mTLS da Apigee:
- Se você mudar um arquivo de configuração, primeiro desinstale
apigee-mtls
e execute novamentesetup
ouconfigure
:# 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 file
OR/opt/apigee/apigee-service/bin/apigee-service apigee-mtls configure
- É necessário desinstalar e executar novamente
setup
ouconfigure
em todos os nós do cluster, não apenas em um único nó.