ServicePerimeter is the Schema for the ServicePerimeters API. ServicePerimeter describes a set of GCP resources which can freely import and export data amongst themselves, but not export outside of the ServicePerimeter.
Type
CRD
Group
accesscontextmanager.gcp.upbound.io
Version
v1beta1
apiVersion: accesscontextmanager.gcp.upbound.io/v1beta1
kind: ServicePerimeter
ServicePerimeterSpec defines the desired state of ServicePerimeter
No description provided.
Proposed (or dry run) ServicePerimeter configuration. This configuration allows to specify and test ServicePerimeter configuration without enforcing actual access restrictions. Only allowed to be set when the useExplicitDryRunSpec flag is set. Structure is documented below.
A list of AccessLevel resource names that allow resources within the ServicePerimeter to be accessed from the internet. AccessLevels listed must be in the same policy as this ServicePerimeter. Referencing a nonexistent AccessLevel is a syntax error. If no AccessLevel names are listed, resources within the perimeter can only be accessed via GCP calls with request origins within the perimeter. For Service Perimeter Bridge, must be empty. Format: accessPolicies/{policy_id}/accessLevels/{access_level_name}
References to AccessLevel to populate accessLevels.
Policies for referencing.
Selector for a list of AccessLevel to populate accessLevels.
Policies for selection.
List of EgressPolicies to apply to the perimeter. A perimeter may have multiple EgressPolicies, each of which is evaluated separately. Access is granted if any EgressPolicy grants it. Must be empty for a perimeter bridge. Structure is documented below.
Defines conditions on the source of a request causing this EgressPolicy to apply. Structure is documented below.
A list of identities that are allowed access through this ingress policy. Should be in the format of email address. The email address should represent individual user or service account only.
Sources that this IngressPolicy authorizes access from. Structure is documented below.
Defines the conditions on the ApiOperation and destination resources that cause this EgressPolicy to apply. Structure is documented below.
A list of external resources that are allowed to be accessed. A request matches if it contains an external resource in this list (Example: s3://bucket/path). Currently '*' is not allowed.
A list of ApiOperations the sources specified in corresponding IngressFrom are allowed to perform in this ServicePerimeter. Structure is documented below.
API methods or permissions to allow. Method or permission must belong to the service specified by serviceName field. A single MethodSelector entry with * specified for the method field will allow all methods AND permissions for the service specified in serviceName. Structure is documented below.
A list of GCP resources that are inside of the service perimeter. Currently only projects are allowed. Format: projects/{project_number}
List of IngressPolicies to apply to the perimeter. A perimeter may have multiple IngressPolicies, each of which is evaluated separately. Access is granted if any Ingress Policy grants it. Must be empty for a perimeter bridge. Structure is documented below.
Defines the conditions on the source of a request causing this IngressPolicy to apply. Structure is documented below.
A list of identities that are allowed access through this ingress policy. Should be in the format of email address. The email address should represent individual user or service account only.
Sources that this IngressPolicy authorizes access from. Structure is documented below.
Defines the conditions on the ApiOperation and request destination that cause this IngressPolicy to apply. Structure is documented below.
A list of ApiOperations the sources specified in corresponding IngressFrom are allowed to perform in this ServicePerimeter. Structure is documented below.
API methods or permissions to allow. Method or permission must belong to the service specified by serviceName field. A single MethodSelector entry with * specified for the method field will allow all methods AND permissions for the service specified in serviceName. Structure is documented below.
A list of GCP resources that are inside of the service perimeter. Currently only projects are allowed. Format: projects/{project_number}
A list of GCP resources that are inside of the service perimeter. Currently only projects are allowed. Format: projects/{project_number}
GCP services that are subject to the Service Perimeter restrictions. Must contain a list of services. For example, if storage.googleapis.com is specified, access to the storage buckets inside the perimeter must meet the perimeter's access restrictions.
Specifies how APIs are allowed to communicate within the Service Perimeter. Structure is documented below.
The list of APIs usable within the Service Perimeter. Must be empty unless enableRestriction is True.
ServicePerimeter configuration. Specifies sets of resources, restricted services and access levels that determine perimeter content and boundaries. Structure is documented below.
A list of AccessLevel resource names that allow resources within the ServicePerimeter to be accessed from the internet. AccessLevels listed must be in the same policy as this ServicePerimeter. Referencing a nonexistent AccessLevel is a syntax error. If no AccessLevel names are listed, resources within the perimeter can only be accessed via GCP calls with request origins within the perimeter. For Service Perimeter Bridge, must be empty. Format: accessPolicies/{policy_id}/accessLevels/{access_level_name}
References to AccessLevel to populate accessLevels.
Policies for referencing.
Selector for a list of AccessLevel to populate accessLevels.
Policies for selection.
List of EgressPolicies to apply to the perimeter. A perimeter may have multiple EgressPolicies, each of which is evaluated separately. Access is granted if any EgressPolicy grants it. Must be empty for a perimeter bridge. Structure is documented below.
Defines conditions on the source of a request causing this EgressPolicy to apply. Structure is documented below.
A list of identities that are allowed access through this ingress policy. Should be in the format of email address. The email address should represent individual user or service account only.
Sources that this IngressPolicy authorizes access from. Structure is documented below.
Defines the conditions on the ApiOperation and destination resources that cause this EgressPolicy to apply. Structure is documented below.
A list of external resources that are allowed to be accessed. A request matches if it contains an external resource in this list (Example: s3://bucket/path). Currently '*' is not allowed.
A list of ApiOperations the sources specified in corresponding IngressFrom are allowed to perform in this ServicePerimeter. Structure is documented below.
API methods or permissions to allow. Method or permission must belong to the service specified by serviceName field. A single MethodSelector entry with * specified for the method field will allow all methods AND permissions for the service specified in serviceName. Structure is documented below.
A list of GCP resources that are inside of the service perimeter. Currently only projects are allowed. Format: projects/{project_number}
List of IngressPolicies to apply to the perimeter. A perimeter may have multiple IngressPolicies, each of which is evaluated separately. Access is granted if any Ingress Policy grants it. Must be empty for a perimeter bridge. Structure is documented below.
Defines the conditions on the source of a request causing this IngressPolicy to apply. Structure is documented below.
A list of identities that are allowed access through this ingress policy. Should be in the format of email address. The email address should represent individual user or service account only.
Sources that this IngressPolicy authorizes access from. Structure is documented below.
Reference to a AccessLevel in accesscontextmanager to populate accessLevel.
Policies for referencing.
Selector for a AccessLevel in accesscontextmanager to populate accessLevel.
Policies for selection.
Defines the conditions on the ApiOperation and request destination that cause this IngressPolicy to apply. Structure is documented below.
A list of ApiOperations the sources specified in corresponding IngressFrom are allowed to perform in this ServicePerimeter. Structure is documented below.
API methods or permissions to allow. Method or permission must belong to the service specified by serviceName field. A single MethodSelector entry with * specified for the method field will allow all methods AND permissions for the service specified in serviceName. Structure is documented below.
A list of GCP resources that are inside of the service perimeter. Currently only projects are allowed. Format: projects/{project_number}
A list of GCP resources that are inside of the service perimeter. Currently only projects are allowed. Format: projects/{project_number}
GCP services that are subject to the Service Perimeter restrictions. Must contain a list of services. For example, if storage.googleapis.com is specified, access to the storage buckets inside the perimeter must meet the perimeter's access restrictions.
Specifies how APIs are allowed to communicate within the Service Perimeter. Structure is documented below.
The list of APIs usable within the Service Perimeter. Must be empty unless enableRestriction is True.
THIS IS A BETA FIELD. It will be honored unless the Management Policies feature flag is disabled. InitProvider holds the same fields as ForProvider, with the exception of Identifier and other resource reference fields. The fields that are in InitProvider are merged into ForProvider when the resource is created. The same fields are also added to the terraform ignore_changes hook, to avoid updating them after creation. This is useful for fields that are required on creation, but we do not desire to update them after creation, for example because of an external controller is managing them, like an autoscaler.
Proposed (or dry run) ServicePerimeter configuration. This configuration allows to specify and test ServicePerimeter configuration without enforcing actual access restrictions. Only allowed to be set when the useExplicitDryRunSpec flag is set. Structure is documented below.
A list of AccessLevel resource names that allow resources within the ServicePerimeter to be accessed from the internet. AccessLevels listed must be in the same policy as this ServicePerimeter. Referencing a nonexistent AccessLevel is a syntax error. If no AccessLevel names are listed, resources within the perimeter can only be accessed via GCP calls with request origins within the perimeter. For Service Perimeter Bridge, must be empty. Format: accessPolicies/{policy_id}/accessLevels/{access_level_name}
References to AccessLevel to populate accessLevels.
Policies for referencing.
Selector for a list of AccessLevel to populate accessLevels.
Policies for selection.
List of EgressPolicies to apply to the perimeter. A perimeter may have multiple EgressPolicies, each of which is evaluated separately. Access is granted if any EgressPolicy grants it. Must be empty for a perimeter bridge. Structure is documented below.
Defines conditions on the source of a request causing this EgressPolicy to apply. Structure is documented below.
A list of identities that are allowed access through this ingress policy. Should be in the format of email address. The email address should represent individual user or service account only.
Sources that this IngressPolicy authorizes access from. Structure is documented below.
Defines the conditions on the ApiOperation and destination resources that cause this EgressPolicy to apply. Structure is documented below.
A list of external resources that are allowed to be accessed. A request matches if it contains an external resource in this list (Example: s3://bucket/path). Currently '*' is not allowed.
A list of ApiOperations the sources specified in corresponding IngressFrom are allowed to perform in this ServicePerimeter. Structure is documented below.
API methods or permissions to allow. Method or permission must belong to the service specified by serviceName field. A single MethodSelector entry with * specified for the method field will allow all methods AND permissions for the service specified in serviceName. Structure is documented below.
A list of GCP resources that are inside of the service perimeter. Currently only projects are allowed. Format: projects/{project_number}
List of IngressPolicies to apply to the perimeter. A perimeter may have multiple IngressPolicies, each of which is evaluated separately. Access is granted if any Ingress Policy grants it. Must be empty for a perimeter bridge. Structure is documented below.
Defines the conditions on the source of a request causing this IngressPolicy to apply. Structure is documented below.
A list of identities that are allowed access through this ingress policy. Should be in the format of email address. The email address should represent individual user or service account only.
Sources that this IngressPolicy authorizes access from. Structure is documented below.
Defines the conditions on the ApiOperation and request destination that cause this IngressPolicy to apply. Structure is documented below.
A list of ApiOperations the sources specified in corresponding IngressFrom are allowed to perform in this ServicePerimeter. Structure is documented below.
API methods or permissions to allow. Method or permission must belong to the service specified by serviceName field. A single MethodSelector entry with * specified for the method field will allow all methods AND permissions for the service specified in serviceName. Structure is documented below.
A list of GCP resources that are inside of the service perimeter. Currently only projects are allowed. Format: projects/{project_number}
A list of GCP resources that are inside of the service perimeter. Currently only projects are allowed. Format: projects/{project_number}
GCP services that are subject to the Service Perimeter restrictions. Must contain a list of services. For example, if storage.googleapis.com is specified, access to the storage buckets inside the perimeter must meet the perimeter's access restrictions.
Specifies how APIs are allowed to communicate within the Service Perimeter. Structure is documented below.
The list of APIs usable within the Service Perimeter. Must be empty unless enableRestriction is True.
ServicePerimeter configuration. Specifies sets of resources, restricted services and access levels that determine perimeter content and boundaries. Structure is documented below.
A list of AccessLevel resource names that allow resources within the ServicePerimeter to be accessed from the internet. AccessLevels listed must be in the same policy as this ServicePerimeter. Referencing a nonexistent AccessLevel is a syntax error. If no AccessLevel names are listed, resources within the perimeter can only be accessed via GCP calls with request origins within the perimeter. For Service Perimeter Bridge, must be empty. Format: accessPolicies/{policy_id}/accessLevels/{access_level_name}
References to AccessLevel to populate accessLevels.
Policies for referencing.
Selector for a list of AccessLevel to populate accessLevels.
Policies for selection.
List of EgressPolicies to apply to the perimeter. A perimeter may have multiple EgressPolicies, each of which is evaluated separately. Access is granted if any EgressPolicy grants it. Must be empty for a perimeter bridge. Structure is documented below.
Defines conditions on the source of a request causing this EgressPolicy to apply. Structure is documented below.
A list of identities that are allowed access through this ingress policy. Should be in the format of email address. The email address should represent individual user or service account only.
Sources that this IngressPolicy authorizes access from. Structure is documented below.
Defines the conditions on the ApiOperation and destination resources that cause this EgressPolicy to apply. Structure is documented below.
A list of external resources that are allowed to be accessed. A request matches if it contains an external resource in this list (Example: s3://bucket/path). Currently '*' is not allowed.
A list of ApiOperations the sources specified in corresponding IngressFrom are allowed to perform in this ServicePerimeter. Structure is documented below.
API methods or permissions to allow. Method or permission must belong to the service specified by serviceName field. A single MethodSelector entry with * specified for the method field will allow all methods AND permissions for the service specified in serviceName. Structure is documented below.
A list of GCP resources that are inside of the service perimeter. Currently only projects are allowed. Format: projects/{project_number}
List of IngressPolicies to apply to the perimeter. A perimeter may have multiple IngressPolicies, each of which is evaluated separately. Access is granted if any Ingress Policy grants it. Must be empty for a perimeter bridge. Structure is documented below.
Defines the conditions on the source of a request causing this IngressPolicy to apply. Structure is documented below.
A list of identities that are allowed access through this ingress policy. Should be in the format of email address. The email address should represent individual user or service account only.
Sources that this IngressPolicy authorizes access from. Structure is documented below.
Reference to a AccessLevel in accesscontextmanager to populate accessLevel.
Policies for referencing.
Selector for a AccessLevel in accesscontextmanager to populate accessLevel.
Policies for selection.
Defines the conditions on the ApiOperation and request destination that cause this IngressPolicy to apply. Structure is documented below.
A list of ApiOperations the sources specified in corresponding IngressFrom are allowed to perform in this ServicePerimeter. Structure is documented below.
API methods or permissions to allow. Method or permission must belong to the service specified by serviceName field. A single MethodSelector entry with * specified for the method field will allow all methods AND permissions for the service specified in serviceName. Structure is documented below.
A list of GCP resources that are inside of the service perimeter. Currently only projects are allowed. Format: projects/{project_number}
A list of GCP resources that are inside of the service perimeter. Currently only projects are allowed. Format: projects/{project_number}
GCP services that are subject to the Service Perimeter restrictions. Must contain a list of services. For example, if storage.googleapis.com is specified, access to the storage buckets inside the perimeter must meet the perimeter's access restrictions.
Specifies how APIs are allowed to communicate within the Service Perimeter. Structure is documented below.
The list of APIs usable within the Service Perimeter. Must be empty unless enableRestriction is True.
THIS IS A BETA FIELD. It is on by default but can be opted out through a Crossplane feature flag. ManagementPolicies specify the array of actions Crossplane is allowed to take on the managed and external resources. This field is planned to replace the DeletionPolicy field in a future release. Currently, both could be set independently and non-default values would be honored if the feature flag is enabled. If both are custom, the DeletionPolicy field will be ignored. See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md
ProviderConfigReference specifies how the provider that will be used to create, observe, update, and delete this managed resource should be configured.
Policies for referencing.
PublishConnectionDetailsTo specifies the connection secret config which contains a name, metadata and a reference to secret store config to which any connection details for this managed resource should be written. Connection details frequently include the endpoint, username, and password required to connect to the managed resource.
WriteConnectionSecretToReference specifies the namespace and name of a Secret to which any connection details for this managed resource should be written. Connection details frequently include the endpoint, username, and password required to connect to the managed resource. This field is planned to be replaced in a future release in favor of PublishConnectionDetailsTo. Currently, both could be set independently and connection details would be published to both without affecting each other.
ServicePerimeterStatus defines the observed state of ServicePerimeter.
No description provided.
Proposed (or dry run) ServicePerimeter configuration. This configuration allows to specify and test ServicePerimeter configuration without enforcing actual access restrictions. Only allowed to be set when the useExplicitDryRunSpec flag is set. Structure is documented below.
A list of AccessLevel resource names that allow resources within the ServicePerimeter to be accessed from the internet. AccessLevels listed must be in the same policy as this ServicePerimeter. Referencing a nonexistent AccessLevel is a syntax error. If no AccessLevel names are listed, resources within the perimeter can only be accessed via GCP calls with request origins within the perimeter. For Service Perimeter Bridge, must be empty. Format: accessPolicies/{policy_id}/accessLevels/{access_level_name}
List of EgressPolicies to apply to the perimeter. A perimeter may have multiple EgressPolicies, each of which is evaluated separately. Access is granted if any EgressPolicy grants it. Must be empty for a perimeter bridge. Structure is documented below.
Defines conditions on the source of a request causing this EgressPolicy to apply. Structure is documented below.
A list of identities that are allowed access through this ingress policy. Should be in the format of email address. The email address should represent individual user or service account only.
Sources that this IngressPolicy authorizes access from. Structure is documented below.
Defines the conditions on the ApiOperation and destination resources that cause this EgressPolicy to apply. Structure is documented below.
A list of external resources that are allowed to be accessed. A request matches if it contains an external resource in this list (Example: s3://bucket/path). Currently '*' is not allowed.
A list of ApiOperations the sources specified in corresponding IngressFrom are allowed to perform in this ServicePerimeter. Structure is documented below.
API methods or permissions to allow. Method or permission must belong to the service specified by serviceName field. A single MethodSelector entry with * specified for the method field will allow all methods AND permissions for the service specified in serviceName. Structure is documented below.
A list of GCP resources that are inside of the service perimeter. Currently only projects are allowed. Format: projects/{project_number}
List of IngressPolicies to apply to the perimeter. A perimeter may have multiple IngressPolicies, each of which is evaluated separately. Access is granted if any Ingress Policy grants it. Must be empty for a perimeter bridge. Structure is documented below.
Defines the conditions on the source of a request causing this IngressPolicy to apply. Structure is documented below.
A list of identities that are allowed access through this ingress policy. Should be in the format of email address. The email address should represent individual user or service account only.
Sources that this IngressPolicy authorizes access from. Structure is documented below.
Defines the conditions on the ApiOperation and request destination that cause this IngressPolicy to apply. Structure is documented below.
A list of ApiOperations the sources specified in corresponding IngressFrom are allowed to perform in this ServicePerimeter. Structure is documented below.
API methods or permissions to allow. Method or permission must belong to the service specified by serviceName field. A single MethodSelector entry with * specified for the method field will allow all methods AND permissions for the service specified in serviceName. Structure is documented below.
A list of GCP resources that are inside of the service perimeter. Currently only projects are allowed. Format: projects/{project_number}
A list of GCP resources that are inside of the service perimeter. Currently only projects are allowed. Format: projects/{project_number}
GCP services that are subject to the Service Perimeter restrictions. Must contain a list of services. For example, if storage.googleapis.com is specified, access to the storage buckets inside the perimeter must meet the perimeter's access restrictions.
Specifies how APIs are allowed to communicate within the Service Perimeter. Structure is documented below.
The list of APIs usable within the Service Perimeter. Must be empty unless enableRestriction is True.
ServicePerimeter configuration. Specifies sets of resources, restricted services and access levels that determine perimeter content and boundaries. Structure is documented below.
A list of AccessLevel resource names that allow resources within the ServicePerimeter to be accessed from the internet. AccessLevels listed must be in the same policy as this ServicePerimeter. Referencing a nonexistent AccessLevel is a syntax error. If no AccessLevel names are listed, resources within the perimeter can only be accessed via GCP calls with request origins within the perimeter. For Service Perimeter Bridge, must be empty. Format: accessPolicies/{policy_id}/accessLevels/{access_level_name}
List of EgressPolicies to apply to the perimeter. A perimeter may have multiple EgressPolicies, each of which is evaluated separately. Access is granted if any EgressPolicy grants it. Must be empty for a perimeter bridge. Structure is documented below.
Defines conditions on the source of a request causing this EgressPolicy to apply. Structure is documented below.
A list of identities that are allowed access through this ingress policy. Should be in the format of email address. The email address should represent individual user or service account only.
Sources that this IngressPolicy authorizes access from. Structure is documented below.
Defines the conditions on the ApiOperation and destination resources that cause this EgressPolicy to apply. Structure is documented below.
A list of external resources that are allowed to be accessed. A request matches if it contains an external resource in this list (Example: s3://bucket/path). Currently '*' is not allowed.
A list of ApiOperations the sources specified in corresponding IngressFrom are allowed to perform in this ServicePerimeter. Structure is documented below.
API methods or permissions to allow. Method or permission must belong to the service specified by serviceName field. A single MethodSelector entry with * specified for the method field will allow all methods AND permissions for the service specified in serviceName. Structure is documented below.
A list of GCP resources that are inside of the service perimeter. Currently only projects are allowed. Format: projects/{project_number}
List of IngressPolicies to apply to the perimeter. A perimeter may have multiple IngressPolicies, each of which is evaluated separately. Access is granted if any Ingress Policy grants it. Must be empty for a perimeter bridge. Structure is documented below.
Defines the conditions on the source of a request causing this IngressPolicy to apply. Structure is documented below.
A list of identities that are allowed access through this ingress policy. Should be in the format of email address. The email address should represent individual user or service account only.
Sources that this IngressPolicy authorizes access from. Structure is documented below.
Defines the conditions on the ApiOperation and request destination that cause this IngressPolicy to apply. Structure is documented below.
A list of ApiOperations the sources specified in corresponding IngressFrom are allowed to perform in this ServicePerimeter. Structure is documented below.
API methods or permissions to allow. Method or permission must belong to the service specified by serviceName field. A single MethodSelector entry with * specified for the method field will allow all methods AND permissions for the service specified in serviceName. Structure is documented below.
A list of GCP resources that are inside of the service perimeter. Currently only projects are allowed. Format: projects/{project_number}
A list of GCP resources that are inside of the service perimeter. Currently only projects are allowed. Format: projects/{project_number}
GCP services that are subject to the Service Perimeter restrictions. Must contain a list of services. For example, if storage.googleapis.com is specified, access to the storage buckets inside the perimeter must meet the perimeter's access restrictions.
Specifies how APIs are allowed to communicate within the Service Perimeter. Structure is documented below.
The list of APIs usable within the Service Perimeter. Must be empty unless enableRestriction is True.
Conditions of the resource.
service-perimeter
apiVersion: accesscontextmanager.gcp.upbound.io/v1beta1
kind: ServicePerimeter
metadata:
annotations:
meta.upbound.io/example-id: accesscontextmanager/v1beta1/serviceperimeter
upjet.upbound.io/manual-intervention: Requires organization level IAM permissions
labels:
testing.upbound.io/example-name: service-perimeter
name: service-perimeter
spec:
forProvider:
name: accessPolicies/${google_access_context_manager_access_policy.access-policy.name}/servicePerimeters/restrict_storage
parent: accessPolicies/${google_access_context_manager_access_policy.access-policy.name}
status:
- accessLevelsSelector:
matchLabels:
testing.upbound.io/example-name: access-level
restrictedServices:
- storage.googleapis.com
title: restrict_storage
service-perimeter-resource
apiVersion: accesscontextmanager.gcp.upbound.io/v1beta1
kind: ServicePerimeter
metadata:
annotations:
meta.upbound.io/example-id: accesscontextmanager/v1beta1/serviceperimeterresource
upjet.upbound.io/manual-intervention: Requires organization level IAM permissions
labels:
testing.upbound.io/example-name: service-perimeter-resource
name: service-perimeter-resource
spec:
forProvider:
name: accessPolicies/${google_access_context_manager_access_policy.access-policy.name}/servicePerimeters/restrict_all
parent: accessPolicies/${google_access_context_manager_access_policy.access-policy.name}
status:
- restrictedServices:
- storage.googleapis.com
title: restrict_all
© 2022 Upbound, Inc.
Discover the building blocksfor your internal cloud platform.