Zum Inhalt springen

Zugriff auf Ihre Observability-Instanz steuern

Observability ist ein Service, der über das Internet verfügbar ist und somit grundsätzlich für jeden erreichbar ist.
Wenn Sie den Zugriff auf eine Observability-Instanz auf einen bestimmten Adressbereich beschränken möchten, können Sie hierfür eine Zugriffskontrollliste (Access Control List, ACL) in der Observability API hinterlegen.

Anschließend verhindert ein IP-Filter den Zugriff von anderen Internetadressen auf Ihre Observability-Instanz.
Der Zugriff wird für die folgenden Ports geregelt:

  • Grafana
  • Metriken
  • Logs
  • Traces

Diese ACL filtert den Zugriff ausschließlich für diese eine Instanz. Wenn Sie mit mehreren Instanzen arbeiten, müssen Sie die ACL auch für alle weiteren Instanzen erstellen.

Um auf das API-Gateway zuzugreifen, benötigen Sie ein Service Account, das über das Portal erstellt werden kann.

Adressbereiche werden im Classless-Inter-Domain-Routing-(CIDR-)Format angegeben.
Die Standard-CIDR ist zu Beginn immer 0.0.0.0/0. Dadurch ist der vollständige Zugriff erlaubt.

Ausgabe der aktuellen ACL-Konfiguration:

Terminal-Fenster
curl --location --request GET \
  'https://argus.api.stackit.cloud/v1/projects/{projectid}/instances/{instanceid}/acl' \
  --header 'accept: application/json' \
  --header 'Authorization: Bearer {service_account_token}'
{"message":"Successfully got acl","acl":[]}

Die ACL muss immer vollständig neu geschrieben werden, auch wenn sich nur ein einzelner Wert geändert hat:

Terminal-Fenster
curl --location --request PUT \
  'https://argus.api.stackit.cloud/v1/projects/{projectid}/instances/{instanceid}/acl' \
  --header 'accept: application/json' \
  --header 'Authorization: Bearer {service_account_token}' \
  --header 'Content-Type: application/json'
  -data '{
  "acl": [
    "192.168.1.0/24",
    "193.248.122.0/24",
    "193.218.22.0/28"
  ]
}'
{"message":"Successfully updated acl"}

Die ACL kann mit folgendem Befehl gelöscht werden:

Terminal-Fenster
curl --location --request PUT \
  'https://argus.api.stackit.cloud/v1/projects/{projectid}/instances/{instanceid}/acl' \
  --header 'accept: application/json' \
  --header 'Authorization: Bearer {service_account_token}' \
  --header 'Content-Type: application/json'
  -data '{
  "acl": []
}'
{"message":"Successfully updated acl"}