Configurar o mTLS da Apigee

Depois de instalar o mTLS da Apigee em todos os nós do cluster, você precisa configurar e inicializar o componente apigee-mtls. Para isso, gere uma certificado/chave e atualizando o de configuração do Terraform na sua máquina de administração. Em seguida, você implanta os mesmos arquivos gerados e o mesmo arquivo de configuração para todos os nós no cluster e inicializa o servidor local Componente apigee-mtls.

Configurar apigee-mtls (após a instalação inicial)

Nesta seção, descrevemos como configurar o mTLS da Apigee logo após a instalação inicial. Para mais informações sobre como atualizar um instalação atual do mTLS da Apigee, consulte Alterar um apigee-mtls atual da Apigee configuração.

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 Configure vários data centers para o mTLS da Apigee.

O processo geral de configuração do apigee-mtls é o seguinte:

  1. Atualize o arquivo de configuração:no máquina de administração, atualize o arquivo de configuração para incluir o apigee-mtls configurações.
  2. Instalar o Consul e gerar credenciais: instalar Consul e, como opção, use-o para gerar credenciais TLS (apenas uma vez).

    Além disso, edite o arquivo de configuração mTLS da Apigee para:

    1. Adicionar as informações de credenciais
    2. Definir a topologia do cluster

    É possível usar suas credenciais ou gere-as com o Consul.

  3. Distribua as credenciais e o arquivo de configuração: Distribuir o mesmo par de certificado/chave gerado e o arquivo de configuração atualizado para todos os nós no cluster.
  4. Initialize 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

Esta seção descreve como modificar seu arquivo de configuração para incluir a configuração mTLS propriedades. Para mais informações gerais sobre o arquivo de configuração, consulte Como criar uma configuração arquivo.

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 nessas nós.

Para atualizar o arquivo de configuração:

  1. No computador de administração, abra o arquivo de configuração para edição.
  2. Copie o seguinte conjunto de propriedades de configuração de mTLS e cole na configuração arquivo:
    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 de acordo com 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 particular de todos os nós no cluster.

    A ordem dos endereços IP não importa, mas deve ser a mesma em todas de configuração do Terraform em todo o cluster.

    Se você configurar o mTLS da Apigee para vários data centers, liste endereços IP de todos os hosts em todas as regiões.

    LDAP_MTLS_HOSTS O endereço IP do host particular do nó do OpenLDAP 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 estão hospedados no cluster.

    Com base nos requisitos, é necessário pelo menos três nós do ZooKeeper.

    CASS_MTLS_HOSTS Uma lista separada por espaços de endereços IP de host particular 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 particular em que os servidores Postgres estão hospedados no cluster.
    RT_MTLS_HOSTS Uma lista separada por espaços de endereços IP de hosts privados em que os roteadores estão hospedados aglomerado.
    MTLS_ENCAPSULATE_LDAP Criptografa tráfego LDAP entre o processador de mensagens e o servidor LDAP. Definir como y:
    MS_MTLS_HOSTS Uma lista separada por espaços de endereços IP de hosts particulares em que os nós do servidor de gerenciamento estão hospedados no cluster.
    MP_MTLS_HOSTS Uma lista separada por espaços de endereços IP de host privados em que os processadores de mensagens estão hospedados no cluster.
    QP_MTLS_HOSTS Uma lista separada por espaços de endereços IP de hosts privados em que os servidores Qpid estão hospedados no cluster.
    ENABLE_SIDECAR_PROXY Determina se o Cassandra e o Postgres devem reconhecer a malha de serviço.

    Você deve definir esse valor como "y".

    ENCRYPT_DATA A chave de criptografia codificada em base64 usada pelo Consul. Você gerou essa chave usando consul keygen na Etapa 2: instalar o Consul e gerar 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 este arquivo em Etapa 2: instalar o Consul e gerar credenciais.

    Esse local deve ser o mesmo em todos os nós do cluster para que os arquivos de configuração são os mesmos.

    O certificado precisa ser codificado em X509v3.

    PATH_TO_CA_KEY O local do arquivo de chave no nó. Você gerou este arquivo em Etapa 2: instalar o Consul e gerar credenciais.

    Esse local deve ser o mesmo em todos os nós do cluster para que os arquivos de configuração são os mesmos.

    O arquivo de chave precisa ser codificado em X509v3.

    APIGEE_MTLS_NUM_DAYS_CERT_VALID_FOR

    O número de dias que um certificado é válido quando você gerar 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 ao instalá-lo em uma configuração de vários data centers. Para mais informações, consulte Configurar vários data centers.

  3. Confira se ENABLE_SIDECAR_PROXY está definido como "y".
  4. Atualize os endereços IP nas propriedades relacionadas ao host. Use o parâmetro endereços IP privados quando se referirem a cada nó, não ao endereço IP público usando os endereços IP internos.

    Nas etapas posteriores, você definirá os valores de outras propriedades, como ENCRYPT_DATA, PATH_TO_CA_CERT e PATH_TO_CA_KEY. Você ainda não definiram seus valores.

    Ao editar as propriedades de configuração do apigee-mtls, observe o seguinte:

    • Todas as propriedades são strings. você precisa unir os valores de todas as propriedades em single ou double aspas.
    • Se um valor relacionado ao host tiver mais de um endereço IP particular, separe cada endereço IP com um espaço.
    • Use endereços IP particulares e não nomes de host ou endereços IP públicos para todos os endereços IP no arquivo de configuração.
    • A ordem dos endereços IP em um valor de propriedade deve estar na mesma ordem em todos de configuração do Terraform em todo o cluster.
  5. 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 que são usadas pelo componentes habilitados para mTLS.

Escolha um dos seguintes métodos para gerar as credenciais:

  • (Recomendado) Crie sua própria autoridade de certificação (CA) usando o Consul, conforme descrito neste seção
  • Usar as credenciais de uma AC 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. Depois, copie a chave e o certificado a todos os nós do cluster e adicionar a chave de criptografia ao arquivo de configuração que que também é copiado para todos os nós.

Para mais informações sobre a implementação da criptografia do Consul, acesse:

Instalar o Consul e gerar credenciais

Gerar credenciais que o mTLS da Apigee usa para para autenticar comunicações seguras entre os nós do cluster de nuvem privada, use um Binário Consul . Como resultado, precisa instalar o Consul na sua máquina de administração para poder gerar credenciais.

Para instalar o Consul e gerar credenciais mTLS:

  1. Na máquina de administração, faça o download do binário do Consul 1.8.0 no Site HashiCorp.
  2. Extraia o conteúdo do arquivo transferido por download. Por exemplo, extraia o conteúdo para /opt/consul/:
  3. 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 de chave são codificados em X509v3.

    Depois, você copiará esses arquivos para todos os nós no cluster. No entanto, você precisa decida apenas onde nos nós você colocará esses arquivos. Eles devem estar no mesmo em cada nó. Por exemplo, /opt/apigee/.

  4. No arquivo de configuração, defina o valor de PATH_TO_CA_CERT como o local como em que você vai copiar o arquivo consul-agent-ca.pem no nó. Exemplo:
    PATH_TO_CA_CERT="/opt/apigee/consul-agent-ca.pem"
  5. Defina o valor de PATH_TO_CA_KEY como o local para onde o arquivo será copiado. consul-agent-ca-key.pem no nó. Exemplo:
    PATH_TO_CA_KEY="/opt/apigee/consul-agent-ca-key.pem"
  6. Crie uma chave de criptografia para o Consul executando o seguinte comando:
    /opt/consul/consul keygen

    O Consul gera uma string aleatória, parecida com esta:

    QbhgD+EXAMPLE+Y9u0742X/IqX3X429/x1cIQ+JsQvY=
  7. Copie e defina a string gerada como o valor da propriedade ENCRYPT_DATA. no arquivo de configuração. Exemplo:
    ENCRYPT_DATA="QbhgD+EXAMPLE+Y9u0742X/IqX3X429/x1cIQ+JsQvY="
  8. Salve o arquivo de configuração.

O exemplo a seguir mostra as configurações relacionadas ao mTLS em um arquivo de configuração (com exemplos de valor):

...
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 todos os nós usando uma ferramenta como scp:

  • Arquivo de configuração:copie a versão atualizada deste arquivo e substitua as 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.

Verifique se os locais para os quais você copiou o certificado e os arquivos de chave correspondem aos valores que você definido no arquivo de configuração na Etapa 2: instalar o Consul e gerar credenciais.

Etapa 4: inicializar a Apigee-mtls

Depois de instalar apigee-mtls em cada nó, atualizar o arquivo de configuração e tiver copiado o arquivo e as credenciais para todos os nós do cluster, Componente apigee-mtls em cada nó.

Para inicializar apigee-mtls:

  1. Faça login em um nó do cluster como usuário raiz. É possível executar essas etapas nos nós do na ordem que você quiser.
  2. Torne o usuário apigee:apigee o proprietário do arquivo de configuração atualizado, conforme o exemplo a seguir mostra:
    chown apigee:apigee config_file
  3. Configure o componente apigee-mtls executando o seguinte comando:
    /opt/apigee/apigee-service/bin/apigee-service apigee-mtls setup -f config_file
  4. (Opcional) Execute o seguinte comando para verificar se a configuração foi concluída:
    /opt/apigee/apigee-mtls/lib/actions/iptables.sh validate
  5. Inicie o mTLS da Apigee executando o seguinte comando:
    /opt/apigee/apigee-service/bin/apigee-service apigee-mtls start

    Após instalar o mTLS da Apigee, inicie esse componente antes de qualquer outro no nó.

  6. (Somente nós do Cassandra) O Cassandra exige argumentos adicionais para funcionar na e da rede mesh 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
  7. (Somente nós do Postgres) O Postgres exige argumentos adicionais para funcionar no e da rede mesh de segurança. Como resultado, você precisa fazer o seguinte nos nós do Postgres:

    (Apenas principais)

    1. 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

    (Apenas em espera)

    1. Faça backup dos seus dados do Postgres. Para instalar o mTLS da Apigee, reinicialize o nó primário/de espera, então haverá perda de dados. Para mais informações, consulte Configure a replicação primária/em espera para Postgres.
    2. Excluir todos os dados do Postgres:
      rm -rf /opt/apigee/data/apigee-postgresql/pgdata
    3. Configure e reinicie o Postgres, conforme o 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 de configuração do Terraform.

  8. Inicie os componentes restantes da Apigee no nó na pedido de início, como o o exemplo a seguir mostra:
    /opt/apigee/apigee-service/bin/apigee-service component_name start
  9. Repita esse processo para cada nó do cluster.
  10. (Opcional) Verifique se a inicialização do apigee-mtls foi concluída com um ou mais dos seguintes métodos:
    1. Validar a configuração do iptables
    2. Verificar o status do proxy remoto
    3. Verificar o status de quórum

    Cada um desses métodos é descrito em Verifique do Terraform.

Alterar uma configuração atual da apigee-mtls

Para personalizar uma configuração do apigee-mtls, desinstale e reinstale o apigee-mtls. Você também deve aplicar sua personalização em todas nós.

Para reforçar esse ponto, ao alterar uma configuração mTLS da Apigee:

  • Se você mudar um arquivo de configuração, primeiro desinstale o apigee-mtls e Execute setup ou configure novamente:
    # 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 ou configure em todos os nós da e não apenas um nó.
.