Google Cloud Platform¶
Google Cloud Platform (GCP) is a cloud computing platform and infrastructure provider often just referred to as "Google Cloud". New features to the NAIS platform are often exclusively available on GCP first, and we are actively encouraging teams to migrate their applications to GCP.
List of NAIS clusters in GCP
||development||selected ingresses publicly accessible|
In GCP, we do not operate with a zone model like with the on-premise clusters. Instead, we rely on a zero trust model with a service mesh. The only thing we differentiate on a cluster level is development and production.
The applications running in GCP need access policy rules defined for every other service they receive requests from or sends requests to.
Make sure you have access to GCP clusters..
Access to GCP¶
In order to use GCP, a team is required to add their team in a PR to navikt/teams. This will generate a namespace for the team in each cluster, and dev and prod GCP projects will be created. The team's group is initially granted a restricted set of permissions in these projects, but have the ability to grant further permissions on demand using the GCP console
With the ability to grant permissions, the team has full control of the team's GCP projects, and should take care when granting further permissions or enabling features and APIs.
Accessing the application¶
Access is controlled in part by ingresses, which define where your application will be exposed as a HTTP endpoint. You can control where your application is reachable from by selecting the appropriate ingress domain.
Make sure you understand where you expose your application, taking into account the state of your application, what kind of data it exposes and how it is secured. If in doubt, ask in #nais or someone on the NAIS team.
You can control from where you application is reachable by selecting the appropriate ingress domain. If no ingress is selected, the application will not be reachable from outside the cluster.
|ekstern.dev.nav.no||internet||manually configured. URLs containing
|dev.nav.no||naisdevice||development ingress for nav.no applications|
|dev.intern.nav.no||naisdevice||development ingress for non-public/internet-facing applications|
In order to allow an ingress
<app>.ekstern.dev.nav.no to resolve, it must be configured in our loadbalancer config found on GitHub.
You might see a
404 Page not found error when visiting the GitHub repository for the load balancer config.
To gain access, do the following:
- Go to myapps.microsoft.com.
- Find the
GitHub.com (nais)app and add it to your account.
Add a new entry to
Commit the changes and create a pull request.
|nav.no||internet||manually configured, contact at #tech-sikkerhet. URLs containing
|intern.nav.no||naisdevice||used by non-public/internet-facing applications (previously called adeo.no).|
You can also learn about how DNS is configured.
Note that the
labs-gcp cluster is a separate cluster, primarily meant for deploying simple demos with mocks.
It does not provide any features or integrations that are present in the normal clusters (e.g. Kafka, Azure, etc.)
ROS and PVK¶
When establishing an application on GCP, it is a great time to update its platform privacy impact assessments (ROS). It is required to update the application's entry in the Behandlingsoversikt when changing platforms. If both of these words are unfamiliar to your team, it's time to sit down and take a look at both of them.
Every application needs to have a ROS analysis. Applications handling personal information needs a data protection impact assessment (PVK) and an entry in the Behandlingsoversikt.