In diesem Thema wird die Unterstützung für das Filtern in den folgenden Aufrufen zur Ressourcenauflistung in Secret Manager erläutert:
Nutzung
Der Filter-Intent in einem list
-Vorgang wird durch das Vorhandensein des Stringfelds filter
im Auflistungsanfragetext angegeben. Die API verwendet eine einfache Sprache, um auf die Felder in dem Objekt zu verweisen, das gefiltert wird.
In den folgenden Beispielen wird davon ausgegangen, dass eine Teilmenge von Secrets entweder „geheim“ oder „bsecret“ Teilzeichenfolge verwendet werden. Geben Sie einen Filter an, der diesen Secrets entspricht. Die Ergebnisse werden in aufsteigender Reihenfolge nach Name sortiert.
gcloud
Filter werden mit dem Flag --filter
angegeben. Wenn der Filter ein Leerzeichen oder ein anderes Sonderzeichen enthält, müssen Sie dieses in Anführungszeichen setzen.
gcloud secrets list --filter="name:asecret OR name:bsecret"
Die Google Cloud CLI unterstützt auch reguläre Ausdrücke (Regex), z. B.:
gcloud secrets list --filter='name ~ "secret_ab.*"'
API
In diesen Beispielen wird curl verwendet, um die Verwendung mit der API zu demonstrieren. Sie können Zugriffstokens mit gcloud auth print-access-token generieren. In Compute Engine oder GKE müssen Sie sich mit dem Bereich cloud-platform authentifizieren.
Filter werden als filter
-Abfragestringparameter angegeben und müssen URL-codiert sein. Der Filter name:asecret OR name:bsecret
wäre beispielsweise als name%3Aasecret+OR+name%3Absecret
URL-codiert.
curl "https://secretmanager.googleapis.com/v1/projects/PROJECT_ID/secrets?filter=FILTER" \
--request "GET" \
--header "Authorization: Bearer ACCESS_TOKEN"
Reguläre Ausdrücke werden in der API nicht unterstützt.
Beispiele
Szenario | Filter |
---|---|
Secrets, deren Name den Teilstring "mysecret" enthält |
name:mysecret |
Secrets mit einem bestimmten Label | labels.environment=production |
Secrets, die innerhalb des Datums-/Zeitbereichs erstellt wurden | create_time<2021-01-01T06:00:00Z AND create_time>2021-01-01T12:00:00Z |
Secrets mit automatischer Replikation | replication.automatic:* |
Secrets mit vom Nutzer verwalteter Replikation, die aber in keiner der angegebenen Regionen gespeichert sind | replication.user_managed.replicas.location:* AND NOT replication.user_managed.replicas.location:(us-central1 OR us-east1) |
Mit CMEK-Schlüsseln verschlüsselte Secrets | replication.user_managed.replicas.customerManagedEncryption:* |
Secrets, die mit einem bestimmten CMEK-Schlüssel verschlüsselt wurden | replication.user_managed.replicas.customerManagedEncryption.kmsKeyName=projects/p/locations/us-central1/keyRings/kr/cryptoKeys/my-cmek-key |
Secrets ohne Rotationszeitraum | NOT rotation.next_rotation_time:* |
Secrets mit einem Rotationszeitraum > 30 d | rotation.rotation_period>259200s |
Secrets mit festgelegtem Ablauf | expire_time:* |
Secrets, die vor einem Datum ablaufen | expire_time<2021-07-31 |
Aktivierte oder deaktivierte Versionen | state:(ENABLED OR DISABLED) |
Nach dem Datum gelöschte Versionen | state:DESTROYED AND destroy_time>2021-01-01 |
Filtersyntax
Die Filtersyntax besteht aus einem Ausdruck für ein oder mehrere Felder der zu filternden Objekte.
Sie können die folgenden Operatoren verwenden.
Operator | Beschreibung |
---|---|
= |
Gleich. |
> |
Größer als. |
< |
Kleiner als. |
>= |
Größer als oder gleich. |
<= |
Kleiner als oder gleich. |
!= - NOT |
Ungleich. Folgendes ist äquivalent:name!="topsecret" -name="topsecret" NOT name="topsecret"
|
: |
Eingrenzung. Dies ist ein Teilstring-Abgleich, bei dem die Groß- und Kleinschreibung nicht berücksichtigt wird.
Beispielsweise filtert |
AND |
Logisches UND.
Ein Leerzeichen ist gleichbedeutend mit |
OR |
Logisches ODER. |
* |
Platzhalter.
Kann eigenständig verwendet werden, wobei |
In Übereinstimmung mit der Cloud Search API hat OR
standardmäßig Vorrang vor AND
.
Klammern können verwendet werden, um die gewünschte Vorgangspriorität anzugeben.
Wenn Sie nach time
-Werten filtern, codieren Sie die Zeit als String im
RFC 3399
Format wie 2020-10-15T01:30:15Z
.
Verwenden Sie für den Zugriff auf ein untergeordnetes Feld die Punktsyntax. Die Ressource Secret
kann beispielsweise das Feld labels
enthalten, dessen Wert ein Schlüssel/Wert-Paar map
ist.
Wenn ein color
-Label verwendet wird, können Sie Secret
-Ergebnisse so nach dem Unterfeld labels.color
filtern:
labels.color=red
Wenn Sie nur Secrets mit dem Label color
auflisten möchten, verwenden Sie einen Platzhalter:
labels.color:*
Ein String in Anführungszeichen wird als einzelner Wert und nicht als Folge von Werten interpretiert.
Felder filtern
Sie können nach einem beliebigen Feld des Objekts Secret
oder SecretVersion
filtern.
List-Methode | Link zu filterbaren Feldern |
---|---|
projects.secrets.list
|
Secret-Felder |
projects.secrets.versions.list
|
SecretVersion-Felder |
Gesamtzahl der Ergebnisse
Wenn filter
in einer Auflistungsanfrage festgelegt ist, gibt die Antwort nicht die Gesamtzahl der Ergebnisse (total_size=0
in der Antwort) an.
Nächste Schritte
- Weitere Informationen zum Bearbeiten von Secrets
- Hier erfahren Sie, wie Sie ein Ablaufdatum für ein Secret festlegen.