AccessLevel is the Schema for the AccessLevels API. An AccessLevel is a label that can be applied to requests to GCP services, along with a list of requirements necessary for the label to be applied.
Type
CRD
Group
accesscontextmanager.gcp.upbound.io
Version
v1beta1
apiVersion: accesscontextmanager.gcp.upbound.io/v1beta1
kind: AccessLevel
AccessLevelSpec defines the desired state of AccessLevel
No description provided.
A set of predefined conditions for the access level and a combining function. Structure is documented below.
A set of requirements for the AccessLevel to be granted. Structure is documented below.
Device specific restrictions, all restrictions must hold for the Condition to be true. If not specified, all devices are allowed. Structure is documented below.
A list of allowed device management levels. An empty list allows all management levels. Each value may be one of: MANAGEMENT_UNSPECIFIED, NONE, BASIC, COMPLETE.
A list of allowed encryptions statuses. An empty list allows all statuses. Each value may be one of: ENCRYPTION_UNSPECIFIED, ENCRYPTION_UNSUPPORTED, UNENCRYPTED, ENCRYPTED.
A list of allowed OS versions. An empty list allows all types and all versions. Structure is documented below.
A list of CIDR block IP subnetwork specification. May be IPv4 or IPv6. Note that for a CIDR IP address block, the specified IP address portion must be properly truncated (i.e. all the host bits must be zero) or the input is considered malformed. For example, "192.0.2.0/24" is accepted but "192.0.2.1/24" is not. Similarly, for IPv6, "2001:db8::/32" is accepted whereas "2001:db8::1/32" is not. The originating IP of a request must be in one of the listed subnets in order for this Condition to be true. If empty, all IP addresses are allowed.
An allowed list of members (users, service accounts). Using groups is not supported yet. The signed-in user originating the request must be a part of one of the provided members. If not specified, a request may come from any user (logged in/not logged in, not present in any groups, etc.). Formats: user:{emailid}, serviceAccount:{emailid}
The request must originate from one of the provided countries/regions. Format: A valid ISO 3166-1 alpha-2 code.
A list of other access levels defined in the same Policy, referenced by resource name. Referencing an AccessLevel which does not exist is an error. All access levels listed must be granted for the Condition to be true. Format: accessPolicies/{policy_id}/accessLevels/{short_name}
The request must originate from one of the provided VPC networks in Google Cloud. Cannot specify this field together with ip_subnetworks. Structure is documented below.
Sub networks within a VPC network. Structure is documented below.
CIDR block IP subnetwork specification. Must be IPv4.
Custom access level conditions are set using the Cloud Common Expression Language to represent the necessary conditions for the level to apply to a request. See CEL spec at: https://github.com/google/cel-spec. Structure is documented below.
Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. This page details the objects and attributes that are used to the build the CEL expressions for custom access levels - https://cloud.google.com/access-context-manager/docs/custom-access-level-spec. Structure is documented below.
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.
A set of predefined conditions for the access level and a combining function. Structure is documented below.
A set of requirements for the AccessLevel to be granted. Structure is documented below.
Device specific restrictions, all restrictions must hold for the Condition to be true. If not specified, all devices are allowed. Structure is documented below.
A list of allowed device management levels. An empty list allows all management levels. Each value may be one of: MANAGEMENT_UNSPECIFIED, NONE, BASIC, COMPLETE.
A list of allowed encryptions statuses. An empty list allows all statuses. Each value may be one of: ENCRYPTION_UNSPECIFIED, ENCRYPTION_UNSUPPORTED, UNENCRYPTED, ENCRYPTED.
A list of allowed OS versions. An empty list allows all types and all versions. Structure is documented below.
A list of CIDR block IP subnetwork specification. May be IPv4 or IPv6. Note that for a CIDR IP address block, the specified IP address portion must be properly truncated (i.e. all the host bits must be zero) or the input is considered malformed. For example, "192.0.2.0/24" is accepted but "192.0.2.1/24" is not. Similarly, for IPv6, "2001:db8::/32" is accepted whereas "2001:db8::1/32" is not. The originating IP of a request must be in one of the listed subnets in order for this Condition to be true. If empty, all IP addresses are allowed.
An allowed list of members (users, service accounts). Using groups is not supported yet. The signed-in user originating the request must be a part of one of the provided members. If not specified, a request may come from any user (logged in/not logged in, not present in any groups, etc.). Formats: user:{emailid}, serviceAccount:{emailid}
The request must originate from one of the provided countries/regions. Format: A valid ISO 3166-1 alpha-2 code.
A list of other access levels defined in the same Policy, referenced by resource name. Referencing an AccessLevel which does not exist is an error. All access levels listed must be granted for the Condition to be true. Format: accessPolicies/{policy_id}/accessLevels/{short_name}
The request must originate from one of the provided VPC networks in Google Cloud. Cannot specify this field together with ip_subnetworks. Structure is documented below.
Sub networks within a VPC network. Structure is documented below.
CIDR block IP subnetwork specification. Must be IPv4.
Custom access level conditions are set using the Cloud Common Expression Language to represent the necessary conditions for the level to apply to a request. See CEL spec at: https://github.com/google/cel-spec. Structure is documented below.
Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. This page details the objects and attributes that are used to the build the CEL expressions for custom access levels - https://cloud.google.com/access-context-manager/docs/custom-access-level-spec. Structure is documented below.
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.
AccessLevelStatus defines the observed state of AccessLevel.
No description provided.
A set of predefined conditions for the access level and a combining function. Structure is documented below.
A set of requirements for the AccessLevel to be granted. Structure is documented below.
Device specific restrictions, all restrictions must hold for the Condition to be true. If not specified, all devices are allowed. Structure is documented below.
A list of allowed device management levels. An empty list allows all management levels. Each value may be one of: MANAGEMENT_UNSPECIFIED, NONE, BASIC, COMPLETE.
A list of allowed encryptions statuses. An empty list allows all statuses. Each value may be one of: ENCRYPTION_UNSPECIFIED, ENCRYPTION_UNSUPPORTED, UNENCRYPTED, ENCRYPTED.
A list of allowed OS versions. An empty list allows all types and all versions. Structure is documented below.
A list of CIDR block IP subnetwork specification. May be IPv4 or IPv6. Note that for a CIDR IP address block, the specified IP address portion must be properly truncated (i.e. all the host bits must be zero) or the input is considered malformed. For example, "192.0.2.0/24" is accepted but "192.0.2.1/24" is not. Similarly, for IPv6, "2001:db8::/32" is accepted whereas "2001:db8::1/32" is not. The originating IP of a request must be in one of the listed subnets in order for this Condition to be true. If empty, all IP addresses are allowed.
An allowed list of members (users, service accounts). Using groups is not supported yet. The signed-in user originating the request must be a part of one of the provided members. If not specified, a request may come from any user (logged in/not logged in, not present in any groups, etc.). Formats: user:{emailid}, serviceAccount:{emailid}
The request must originate from one of the provided countries/regions. Format: A valid ISO 3166-1 alpha-2 code.
A list of other access levels defined in the same Policy, referenced by resource name. Referencing an AccessLevel which does not exist is an error. All access levels listed must be granted for the Condition to be true. Format: accessPolicies/{policy_id}/accessLevels/{short_name}
The request must originate from one of the provided VPC networks in Google Cloud. Cannot specify this field together with ip_subnetworks. Structure is documented below.
Sub networks within a VPC network. Structure is documented below.
CIDR block IP subnetwork specification. Must be IPv4.
Custom access level conditions are set using the Cloud Common Expression Language to represent the necessary conditions for the level to apply to a request. See CEL spec at: https://github.com/google/cel-spec. Structure is documented below.
Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. This page details the objects and attributes that are used to the build the CEL expressions for custom access levels - https://cloud.google.com/access-context-manager/docs/custom-access-level-spec. Structure is documented below.
Conditions of the resource.
access-level
apiVersion: accesscontextmanager.gcp.upbound.io/v1beta1
kind: AccessLevel
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: access-level
name: access-level
spec:
forProvider:
basic:
- conditions:
- devicePolicy:
- osConstraints:
- osType: DESKTOP_CHROME_OS
requireScreenLock: false
regions:
- CH
- IT
- US
name: accessPolicies/${google_access_context_manager_access_policy.access-policy.name}/accessLevels/chromeos_no_lock
parent: accessPolicies/${google_access_context_manager_access_policy.access-policy.name}
title: chromeos_no_lock
access-level
apiVersion: accesscontextmanager.gcp.upbound.io/v1beta1
kind: AccessLevel
metadata:
annotations:
meta.upbound.io/example-id: accesscontextmanager/v1beta1/accesslevel
upjet.upbound.io/manual-intervention: Requires organization level IAM permissions
labels:
testing.upbound.io/example-name: access-level
name: access-level
spec:
forProvider:
basic:
- conditions:
- devicePolicy:
- osConstraints:
- osType: DESKTOP_CHROME_OS
requireScreenLock: true
regions:
- CH
- IT
- US
name: accessPolicies/${google_access_context_manager_access_policy.access-policy.name}/accessLevels/chromeos_no_lock
parent: accessPolicies/${google_access_context_manager_access_policy.access-policy.name}
title: chromeos_no_lock
access-level-service-account
apiVersion: accesscontextmanager.gcp.upbound.io/v1beta1
kind: AccessLevel
metadata:
annotations:
meta.upbound.io/example-id: accesscontextmanager/v1beta1/accesslevelcondition
upjet.upbound.io/manual-intervention: Requires organization level IAM permissions
labels:
testing.upbound.io/example-name: access-level-service-account
name: access-level-service-account
spec:
forProvider:
basic:
- conditions:
- devicePolicy:
- osConstraints:
- osType: DESKTOP_CHROME_OS
requireScreenLock: true
regions:
- CH
- IT
- US
name: accessPolicies/${google_access_context_manager_access_policy.access-policy.name}/accessLevels/chromeos_no_lock
parent: accessPolicies/${google_access_context_manager_access_policy.access-policy.name}
title: chromeos_no_lock
© 2022 Upbound, Inc.
Discover the building blocksfor your internal cloud platform.