Wir stellen das Python-Paket und die CLI von Oblivious vor!

Feb 10 2023
‍Wir freuen uns, die Veröffentlichung unseres Python-Pakets bekannt zu geben, das in eine CLI integriert ist. Diese Version vereinfacht die Nutzung unserer OpenAPIs erheblich und verbessert den Kundenworkflow.

‍Wir freuen uns, die Veröffentlichung unseres Python-Pakets bekannt zu geben, das in eine CLI integriert ist. Diese Version vereinfacht die Nutzung unserer OpenAPIs erheblich und verbessert den Kundenworkflow.‍

Mit freundlicher Genehmigung von AbsolutVision auf Unsplash

Hintergrund

Lassen Sie uns etwas mehr über Oblivious sprechen , bevor wir fortfahren. Wir bei Oblivious arbeiten an der Verbesserung der Datenschutztechnologie und der Unterstützung bei der transparenten Verarbeitung vertraulicher Daten. Unsere Tools helfen Ihnen beim Erstellen und Bereitstellen von APIs mithilfe sicherer Enklaven auf Cloud-Plattformen. Unsere Dokumente erklären ausführlich, wie wir dasselbe erreichen. Unsere Tools können für die Bereitstellung auf zwei Arten verwendet werden: erstens über unsere Konsolen-Benutzeroberfläche und zweitens über unsere OpenAPIs .

Kurz gesagt: Mit unseren Tools können Sie ein Docker-Image erstellen und es in einer sicheren Enklave bereitstellen. Sie bieten außerdem einen sicheren Proxy, der es Ihnen ermöglicht, eine Verbindung zur Enklave herzustellen, ohne dem Host vertrauen zu müssen.

Diese Version soll eine einfachere Möglichkeit bieten, mit unseren OpenAPIs, mit unserem Python-Paket PyOblv und cli oblv-ctl .‍ , zu interagieren

PyOblv‍

PyOblv ist das Python-Paket, das alle von Oblivious beschriebenen OpenAPIs implementiert. Das Paket ermöglicht die Interaktion mit der API, ohne dass die Dokumentation gelesen oder die Implementierung verstanden werden muss. Es lässt sich problemlos in Ihre Anwendung integrieren und reduziert die Notwendigkeit, das Dashboard jedes Mal aufzurufen, wenn Sie eine Bereitstellung aufrufen möchten.‍

oblv-ctl‍

Wenn Sie PyOblv installieren , wird auch eine CLI installiert. Mit dem Befehl oblv-ctl können Sie alle im Paket definierten Vorgänge direkt über die Befehlszeile ausführen. Das Tool ist praktisch, wenn der Benutzer beim Aufruf der Oblv-APIs das Schreiben eines Skripts vermeiden möchte.‍

Einstieg

Um Ihre Reise mit Oblivious zu beginnen, können Sie sich bei Oblivious Console registrieren . Gehen Sie nach der Registrierung zum Einstellungsbildschirm. In den Einstellungen sehen Sie eine Option zum Generieren eines API-Schlüssels. Halten Sie diesen Schlüssel griffbereit.

Mit diesem Schlüssel können Sie sich über PyOblv und oblv-ctl authentifizieren und mit der Enklavenerstellung fortfahren.‍

Authentifizierung

Das Python-Skript wird wie unten gezeigt ausgeführt. Der generierte Client enthält alle Vorgänge, die Sie ausführen können.

from oblv import authenticate 
‍
client = authenticate(apikey=*your_api_key*)

oblv-ctl login *your_api_key*‍

from oblv import authenticate‍
client = authenticate (apikey=*your_api_key*) 
client.add_service(repo_owner="ObliviousAI", repo_name="FastAPI-Enclave-Services", ref="master")‍

  • base_image – Das Basis-Docker-Image. Es gibt einige Optionen, aus denen Sie wählen können.
  • oblv_ubuntu_18_04_proxy – Oblivious Services zusätzlich zu Ubuntu 18.04
  • oblv_ubuntu_18_04_proxy_nsm_api – Oblivious Services zusammen mit NSM API zusätzlich zu Ubuntu 18.04
  • oblv_ubuntu_18_04_proxy_python_3_8 – Oblivious Services zusammen mit Python 3.8 auf Ubuntu 18.04
  • oblv_ubuntu_18_04_proxy_nsm_api_python_3_8 – Oblivious Services zusammen mit Python 3.8 und NSM API zusätzlich zu Ubuntu 18.04
  • oblv_ubuntu_18_04_proxy_python_3_9 – Oblivious Services zusammen mit Python 3.9 auf Ubuntu 18.04
  • oblv_ubuntu_18_04_proxy_nsm_api_python_3_9 – Oblivious Services zusammen mit Python 3.9 und NSM API zusätzlich zu Ubuntu 18.04
  • oblv_ubuntu_18_04_proxy_node_14 – Oblivious Services zusammen mit NodeJs 14 auf Ubuntu 18.04
  • oblv_ubuntu_18_04_proxy_nsm_api_node_14 – Oblivious Services zusammen mit NodeJs 14 und NSM API zusätzlich zu Ubuntu 18.04
  • oblv_ubuntu_18_04_proxy_node_16 – Oblivious Services zusammen mit NodeJs 16 auf Ubuntu 18.04
  • oblv_ubuntu_18_04_proxy_nsm_api_node_16 – Oblivious Services zusammen mit NodeJs 16 und NSM API zusätzlich zu Ubuntu 18.04
  • oblv_ubuntu_18_04_proxy_node_18 – Oblivious Services zusammen mit NodeJs 18 auf Ubuntu 18.04
  • oblv_ubuntu_18_04_proxy_nsm_api_node_18 – Oblivious Services zusammen mit NodeJs 18 und NSM API zusätzlich zu Ubuntu 18.04
  • auth_name – Name der Authentifizierungsmethode.
  • auth_type – Der verwendete Authentifizierungstyp. Derzeit ist „signed_headers“ der einzige zulässige Wert
  • Rollenname – Name der Rolle.
  • Rollenbeschreibung – Beschreiben Sie die Funktionalität dieser Rolle.
  • Rollenkardinalität – Dies ist die Anzahl der Benutzer, die diese Rolle übernehmen können.
  • Role_auth – Stellt den zuvor definierten Authentifizierungsansatz dar, der zur Authentifizierung dieses Benutzers verwendet werden soll.
  • path – Der Pfad, der an die URL der übergeordneten Instanz angehängt werden soll. Zugriff – Durch Kommas getrennte Liste der Rollen, die Zugriff auf diesen Pfad haben (sie müssen in Rollen vorhanden sein)
  • short_description – Eine kurze Beschreibung der Pfadfunktionalität
  • name – Der Name des Build-Arguments
  • Typ – Typ des Arguments. Akzeptable Werte sind {Zahl, Zeichenfolge, Ganzzahl, Boolescher Wert}
  • require_arg – Zeigt an, ob dieses Argument für die Erstellung des Dienstes erforderlich oder optional ist. Es ist ein boolescher Wert.
  • eingehend – Eine Liste von Ports, auf denen eingehender Datenverkehr zugelassen werden soll. Jedes Objekt in der Liste sollte haben
  • name – Verkehrsname
  • Typ – Verkehrstyp. Es ist nur TCP erlaubt
  • port – Verkehrshafen
  • ausgehend – Ausgehender Datenverkehr von der Enklave zulässig. Lassen Sie die Liste leer, falls kein ausgehender Datenverkehr stattfindet. Jedes Objekt sollte Folgendes haben:
  • name – Verkehrsname
  • Typ – Verkehrstyp. Es ist nur TCP erlaubt
  • domain – Der FQDN-Teil der URL, auf den der Zugriff gewährt werden soll. Beispiel: console.oblivious.ai
  • port – Verkehrshafen
  • Autor – Name des Autors/der Autoren des Dienstes (durch Kommas getrennt)
  • author_email – E-Mail-Adresse des Autors/der Autoren des Dienstes (durch Kommas getrennt)
  • git – GIT-Quelle
  • version – Version des Dienstes (Major.Minor.Patch)
  • docs – Speicherort einer Markdown-Datei oder eines Markdown-Ordners mit mindestens einer Datei namens index.md
  • links_sec_ops – Array von Qualitätstoren für Sicherheit und Qualität‍

{
  "base_image": "oblv_ubuntu_18_04_proxy_nsm_api_python_3_8",
  "auth": [
    {
      "auth_name": "pkipsk",
      "auth_type": "signed_headers"
    }
  ],
  "roles": [
    {
      "role_auth": "pkipsk",
      "role_cardinality": 2,
      "role_description": "This is simply an example role for demonstration purposes",
      "role_name": "admin"
    }
  ],
  "paths": [
    {
      "access": "admin",
      "path": "/hello/",
      "short_description": "Hello world example"
    }
  ],
  "build_args": [
    {
      "name": "user_name",
      "type": "string",
      "required_arg": true
    }
  ],
  "traffic": {
    "inbound": [
      {
        "name": "inbound",
        "port": 80,
        "type": "tcp"
      }
   ],
  "outbound": [
    {
      "domain": "example.com",
      "name": "example",
      "port": 443,
      "type": "tcp"
    }
  ]
},
"meta": {
  "author": "Team Oblivious",
  "author_email": "[email protected]",
  "git": "https://github.com/ObliviousAI/FastAPI-Enclave-Services.git",
  "version": "0.1.0"
},
}

oblv-ctl service create [OPTIONS] REPO_OWNER REPO_NAME REF

  • –tag Wenn angegeben, wird die Referenz als Tag im Repository betrachtet.
  • –service-file Service.yaml-Datei im JSON-Format. Nicht erlaubt mit — Tag‍

Um eine Enklave zu erstellen, müssen Sie einige der Parameter festlegen -‍

  • Bereitstellungsname – Ein eindeutiger Bereitstellungsname. Sie können nicht zwei
    laufende Bereitstellungen mit demselben Namen haben.
  • Regionsname – könnte eine der AWS-Regionen sein
  • us-east-1 (Nord-Virginia)
  • us-west-2 (Oregon)
  • eu-central-1 (Frankfurt)
  • eu-west-2 (London)
  • Sichtbarkeit – privat oder öffentlich
  • is_dev_env – True oder False .
  • Tags – Eine Liste von Tags für Ihre Bereitstellung
  • account_type – Dies ist der VCS-Typ und
    derzeit wird nur GitHub*** unterstützt.
  • build_args – Für Ihre Bereitstellung spezifische Argumente. Dazu gehört das Hinzufügen von Benutzern zu ihren Rollen mit ihren öffentlichen Schlüsseln, Laufzeitargumenten und
    allen zusätzlichen Argumenten für Ihren Build. Darin ist auch die für die Bereitstellung erforderliche Infrastrukturgröße enthalten
    . Die Optionen sind -
  • c5.xlarge – CPU:4 RAM:8 GB – Kreditauslastung: 68,0/Std
  • m5.xlarge – CPU:4 RAM:16 GB – Credit-Nutzung:
    76,8/Std
  • r5.xlarge – CPU:4 RAM:32 GB – Kreditauslastung:
    100,8/Std
  • c5.2xlarge – CPU:8 RAM:16 GB – Kreditauslastung:
    136,0/Std
  • m5.2xlarge – CPU:8 RAM:32 GB – Kreditauslastung:
    153,6/h‍‍

args = {
  "users": {
    "admin": [
      "user_name": "<your name>",
      "public key": "<your publickey>"
    ]
  },
  "infra_reqs":"m5.xlarge"
}‍

from oblv.models import CreateDeploymentInput
input = CreateDeploymentInput(
  owner="ObliviousAI",
  repo="FastAPI-Enclave-Services",
  account_type="github", ref="master",
  region-name="us-east-1", deployment="Depl",
  visibility="private",
  is_dev_env=True,
  tags=[],
  build_args=args
)
deployment = client.create_deployment(input)‍

oblv-ctl deployment create [OPTIONS] REPO_OWNER REPO_NAME REF NAME

  • –public Wenn angegeben, wird die Bereitstellung öffentlich gemacht, andernfalls bleibt sie privat und für andere Benutzer nicht sichtbar.
  • –is-dev Legt die Umgebung der Bereitstellung als DEV fest
  • –region Region, in der die Enklave bereitgestellt wird. Zu den Optionen gehören [„us-east-1“ (Nord-Virginia), „us-west-2“ (Oregon), „eu-central-1“ (Frankfurt), „eu-west-2“ (London)] . Der Standardwert ist us-east-1
  • –args-file arguments Dateipfad für Enclave-Bereitstellung‍

‍Mit dem Python-Skript:

client.remove_deployment("<your_deployment_id>")

oblv-ctl deployment terminate DEPLOYMENT_ID‍

‍Unsere APIs befinden sich derzeit in der Alpha-Phase und werden regelmäßig aktualisiert, was zu häufigen Updates für unser Paket führt. Derzeit werden von PyOblv etwa 28 Operationen unterstützt, aber diese Zahl wird mit zukünftigen Versionen steigen, um mehr Unterstützung rund um die Enklaven zu bieten.

Wenn Sie weitere Erläuterungen benötigen oder uns Gedanken mitteilen möchten , können Sie uns gerne über Discord erreichen.‍
Wenn Sie zusätzliche Funktionswünsche oder Fehler haben, die wir beheben sollen, fügen Sie diese bitte hier hinzu !