- Print
- DarkLight
UpdateAccessRestrictionConfig
- Print
- DarkLight
Availability
Early Access: Planned; date not yet confirmed
Early Access is gated; contact the Backblaze Sales team for access.
Limited Availability: Planned; date not yet confirmed
This API is available only to customers with access to the Backblaze Enterprise Web Console. For more information, contact the Backblaze Sales team.
Update the access restriction configuration for a Service Principal
Supported updateMask values:
ipRestriction- updates both child fieldsipRestriction.enforce- updates enforcement flag onlyipRestriction.allowedCidrRanges- replaces the entire list of allowed ranges
Semantics
- Updating
ipRestriction.allowedCidrRangesreplaces the entire list. Supplying an empty list removes all entries. - At most 250 CIDR entries may be configured.
- If enforcement is enabled while
allowedCidrRangesis empty, all authentication requests for that Service Principal are denied. name,etag, andupdateTimemay be included in PATCH bodies for compatibility but are ignored.- A service principal cannot enable IP restrictions that would block the source IP address of the current request. Other authorized callers may configure restrictions that prevent that service principal from authenticating, including configurations that deny all access.
- CIDR entries are normalized before being returned. Examples:
192.0.2.10→192.0.2.10/32;2001:db8::1→2001:db8::1/128;192.0.2.10/24→192.0.2.0/24.
Short-lived bearer token obtained from GET /orgs/v1/authorize. Sent as Authorization - Bearer .
The numeric identifier of the account. Valid account IDs match 9[0-4][0-9]{10}.
The identifier of the service principal.
Comma-separated list of fields to update. Supported values - ipRestriction, ipRestriction.enforce, ipRestriction.allowedCidrRanges. If omitted, all fields present in the request body are updated.
{
"ipRestriction": {
"enforce": true,
"allowedCidrRanges": [
"192.0.2.0/24",
"2001:db8::/48"
]
}
}When false, the allowlist is stored but not applied during authentication. When true, authentication is allowed only from listed ranges; an empty list denies all authentication requests for the Service Principal.
Allowed source IP addresses and CIDR ranges. IPv4 and IPv6 are both supported. Maximum 250 entries. CIDR entries are normalized in responses.
The request succeeded.
{
"name": "accounts/942733365851/servicePrincipals/2/accessRestrictionConfig",
"ipRestriction": {
"enforce": true,
"allowedCidrRanges": [
"192.0.2.0/24",
"2001:db8::/48"
]
},
"etag": "CwYk3M1L9q2=",
"updateTime": "2026-05-15T19:00:00Z"
}When false, the allowlist is stored but not applied during authentication. When true, authentication is allowed only from listed ranges; an empty list denies all authentication requests for the Service Principal.
Allowed source IP addresses and CIDR ranges. IPv4 and IPv6 are both supported. Maximum 250 entries. CIDR entries are normalized in responses.
The request was malformed or failed validation.
| HTTP Status | Code | Description |
|---|---|---|
| 400 | INVALID_ARGUMENT | One or more request parameters were invalid. |
Opaque correlation identifier matching the Request-Id response header. Include in support requests.
Numeric error code.
Human-readable description of the error.
Reserved for structured, non-sensitive diagnostic information related to the error condition.
The request was not authenticated.
| HTTP Status | Code | Description |
|---|---|---|
| 401 | UNAUTHORIZED | Missing, expired, or invalid bearer token. |
Opaque correlation identifier matching the Request-Id response header. Include in support requests.
Numeric error code.
Human-readable description of the error.
Reserved for structured, non-sensitive diagnostic information related to the error condition.
The caller is not authorized to perform this operation.
| HTTP Status | Code | Description |
|---|---|---|
| 403 | FORBIDDEN | The authenticated principal lacks permission for this action. |
Opaque correlation identifier matching the Request-Id response header. Include in support requests.
Numeric error code.
Human-readable description of the error.
Reserved for structured, non-sensitive diagnostic information related to the error condition.
The requested resource was not found.
| HTTP Status | Code | Description |
|---|---|---|
| 404 | NOT_FOUND | The resource does not exist or has been purged. |
Opaque correlation identifier matching the Request-Id response header. Include in support requests.
Numeric error code.
Human-readable description of the error.
Reserved for structured, non-sensitive diagnostic information related to the error condition.
The request conflicted with the current state of the resource.
| HTTP Status | Code | Description |
|---|---|---|
| 409 | CONFLICT | etag mismatch, resource already exists, or precondition failed. |
Opaque correlation identifier matching the Request-Id response header. Include in support requests.
Numeric error code.
Human-readable description of the error.
Reserved for structured, non-sensitive diagnostic information related to the error condition.
The request was rate-limited.
| HTTP Status | Code | Description |
|---|---|---|
| 429 | TOO_MANY_REQUESTS | Rate limit exceeded. Use exponential backoff. |
Opaque correlation identifier matching the Request-Id response header. Include in support requests.
Numeric error code.
Human-readable description of the error.
Reserved for structured, non-sensitive diagnostic information related to the error condition.
The server encountered an unexpected condition.
| HTTP Status | Code | Description |
|---|---|---|
| 500 | INTERNAL | Unexpected server error. Include the requestId when contacting support. |
Opaque correlation identifier matching the Request-Id response header. Include in support requests.
Numeric error code.
Human-readable description of the error.
Reserved for structured, non-sensitive diagnostic information related to the error condition.