Encryption from the load balancer to the backends

Encryption in all Google Cloud regions

All VM-to-VM traffic within a VPC network and peered VPC networks is encrypted. This includes VM-to-VM traffic within physical boundaries (that is, intra-cluster traffic).

Encryption between proxy load balancers and backends

For some proxy load balancers (see table 1), Google automatically encrypts traffic to the backends that reside within Google Cloud VPC networks. This is called automatic network-level encryption. Automatic network-level encryption is only applicable to communications with these types of backends:

  • Instance groups
  • Zonal NEGs (GCE_VM_IP_PORT endpoints)

In addition, Google Cloud provides secure protocol options to encrypt communication with the backend service.

Some Google Cloud load balancers use Google Front Ends (GFEs) as the client to the backends. Others use the open source Envoy proxy. In all cases, the load balancer supports the cipher suites listed in RFC 8446, section 9.1.

The following table provides a summary.

Table 1. Communications between load balancers and backends
Proxy load balancer Proxy (client to the backend) Automatic network-level encryption Backend service protocol options
Global external Application Load Balancer GFE (with Envoy software for advanced routing features) HTTP, HTTPS, and HTTP/2
Choose HTTPS or HTTP/2 if you require auditable encryption in transit to the backends.
Classic Application Load Balancer GFE HTTP, HTTPS, and HTTP/2
Choose HTTPS or HTTP/2 if you require auditable encryption in transit to the backends.
Regional external Application Load Balancer Envoy proxy HTTP, HTTPS, and HTTP/2
Choose HTTPS or HTTP/2 if you require auditable encryption in transit to the backends.
External proxy Network Load Balancer GFE SSL or TCP
Choose SSL for the backend service protocol if you require auditable encryption in transit to the backends.
Internal Application Load Balancer Envoy proxy HTTP, HTTPS, and HTTP/2
Choose HTTPS or HTTP/2 if you require auditable encryption in transit to the backends.
Regional internal proxy Network Load Balancer Envoy proxy TCP
Traffic Director Client-side proxy HTTPS and HTTP/2

Secure backend protocol use cases

A secure protocol to connect to backend instances is recommended in the following cases:

  • When you require an auditable, encrypted connection from the load balancer (or Traffic Director) to the backend instances.

  • When the load balancer connects to a backend instance that is outside of Google Cloud (with an internet NEG). Communication to an internet NEG backend might transit the public internet. When the load balancer connects to an internet NEG, the public CA-signed certificate must meet the validation requirements.

Secure backend protocol considerations

When using a secure backend service protocol, keep the following in mind:

  • Your load balancer's backend instances or endpoints must serve using the same protocol as the backend service. For example, if the backend service protocol is HTTPS, the backends must be HTTPS servers.

  • If the backend service protocol is HTTP/2, your backends must use TLS. For configuration instructions, see the documentation for the software running on your backend instances or endpoints.

  • You must install private keys and certificates on your backend instances or endpoints in order for them to function as HTTPS or SSL servers. These certificates don't need to match the load balancer's frontend SSL certificates. For installation instructions, see the documentation for the software running on your backend instances or endpoints.

  • With the exception of HTTPS load balancers with Internet NEG backends, GFEs don't use the Server Name Indication (SNI) extension for connections to the backend.

  • When a GFE connects to backends that are within Google Cloud, the GFE accepts any certificate your backends present. GFEs do not perform certificate validation. For example, the certificate is treated as valid even in the following circumstances:

    • The certificate is self-signed.
    • The certificate is signed by an unknown certificate authority (CA).
    • The certificate has expired or is not yet valid.
    • The CN and subjectAlternativeName attributes don't match a Host header or DNS PTR record.

Secure frontend protocols

When you use a target HTTPS or target SSL proxy as part of your configuration, Google Cloud uses a secure frontend protocol.

External Application Load Balancers and external proxy Network Load Balancers use Google's BoringCrypto library. For FIPS 140-2 details, see NIST Cryptographic Module Validation Program Certificate #3678.

Internal Application Load Balancers use Google's BoringSSL library. For FIPS 140-2 details, see the Envoy documentation. Google builds Envoy proxies for internal Application Load Balancers in FIPS compliant mode.

Traffic Director supports Envoy proxies that are built in FIPS-compliant mode.