Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 21 additions & 0 deletions SECURITY.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
Kesig777@gmail.com Ownership rights that prevents others CIS to access or use# Security Policy

Comment thread
Kesig777 marked this conversation as resolved.
## Supported Versions

Use this section to tell people about which versions of your project are
currently being supported with security updates.

| Version | Supported |
| ------- | ------------------ |
| 5.1.x | :white_check_mark: |
| 5.0.x | :x: |
| 4.0.x | :white_check_mark: |
| < 4.0 | :x: |

## Reporting a Vulnerability

Use this section to tell people how to report a vulnerability.

Tell them where to go, how often they can expect to get an update on a
reported vulnerability, what to expect if the vulnerability is accepted or
declined, etc.
27 changes: 21 additions & 6 deletions aip/auth/4114.md
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ endpoint override is an mTLS url, since the url pattern may change at anytime.
The default mTLS endpoint for a service **should** be read from the Discovery
Document field **"mtlsRootUrl"** instead of generated via regex patterns.

### Obtaining the Default Device Certificate
### Obtaining the Default Device Certificate via SecureConnect

The default device certificate **should** be procured using the
[EndpointVerification][1] workflow, which fetches the certificate from a
Expand Down Expand Up @@ -100,6 +100,18 @@ the form of an X.509 cert followed immediately by the private key:
...
-----END PRIVATE KEY-----

### Obtaining the Default Device Certificate via ECP

The Enterprise Certificate Proxy (ECP) project is the newly recommended way to
procure device certificates. It has two major advantages compared to the legacy
SecureConnect mechanism:

1. Allows usage of enterprise certs and private keys stored in native keystores and TPMs
instead of relying on self-signed certs.
1. Delegates signing operations to keystores, so private keys never leave the security realm.

Please see [ECP Public Documentation][2] for details on ECP configuration.

### Environment Variables

There are situations where the ADC for DCA behavior needs to be modified, such
Expand All @@ -114,13 +126,16 @@ available. The default value of this environment variable will be "auto".
**GOOGLE_API_USE_CLIENT_CERTIFICATE**: If **"true"**, device certificate
authentication will be supported as described in the general guidance. If
**"false"**, the device certificate **must** not be used, even if specified by
the user. For now, the default value will be "false", since mTLS support is not
yet fully adopted by all services. Users who wish to enable DCA feature **must**
explicitly set this environment variable to "true". In the future, the default
value will be "true' to allow a more secure connection to be established
whenever possible.
the user. The default value **should** be "true" as of May 3, 2024. Users who
wish to disable DCA feature **must** explicitly set this environment variable
to "false".

## Changelog

- **2024-11-25*: GOOGLE_API_USE_CLIENT_CERTIFICATE should default to "true" as of May 3, 2024.

<!-- prettier-ignore-start -->
[0]: https://google.aip.dev/auth/4110
[1]: https://cloud.google.com/endpoint-verification/docs/overview
[2]: https://cloud.google.com/beyondcorp-enterprise/docs/enable-cba-enterprise-certificates
<!-- prettier-ignore-end -->
12 changes: 9 additions & 3 deletions aip/general/0151.md
Original file line number Diff line number Diff line change
Expand Up @@ -120,9 +120,13 @@ has elapsed after the operation completed.
Errors that prevent a long-running operation from _starting_ **must** return an
error response ([AIP-193][]), similar to any other method.

Errors that occur over the course of an operation **may** be placed in the
metadata message. The errors themselves **must** still be represented with a
[google.rpc.Status][] object.
Operations that fail during their execution phase **must** return an
error response ([AIP-193][]), placed in the `Operation.error` [google.rpc.Status][]
field.

Non-terminal errors that occur over the course of an operation **may** be placed
in the metadata message and the field(s) **must** be [AIP-193][] compliant
[google.rpc.Status][].

### Backwards compatibility

Expand Down Expand Up @@ -163,6 +167,8 @@ updated status) but server don't need to maintain any additional state.

## Changelog

- **2025-02-04**: Clarified error propagation behavior for failures
that occur during long-running operations.
- **2024-04-23**: Provided pattern for validation on RPCs returning
long-running operations.
- **2022-05-31**: Added compatibility section.
Expand Down