En esta página, se proporcionan instrucciones para crear una autoridad certificadora (CA) privada mediante Certificate Authority Service y subir tus certificados a un recurso TrustConfig
de Certificate Manager.
También debes crear los recursos de seguridad de red necesarios a fin de configurar TLS mutua para los balanceadores de cargas de aplicaciones.
Antes de comenzar
- Revisa la descripción general de la TLS mutua.
Instala Google Cloud CLI. Para obtener una descripción general completa de la herramienta, consulta la descripción general de la CLI de gcloud. Encontrarás comandos relacionados con el balanceo de cargas en la referencia de la API y la CLI de gcloud.
Si nunca ejecutaste la CLI de gcloud, primero ejecuta
gcloud init
para autenticarte.Asegúrate de que sabes crear grupos de CA.
Permisos
Para obtener los permisos que necesitas a fin de completar esta guía, pídele a tu administrador que te otorgue los siguientes roles de IAM en el proyecto:
- Para crear recursos del balanceador de cargas, como
TargetHTTPProxy
: Administrador de balanceador de cargas de Compute (roles/compute.loadBalancerAdmin
) - Para usar recursos de Certificate Manager:
Propietario de Certificate Manager (
roles/certificatemanager.owner
) - Para crear componentes de seguridad y de herramientas de redes: Administrador de red de Compute (
roles/compute.networkAdmin
) y Administrador de seguridad de Compute (roles/compute.securityAdmin
) - Para crear un proyecto (opcional): Creador de proyectos (
roles/resourcemanager.projectCreator
)
Si quieres obtener más información para otorgar funciones, consulta Administra el acceso.
También puedes obtener los permisos necesarios mediante roles personalizados o cualquier otro rol predefinido.
Crea una CA privada
Crea una CA privada mediante el Servicio de CA y, luego, crea un certificado raíz:
Para crear un grupo de CA, usa el comando
gcloud privateca pools create
:gcloud privateca pools create CA_POOL \ --location=us-central1
Reemplaza
CA_POOL
por el ID o el nombre del grupo de CA superior.Para crear una CA privada en el grupo de CA, usa el comando
gcloud privateca roots create
:gcloud privateca roots create CA_ROOT \ --pool=CA_POOL \ --subject="CN=my-ca, O=Test LLC" \ --location=us-central1
Reemplaza lo siguiente:
CA_ROOT
: el ID o el nombre de la CA privadaCA_POOL
: el ID o el nombre del grupo de AC superior
Para describir la CA nueva y crear el archivo
root.cert
, usa el comandogcloud privateca roots describe
:gcloud privateca roots describe CA_ROOT \ --pool=CA_POOL \ --location=us-central1 \ --format='value(pemCaCertificates)' > root.cert
export ROOT=$(cat root.cert | sed 's/^[ ]*//g' | tr '\n' $ | sed 's/\$/\\n/g')
Reemplaza lo siguiente:
CA_ROOT
: el ID o el nombre de la CA privadaCA_POOL
: el ID o el nombre del grupo de AC superior
Para obtener más información, consulta lo siguiente:
Crea TrustConfig con CA privada
Crea un recurso TrustConfig
de Certificate Manager que represente tu PKI mediante el certificado raíz generado con la CA privada. Suponemos que el recurso TrustConfig
es un almacén de confianza simple con un único ancla de confianza que representa un certificado raíz.
En los siguientes pasos, reemplaza TRUST_CONFIG_NAME
por el nombre del recurso TrustConfig
.
Para crear el archivo
trust_config.yaml
, usa el siguiente comando:cat << EOF > trust_config.yaml name: TRUST_CONFIG_NAME trustStores: - trustAnchors: - pemCertificate: "${ROOT?}" EOF
Para crear los recursos
TrustConfig
de Certificate Manager, usa el comandogcloud certificate-manager trust-configs import
:gcloud certificate-manager trust-configs import TRUST_CONFIG_NAME \ --source=trust_config.yaml \ --location=REGION
Reemplaza lo siguiente:
REGION
: usaglobal
para el balanceador de cargas de aplicaciones interno entre regiones, el balanceador de cargas de aplicaciones externo global o el balanceador de cargas de aplicaciones clásico. Para el balanceador de cargas de aplicaciones externo regional o el balanceador de cargas de aplicaciones interno regional, usa la región en la que configuraste el balanceador de cargas.
Crea los recursos de seguridad de red
Una política de TLS del servidor (recurso de seguridad de red ServerTLSPolicy
) te permite especificar el modo de la TLS del servidor y el recurso TrustConfig
para usar cuando se validan los certificados de cliente. Cuando el cliente presenta un certificado no válido o ningún certificado al balanceador de cargas, clientValidationMode
especifica cómo se maneja la conexión del cliente.
- Cuando
clientValidationMode
se establece comoALLOW_INVALID_OR_MISSING_CLIENT_CERT
, todas las solicitudes se pasan al backend, incluso si la validación falla o si falta el certificado de cliente. - Cuando
clientValidationMode
se establece enREJECT_INVALID
, solo las solicitudes que proporcionan un certificado de cliente que se puede validar en un recursoTrustConfig
se pasan al backend.
Para crear el recurso ServerTLSPolicy
, completa los siguientes pasos:
Según cómo desees manejar la conexión, selecciona una de las siguientes opciones.
En los siguientes pasos, reemplaza
SERVER_TLS_POLICY_NAME
por el nombre de la política de TLS del servidor y reemplazaPROJECT_ID
por el ID de tu proyecto de Google Cloud.Opción 1:
clientValidationMode
se establece enALLOW_INVALID_OR_MISSING_CLIENT_CERT
.Para crear el archivo
server_tls_policy.yaml
, usa el siguiente comando:global
Para los balanceadores de cargas de aplicaciones externos y los balanceadores de cargas de aplicaciones internos entre regiones, usa el siguiente comando:
cat << EOF > server_tls_policy.yaml name: SERVER_TLS_POLICY_NAME mtlsPolicy: clientValidationMode: ALLOW_INVALID_OR_MISSING_CLIENT_CERT clientValidationTrustConfig: projects/PROJECT_ID/locations/global/trustConfigs/TRUST_CONFIG_NAME EOF
regional
Para los balanceadores de cargas de aplicaciones externos regionales y los balanceadores de cargas de aplicaciones internos regionales, usa el siguiente comando:
cat << EOF > server_tls_policy.yaml name: SERVER_TLS_POLICY_NAME mtlsPolicy: clientValidationMode: ALLOW_INVALID_OR_MISSING_CLIENT_CERT clientValidationTrustConfig: projects/PROJECT_ID/locations/REGION/trustConfigs/TRUST_CONFIG_NAME EOF
Opción 2:
clientValidationMode
se establece enREJECT_INVALID
.Para crear el archivo
server_tls_policy.yaml
, usa el siguiente comando:global
Para los balanceadores de cargas de aplicaciones externos y los balanceadores de cargas de aplicaciones internos entre regiones, usa el siguiente comando:
cat << EOF > server_tls_policy.yaml name: SERVER_TLS_POLICY_NAME mtlsPolicy: clientValidationMode: REJECT_INVALID clientValidationTrustConfig: projects/PROJECT_ID/locations/global/trustConfigs/TRUST_CONFIG_NAME EOF
regional
Para los balanceadores de cargas de aplicaciones externos regionales y los balanceadores de cargas de aplicaciones internos regionales, usa el siguiente comando:
cat << EOF > server_tls_policy.yaml name: SERVER_TLS_POLICY_NAME mtlsPolicy: clientValidationMode: REJECT_INVALID clientValidationTrustConfig: projects/PROJECT_ID/locations/REGION/trustConfigs/TRUST_CONFIG_NAME EOF
Para crear el recurso
ServerTlsPolicy
, usa el comandogcloud network-security server-tls-policies import
:global
Para los balanceadores de cargas de aplicaciones externos y los balanceadores de cargas de aplicaciones internos entre regiones, usa el siguiente comando:
gcloud network-security server-tls-policies import SERVER_TLS_POLICY_NAME \ --source=server_tls_policy.yaml \ --location=global
regional
Para los balanceadores de cargas de aplicaciones externos regionales y los balanceadores de cargas de aplicaciones internos regionales, usa el siguiente comando:
gcloud network-security server-tls-policies import SERVER_TLS_POLICY_NAME \ --source=server_tls_policy.yaml \ --location=REGION
Para obtener más información, consulta los modos de validación del cliente de mTLS.
¿Qué sigue?
- Configura TLS mutua para un balanceador de cargas externo de aplicaciones global
- Configura TLS mutua para un balanceador de cargas clásico de aplicaciones
- Configura TLS mutua para un balanceador de cargas de aplicaciones interno
- Configura TLS mutua para un balanceador de cargas de aplicaciones externo regional
- Configura la TLS mutua con certificados firmados