|
@@ -276,7 +276,7 @@ class TrafficDirectorSecureManager(TrafficDirectorManager):
|
|
|
SERVER_TLS_POLICY_NAME = "server-tls-policy"
|
|
|
CLIENT_TLS_POLICY_NAME = "client-tls-policy"
|
|
|
ENDPOINT_CONFIG_SELECTOR_NAME = "endpoint-config-selector"
|
|
|
- GRPC_ENDPOINT_TARGET_URI = "unix:/var/cert/node-agent.0"
|
|
|
+ CERTIFICATE_PROVIDER_INSTANCE = "google_cloud_private_spiffe"
|
|
|
|
|
|
def __init__(
|
|
|
self,
|
|
@@ -349,17 +349,14 @@ class TrafficDirectorSecureManager(TrafficDirectorManager):
|
|
|
'policy. Skipping creation', name)
|
|
|
return
|
|
|
|
|
|
- grpc_endpoint = {
|
|
|
- "grpcEndpoint": {
|
|
|
- "targetUri": self.GRPC_ENDPOINT_TARGET_URI
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
+ certificate_provider = self._get_certificate_provider()
|
|
|
policy = {}
|
|
|
if tls:
|
|
|
- policy["serverCertificate"] = grpc_endpoint
|
|
|
+ policy["serverCertificate"] = certificate_provider
|
|
|
if mtls:
|
|
|
- policy["mtlsPolicy"] = {"clientValidationCa": [grpc_endpoint]}
|
|
|
+ policy["mtlsPolicy"] = {
|
|
|
+ "clientValidationCa": [certificate_provider],
|
|
|
+ }
|
|
|
|
|
|
self.netsec.create_server_tls_policy(name, policy)
|
|
|
self.server_tls_policy = self.netsec.get_server_tls_policy(name)
|
|
@@ -431,17 +428,12 @@ class TrafficDirectorSecureManager(TrafficDirectorManager):
|
|
|
'policy. Skipping creation', name)
|
|
|
return
|
|
|
|
|
|
- grpc_endpoint = {
|
|
|
- "grpcEndpoint": {
|
|
|
- "targetUri": self.GRPC_ENDPOINT_TARGET_URI
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
+ certificate_provider = self._get_certificate_provider()
|
|
|
policy = {}
|
|
|
if tls:
|
|
|
- policy["serverValidationCa"] = [grpc_endpoint]
|
|
|
+ policy["serverValidationCa"] = [certificate_provider]
|
|
|
if mtls:
|
|
|
- policy["clientCertificate"] = grpc_endpoint
|
|
|
+ policy["clientCertificate"] = certificate_provider
|
|
|
|
|
|
self.netsec.create_client_tls_policy(name, policy)
|
|
|
self.client_tls_policy = self.netsec.get_client_tls_policy(name)
|
|
@@ -484,3 +476,11 @@ class TrafficDirectorSecureManager(TrafficDirectorManager):
|
|
|
'subjectAltNames': [server_spiffe]
|
|
|
}
|
|
|
})
|
|
|
+
|
|
|
+ @classmethod
|
|
|
+ def _get_certificate_provider(cls):
|
|
|
+ return {
|
|
|
+ "certificateProviderInstance": {
|
|
|
+ "pluginInstance": cls.CERTIFICATE_PROVIDER_INSTANCE,
|
|
|
+ },
|
|
|
+ }
|