Assets sind Google Cloud-Ressourcen einer Organisation, z. B. Compute Engine-Instanzen oder Cloud Storage-Buckets.
In diesem Leitfaden erfahren Sie, wie Sie mit Security Command Center-Clientbibliotheken auf die eingestellten Einträge zugreifen, die im Security Command Center für die Assets in einem Projekt oder einer Organisation gespeichert sind.
In Security Command Center werden nur Daten zu einer Teilmenge der Assets in Cloud Asset Inventory gespeichert. Die vollständigste Liste der Assets in Ihrer Umgebung erhalten Sie, wenn Sie sie mit Cloud Asset Inventory auflisten.
Hier finden Sie weitere Informationen:
- Cloud Asset Inventory-Dienst zum Auflisten von Assets
- Unterstützte Asset-Typen in Security Command Center
Berechtigungsstufen für IAM-Rollen
IAM-Rollen für Security Command Center können auf Organisations-, Ordner- oder Projektebene gewährt werden. Ob Sie Ergebnisse, Assets und Sicherheitsquellen ansehen, bearbeiten, erstellen oder aktualisieren können, hängt davon ab, auf welcher Ebene Sie Zugriff erhalten. Weitere Informationen zu Security Command Center-Rollen finden Sie unter Zugriffssteuerung.
Hinweise
Bevor Sie eine Quelle einrichten, müssen Sie die folgenden Schritte ausführen:
Seitengröße
Alle Security Command Center-Listen-APIs sind paginiert. Jede Antwort gibt eine Seite mit Ergebnissen und ein Token zurück, um die nächste Seite zurückzugeben. Die Seitengröße kann konfiguriert werden. Die Standardseitengröße ist 10. Sie kann auf ein Minimum von 1 und maximal 1.000 festgelegt werden.
Ressourcentypen
Für das Attribut resourceType
in Security Command Center gilt eine andere Namenskonvention als für Cloud Asset Inventory. Eine Liste der Ressourcentypformate finden Sie unter Unterstützte Asset-Typen in Security Command Center.
Alle Assets auflisten
In diesen Beispielen wird gezeigt, wie alle Assets aufgelistet werden:
gcloud
Führen Sie den folgenden Befehl aus, um alle Assets in einem Projekt, Ordner oder einer Organisation aufzulisten:
gcloud scc assets list PARENT_ID
Ersetzen Sie PARENT_ID
durch einen der folgenden Werte:
- Eine Organisations-ID im folgenden Format:
ORGANIZATION_ID
(nur die numerische ID) - Eine Ordner-ID im folgenden Format:
folders/FOLDER_ID
- Eine Projekt-ID im folgenden Format:
projects/PROJECT_ID
Führen Sie den folgenden Befehl aus, um weitere Beispiele aufzurufen:
gcloud scc assets list --help
Beispiele finden Sie in der Dokumentation unter gcloud scc assets list.
Python
Java
Go
Node.js
Die Ausgabe für jedes Asset ist ein JSON-Objekt, das in etwa so aussieht:
asset:
createTime: '2020-10-05T17:55:14.823Z'
iamPolicy:
policyBlob: '{"bindings":[{"role":"roles/owner","members":["serviceAccount:SERVICE_ACCOUNT@PROJECT_ID.iam.gserviceaccount.com","user:USER_EMAIL@gmail.com"]}]}'
name: organizations/ORGANIZATION_ID/assets/ASSET_ID
resourceProperties:
createTime: '2020-10-05T17:36:17.915Z'
lifecycleState: ACTIVE
name: PROJECT_ID
parent: '{"id":"ORGANIZATION_ID","type":"organization"}'
projectId: PROJECT_ID
projectNumber: 'PROJECT_NUMBER'
securityCenterProperties:
resourceDisplayName: PROJECT_ID
resourceName: //cloudresourcemanager.googleapis.com/projects/PROJECT_NUMBER
resourceOwners:
- serviceAccount:SERVICE_ACCOUNT@PROJECT_ID.iam.gserviceaccount.com
- user:USER_EMAIL@gmail.com
resourceParent: //cloudresourcemanager.googleapis.com/organizations/ORGANIZATION_ID
resourceParentDisplayName: ORGANIZATION_NAME
resourceProject: //cloudresourcemanager.googleapis.com/projects/PROJECT_NUMBER
resourceProjectDisplayName: PROJECT_ID
resourceType: google.cloud.resourcemanager.Project
securityMarks:
name: organizations/ORGANIZATION_ID/assets/ASSET_ID/securityMarks
updateTime: '2020-10-05T17:55:14.823Z'
Assets filtern
Ein Projekt, ein Ordner oder eine Organisation kann viele Assets haben. Im vorherigen Beispiel werden keine Filter verwendet, daher werden alle Assets zurückgegeben. In Security Command Center können Sie Assetfilter verwenden, um Informationen zu bestimmten Assets abzurufen. Filter ähneln "where"-Klauseln in SQL-Anweisungen, außer dass sie statt für Spalten für die von der API zurückgegebenen Objekte gelten.
Die Beispielausgabe im vorherigen Beispiel zeigt einige Felder und Unterfelder sowie ihre Attribute, die in Asset-Filtern verwendet werden können. Security Command Center unterstützt vollständige JSON-Arrays und -Objekte als potenzielle Attributtypen. Sie können nach folgenden Kriterien filtern:
- Arrayelemente
- Vollständige JSON-Objekte mit partieller Stringübereinstimmung im Objekt
- Untergeordnete JSON-Objekt-Felder
Unterfelder müssen Zahlen, Strings oder boolesche Werte sein und Filterausdrücke müssen die folgenden Vergleichsoperatoren verwenden:
- Strings:
- Vollständige Gleichheit
=
- Teilstring, der mit
:
übereinstimmt
- Vollständige Gleichheit
- Nummern:
- Ungleichungen
<
,>
,<=
,>=
- Gleichheit
=
- Ungleichungen
- Boolesche Werte:
- Gleichheit
=
- Gleichheit
In den folgenden Beispielen werden Assets gefiltert:
gcloud
Verwenden Sie den folgenden Befehl, um Assets zu filtern:
gcloud scc assets list PARENT_ID --filter="FILTER"
Ersetzen Sie Folgendes:
FILTER
durch den Filter, den Sie verwenden möchten. Mit dem folgenden Filter werden beispielsweise nur Projektressourcen zurückgegeben:--filter="security_center_properties.resource_type=\"google.cloud.resourcemanager.Project\""
PARENT_ID
durch einen der folgenden Werte:- Eine Organisations-ID im folgenden Format:
ORGANIZATION_ID
(nur die numerische ID) - Eine Ordner-ID im folgenden Format:
folders/FOLDER_ID
- Eine Projekt-ID im folgenden Format:
projects/PROJECT_ID
- Eine Organisations-ID im folgenden Format:
Führen Sie den folgenden Befehl aus, um weitere Beispiele aufzurufen:
gcloud scc assets list --help
Beispiele finden Sie in der Dokumentation unter gcloud scc assets list.
Python
Java
Go
Node.js
Auflistung zu einem bestimmten Zeitpunkt
Die vorherigen Beispiele zeigen, wie die aktuellen Assets einer Organisation aufgelistet werden. Mit Security Command Center können Sie auch einen Verlauf des Snapshots der Assets aufrufen. In den folgenden Beispielen wird der Status aller Assets zu einem bestimmten Zeitpunkt zurückgegeben. Security Command Center unterstützt Millisekunden-Zeitlösungen.
gcloud
Mit dem folgenden Befehl können Sie Assets zu einem bestimmten Zeitpunkt auflisten:
gcloud scc assets list PARENT_ID --read-time="READ_TIME"
Ersetzen Sie Folgendes:
READ_TIME
mit der Zeit, zu der Assets aufgeführt werden sollen. Verwenden Sie das folgende Format:YYYY-MM-DDThh:mm:ss.ffffffZ
. Beispiel:--read-time="2022-12-21T07:00:06.861Z"
PARENT_ID
durch einen der folgenden Werte:- Eine Organisations-ID im folgenden Format:
ORGANIZATION_ID
(nur die numerische ID) - Eine Projekt-ID im folgenden Format:
projects/PROJECT_ID
- Eine Ordner-ID im folgenden Format:
folders/FOLDER_ID
- Eine Organisations-ID im folgenden Format:
Führen Sie den folgenden Befehl aus, um weitere Beispiele aufzurufen:
gcloud scc assets list --help
Beispiele finden Sie in der Dokumentation unter gcloud scc assets list.
Python
Java
Go
Node.js
Assets mit Statusänderungen auflisten
Mit Security Command Center können Sie ein Asset zu zwei Zeitpunkten vergleichen, um festzustellen, ob es im angegebenen Zeitraum hinzugefügt oder entfernt wurde oder vorhanden war. In den folgenden Beispielen werden Projekte, die zu READ_TIME
vorhanden sind, mit einem vorherigen Zeitpunkt verglichen, der durch COMPARE_DURATION
angegeben wird. COMPARE_DURATION
wird in Sekunden angegeben.
Wenn COMPARE_DURATION
festgelegt ist, wird das Attribut stateChange
in den Ergebnissen der Auflistung von Assets mit einem der folgenden Werte aktualisiert:
ADDED
: Das Asset war nicht zu Beginn voncompareDuration
, aber zureadTime
vorhanden.REMOVED
: Das Asset war zu Beginn voncompareDuration
, aber nicht zureadTime
vorhanden.ACTIVE
: Das Asset war sowohl am Anfang als auch am Ende des Zeitraums vorhanden, der durchcompareDuration
undreadTime
definiert ist.
gcloud
Mit dem folgenden Befehl können Sie den Status von Assets zu zwei Zeitpunkten vergleichen:
gcloud scc assets list PARENT_ID \ --filter="FILTER" \ --read-time=READ_TIME \ --compare-duration=COMPARE_DURATION
Ersetzen Sie Folgendes:
COMPARE_DURATION
mit einer Anzahl von Sekunden, die einen Zeitpunkt vor der Zeit definiert, die im Flag--read-time
angegeben ist. Beispiel:--compare-duration=84600s
FILTER
durch den Filter, den Sie verwenden möchten. Mit dem folgenden Filter werden beispielsweise nur Projektressourcen zurückgegeben:--filter="security_center_properties.resource_type=\"google.cloud.resourcemanager.Project\""
PARENT_ID
durch einen der folgenden Werte:- Eine Organisations-ID im folgenden Format:
ORGANIZATION_ID
(nur die numerische ID) - Eine Projekt-ID im folgenden Format:
projects/PROJECT_ID
- Eine Ordner-ID im folgenden Format:
folders/FOLDER_ID
- Eine Organisations-ID im folgenden Format:
READ_TIME
mit der Zeit, zu der Assets aufgeführt werden sollen. Verwenden Sie das folgende Format:YYYY-MM-DDThh:mm:ss.ffffffZ
. Beispiel: Weitere Beispiele:--read-time="2022-12-21T07:00:06.861Z"
gcloud scc assets list --help
Beispiele finden Sie in der Dokumentation unter gcloud scc assets list.
Python
Java
Go
Node.js
Beispiele für Filter
Im Folgenden finden Sie einige weitere nützliche Asset-Filter: Sie können AND
und OR
in Filtern verwenden, um Parameter zu kombinieren und Ergebnisse zu maximieren oder zu verfeinern.
Projekt-Assets mit einem bestimmten Inhaber finden
"security_center_properties.resource_type = \"google.cloud.resourcemanager.Project\" AND security_center_properties.resource_owners : \"$USER\""
$USER
hat normalerweise das Format user:someone@domain.com
. Für den Vergleich von user
wird der Teilstringoperator :
verwendet. Eine genaue Übereinstimmung ist nicht erforderlich.
Firewallregeln mit offenen HTTP-Ports
"security_center_properties.resource_type = \"google.compute.Firewall\" AND resource_properties.name =\"default-allow-http\""
Ressourcen, die zu bestimmten Projekten gehören
"security_center_properties.resource_parent = \"$PROJECT_1_NAME\" OR security_center_properties.resource_parent = \"$PROJECT_2_NAME\""
$PROJECT_1_NAME
und $PROJECT_2_NAME
sind Ressourcenkennungen in der Form //cloudresourcemanager.googleapis.com/projects/$PROJECT_ID
, wobei $PROJECT_ID
die Projektnummer ist. Ein vollständiges Beispiel wäre //cloudresourcemanager.googleapis.com/projects/100090906
.
Compute Engine-Images suchen, deren Namen einen bestimmten String enthalten
Dieser Filter gibt Compute Engine-Images zurück, die einen Teilstring "Debia" enthalten:
"security_center_properties.resource_type = \"google.compute.Image\" AND resource_properties.name : \"Debia\""
Ressourcen, deren Attribute Schlüssel/Wert-Paare enthalten
Dieser Filter gibt Cloud Storage-Buckets zurück, bei denen bucketPolicyOnly
deaktiviert ist. Der Wert von resourceProperties.iamConfiguration
wird als String codiert. Mit dem Zeichen \
maskieren Sie Sonderzeichen in Strings, einschließlich des Operators :
zwischen Schlüsselname und Wert.
"resourceProperties.iamConfiguration:"\"bucketPolicyOnly\"\:{\"enabled\"\:false""
Projekt-Assets suchen, die zu einem bestimmten Zeitpunkt oder vor einem bestimmten Zeitpunkt erstellt wurden
Diese Beispielfilter stimmen mit Assets überein, die am oder nach dem 18. Juli 2019 um 20:26:21 Uhr (GMT) erstellt wurden. Mit dem Filter create_time
können Sie die Zeit in den folgenden Formaten und Typen angeben:
Unix-Zeit (in Millisekunden) als Ganzzahlliteral
"create_time <= 1563481581000"
RFC 3339 als String-Literal
"create_time <= \"2019-07-18T20:26:21+00:00\""
Assets aus Ergebnissen ausschließen
Wenn Sie ein Asset aus den Ergebnissen ausschließen möchten, fügen Sie vor einem Parameter ein -
-Zeichen ein. Der Vorgang ähnelt der Verwendung des NOT-Operators in einer SQL-Anweisung.
Dieser Filter gibt alle Projektressourcen außer Debia
zurück:
"security_center_properties.resource_type = \"google.cloud.resourcemanager.Project\" AND -resource_properties.projectId = \"Debia\""
Nächste Schritte
Weitere Informationen zum Zugriff auf das Security Command Center mit einer Clientbibliothek