Oblivious' Python Paketi ve CLI ile Tanışın!

Feb 10 2023
Bir cli ile entegre edilmiş Python paketimizin yayınlandığını duyurmaktan heyecan duyuyoruz. Bu sürüm, OpenAPI'lerimizin kullanımını önemli ölçüde kolaylaştırır ve müşteri iş akışını iyileştirir.

Bir cli ile entegre edilmiş Python paketimizin yayınlandığını duyurmaktan heyecan duyuyoruz. Bu sürüm, OpenAPI'lerimizin kullanımını önemli ölçüde kolaylaştırır ve müşteri iş akışını iyileştirir.‍

Unsplash'ta AbsolutVision'ın İzniyle

Arka plan

Devam etmeden önce Oblivious hakkında biraz daha konuşalım . Oblivious olarak gizlilik teknolojisini geliştirmek ve gizli verilerin şeffaf bir şekilde işlenmesine yardımcı olmak için çalışıyoruz. Araçlarımız, bulut platformlarında güvenli yerleşim birimleri kullanarak API'ler oluşturmanıza ve dağıtmanıza yardımcı olur. Dokümanlarımız , aynı şeyi nasıl başardığımızı ayrıntılı olarak açıklıyor. Araçlarımız dağıtım için iki şekilde kullanılabilir; ilk olarak Konsol kullanıcı arabirimimiz aracılığıyla ve ikincisi OpenAPI'lerimiz aracılığıyla .

Kısacası, araçlarımız bir liman işçisi görüntüsü oluşturmanıza ve onu güvenli bir yerleşim bölgesine dağıtmanıza olanak tanır. Ayrıca ana bilgisayara güvenmenize gerek kalmadan yerleşim bölgesine bağlanmanıza izin veren güvenli bir proxy sunarlar.

Bu sürüm, python paketimiz PyOblv ve cli oblv-ctl ile OpenAPI'lerimizle etkileşim kurmanın daha kolay bir yolunu sağlamak içindir .

PyOblv‍

PyOblv , Oblivious tarafından açıklanan tüm OpenAPI'leri uygulayan python paketidir. Paket, belgeleri okumaya veya uygulamayı anlamaya gerek kalmadan API ile etkileşime izin verir. Uygulamanızla kolayca entegre edilebilir ve bir dağıtımı gündeme getirmek istediğinizde kontrol panelini ziyaret etme ihtiyacını azaltır.‍

oblv-ctl‍

PyOblv'yi kurduğunuzda , ayrıca bir CLI kurulur. oblv-ctl komutu, pakette tanımlanan tüm işlemleri doğrudan komut satırından yürütmenize izin verecektir. Araç, kullanıcı Oblv API'lerini çağırırken bir komut dosyası yazmaktan kaçınmak istediğinde kullanışlıdır.‍

Başlarken

Oblivious ile yolculuğunuza başlamak için Oblivious Console'a kayıt olabilirsiniz . Kaydolduktan sonra, ayarlar ekranına gidin. Ayarlarda, bir API Anahtarı oluşturma seçeneği göreceksiniz. Bu anahtarı el altında bulundurun.

Bu anahtarla, PyOblv ve oblv-ctl yoluyla kimliğinizi doğrulayabilir ve yerleşim bölgesi oluşturmaya devam edebilirsiniz.‍

Kimlik doğrulama‍

Python betiği aşağıda gösterildiği gibi ilerleyecektir. Oluşturulan istemci, gerçekleştirebileceğiniz tüm işlemleri içerir.

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 — Temel docker görüntüsü. Aralarından seçim yapabileceğiniz birkaç seçenek var.
  • oblv_ubuntu_18_04_proxy — Ubuntu 18.04'ün üstünde Unutulmaz Hizmetler
  • oblv_ubuntu_18_04_proxy_nsm_api — Ubuntu 18.04'ün üstünde NSM API ile birlikte Oblivious Services
  • oblv_ubuntu_18_04_proxy_python_3_8 — Oblivious Services, Ubuntu 18.04 üzerine Python 3.8 ile birlikte
  • oblv_ubuntu_18_04_proxy_nsm_api_python_3_8 — Oblivious Services, Python 3.8 ve Ubuntu 18.04 üzerine NSM API ile birlikte
  • oblv_ubuntu_18_04_proxy_python_3_9 — Oblivious Services, Ubuntu 18.04 üzerine Python 3.9 ile birlikte
  • oblv_ubuntu_18_04_proxy_nsm_api_python_3_9 — Oblivious Services, Python 3.9 ve Ubuntu 18.04 üzerine NSM API ile birlikte
  • oblv_ubuntu_18_04_proxy_node_14 — Ubuntu 18.04 üzerinde NodeJs 14 ile birlikte Oblivious Services
  • oblv_ubuntu_18_04_proxy_nsm_api_node_14 — Oblivious Services, NodeJs 14 ve Ubuntu 18.04 üzerinde NSM API ile birlikte
  • oblv_ubuntu_18_04_proxy_node_16 — Ubuntu 18.04 üzerinde NodeJs 16 ile birlikte Oblivious Services
  • oblv_ubuntu_18_04_proxy_nsm_api_node_16 — Oblivious Services, NodeJs 16 ve Ubuntu 18.04 üzerine NSM API ile birlikte
  • oblv_ubuntu_18_04_proxy_node_18 — Ubuntu 18.04 üzerinde NodeJs 18 ile birlikte Oblivious Services
  • oblv_ubuntu_18_04_proxy_nsm_api_node_18 — Oblivious Services, NodeJs 18 ve Ubuntu 18.04 üzerinde NSM API ile birlikte
  • auth_name — Kimlik doğrulama yönteminin adı.
  • auth_type — Kullanılan kimlik doğrulama türü. Şimdilik izin verilen tek değersigned_headers
  • role_name — Rolün adı.
  • role_description — Bu rolün işlevselliğini açıklayın.
  • role_cardinalite — Bu, bu rolü üstlenebilecek kullanıcı sayısıdır.
  • role_auth — Bu kullanıcının kimliğini doğrulamak için kullanılacak önceden tanımlanmış kimlik doğrulama yaklaşımını temsil eder.
  • yol — Üst örnek URL'sine eklenecek yol. erişim — Bu yola erişimi olan rollerin virgülle ayrılmış listesi (rollerde bulunmaları gerekir)
  • short_description — Yol işlevinin kısa bir açıklaması
  • name — Yapı bağımsız değişkeninin adı
  • type — Bağımsız değişkenin türü. Kabul edilebilir değerler: {number, string, integer, boolean}
  • gerekli_arg — Hizmeti oluşturmak için bu bağımsız değişkenin gerekli mi yoksa isteğe bağlı mı olduğunu gösterir. Bu bir boole değeridir.
  • gelen — Gelen trafiğe izin verilecek bağlantı noktalarının listesi. Listedeki her nesnenin sahip olması gereken
  • ad — Trafik Adı
  • tür — Trafik Türü. Yalnızca TCP'ye izin verilir
  • bağlantı noktası — Trafik bağlantı noktası
  • giden — Yerleşim bölgesinden giden trafiğe izin verilir. Giden trafik olmaması durumunda boş bir liste olarak bırakın. Her nesnenin sahip olması gereken -
  • ad — Trafik Adı
  • tür — Trafik Türü. Yalnızca TCP'ye izin verilir
  • etki alanı — Erişime izin vermek için URL'nin FQDN kısmı. Örnek: console.oblivious.ai
  • bağlantı noktası — Trafik bağlantı noktası
  • yazar — Hizmetin yazar(lar)ının adı (virgülle ayrılmış)
  • Author_email — Hizmetin yazar(lar)ının e-postası (virgülle ayrılmış)
  • git — GIT Kaynağı
  • version — Hizmetin sürümü (Major.Minor.Patch)
  • docs — Bir işaretleme dosyasının veya index.md adlı en az bir dosya içeren işaretleme klasörünün konumu
  • links_sec_ops — Güvenlik ve kalite için kalite kapıları dizisi‍

{
  "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 Sağlanırsa, ref, havuzda bir etiket olarak kabul edilir.
  • –service-file Service.yaml dosyası JSON biçimindedir. — tag‍ ile izin verilmez

Bir yerleşim bölgesi oluşturmak için birkaç parametreye karar vermeniz gerekir -‍

  • dağıtım_adı — Benzersiz bir dağıtım adı.
    Aynı ada sahip iki çalışan dağıtımınız olamaz .
  • bölge_adı — AWS bölgelerinden biri olabilir
  • us-east-1 (K. Virginia)
  • us-west-2 (Oregon)
  • eu-merkezi-1 (Frankfurt)
  • ab-batı-2 (Londra)
  • görünürlük - özel veya genel
  • is_dev_env — Doğru veya Yanlış .
  • etiketler — Dağıtımınız için etiketlerin listesi
  • account_type — Bu, VCS türüdür ve
    şimdilik yalnızca GitHub*** desteklenmektedir.
  • build_args — Dağıtımınıza özel bağımsız değişkenler.
    Kullanıcıları ortak anahtarları, çalışma zamanı bağımsız değişkenleri ve yapınız için herhangi bir ek bağımsız değişkenle rollerine eklemeyi içerir .
    Ayrıca dağıtım için gereken altyapı boyutunu da içerir . Seçenekler:
  • c5.xlarge — CPU:4 RAM:8 GB — Kredi Kullanımı: 68,0/saat
  • m5.xlarge — CPU:4 RAM:16 GB — Kredi Kullanımı:
    76,8/saat
  • r5.xlarge — CPU:4 RAM:32 GB — Kredi Kullanımı:
    100,8/saat
  • c5.2xlarge — CPU:8 RAM:16 GB — Kredi Kullanımı:
    136.0/sa
  • m5.2xlarge — CPU:8 RAM:32 GB — Kredi Kullanımı:
    153.6/sa‍‍

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 Sağlanırsa dağıtım herkese açık hale getirilir, aksi takdirde özel kalır ve diğer kullanıcılar tarafından görülmez.
  • –is-dev Dağıtım ortamını DEV olarak ayarlar
  • –bölge Enklavın konuşlandırılacağı bölge. Seçenekler şunlardır: [“us-east-1” (K. Virginia), “us-west-2” (Oregon), “eu-central-1” (Frankfurt), “eu-west-2” (Londra)] . Varsayılan değer us-east-1'dir.
  • –args-file bağımsız değişkenleri, yerleşim yeri konuşlandırması için dosya yolu‍

Python betiği ile:

client.remove_deployment("<your_deployment_id>")

oblv-ctl deployment terminate DEPLOYMENT_ID‍

API'lerimiz şu anda alfa sürümünde ve düzenli güncellemeler alıyor, bu da paketimizin sık sık güncellenmesine neden oluyor. Şu anda PyOblv tarafından desteklenen yaklaşık 28 operasyon var, ancak yerleşim bölgelerinde daha fazla destek sağlamak için bu sayı gelecekteki sürümlerle artacaktır.

Ek açıklamalara ihtiyaç duyarsanız veya paylaşmak istediğiniz düşünceleriniz varsa, lütfen Discord'da bize ulaşmaktan çekinmeyin .
Ele almamızı istediğiniz herhangi bir ek özellik talebiniz veya hatanız varsa, lütfen bunları buraya ekleyin !