Oblivious の Python パッケージと CLI を紹介します。
私たちは、cli と統合された Python パッケージのリリースを発表できることを嬉しく思います。このリリースでは、OpenAPI の使用が大幅に容易になり、顧客のワークフローが改善されます。
バックグラウンド
次に進む前に、 Obliviousについてもう少し詳しく説明しましょう。私たち Oblivious は、プライバシー技術を強化し、機密データの透過的な処理を支援することに取り組んでいます。当社のツールは、クラウド プラットフォーム上で安全なエンクレーブを使用して API を構築およびデプロイするのに役立ちます。私たちのドキュメントでは、同じことをどのように達成するかについて詳しく説明しています。当社のツールは 2 つの方法で導入に使用できます。1 つはコンソール UI経由、もう 1 つはOpenAPI経由です。
つまり、私たちのツールを使用すると、Docker イメージを構築し、それを安全なエンクレーブにデプロイすることができます。また、ホストを信頼する必要なくエンクレーブに接続できる安全なプロキシも提供します。
このリリースでは、Python パッケージPyOblvおよび cli oblv-ctlを使用して、OpenAPI と対話する簡単な方法を提供します。
PyOblv
PyOblv は、 Oblivious で記述されたすべての OpenAPI を実装する Python パッケージです。このパッケージを使用すると、ドキュメントを読んだり実装を理解したりする必要がなくても、API と対話できます。アプリケーションと簡単に統合できるため、デプロイメントを開始するたびにダッシュボードにアクセスする必要性が減ります。
oblv-ctl
PyOblv をインストールすると、CLI もインストールされます。oblv-ctlコマンドを使用すると、パッケージに定義されているすべての操作をコマンド ラインから直接実行できます。このツールは、ユーザーが Oblv API を呼び出すときにスクリプトの作成を避けたい場合に便利です。
入門
Oblivious の旅を始めるには、Oblivious Consoleに登録できます。登録が完了したら設定画面に移ります。設定には、API キーを生成するオプションが表示されます。このキーを手元に置いておいてください。
このキーを使用すると、PyOblv および oblv-ctl 経由で自分自身を認証し、エンクレーブの作成を続行できます。
認証
Python スクリプトは以下のように進みます。生成されたクライアントには、実行できるすべての操作が含まれています。
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 — 基本の Docker イメージ。選択できるオプションがいくつかあります。
- oblv_ubuntu_18_04_proxy — Ubuntu 18.04 上の Oblivious サービス
- oblv_ubuntu_18_04_proxy_nsm_api — Ubuntu 18.04 上の Oblivious サービスと NSM API
- oblv_ubuntu_18_04_proxy_python_3_8 — Ubuntu 18.04 上の Oblivious Services と Python 3.8
- oblv_ubuntu_18_04_proxy_nsm_api_python_3_8 — Ubuntu 18.04 上の Oblivious サービスと Python 3.8 および NSM API
- oblv_ubuntu_18_04_proxy_python_3_9 — Ubuntu 18.04 上の Oblivious Services と Python 3.9
- oblv_ubuntu_18_04_proxy_nsm_api_python_3_9 — Ubuntu 18.04 上の Oblivious サービスと Python 3.9 および NSM API
- oblv_ubuntu_18_04_proxy_node_14 — Ubuntu 18.04 上の NodeJs 14 と Oblivious サービス
- oblv_ubuntu_18_04_proxy_nsm_api_node_14 — Ubuntu 18.04 上の NodeJs 14 および NSM API を備えた Oblivious サービス
- oblv_ubuntu_18_04_proxy_node_16 — Ubuntu 18.04 上の NodeJs 16 と Oblivious サービス
- oblv_ubuntu_18_04_proxy_nsm_api_node_16 — Ubuntu 18.04 上の NodeJs 16 および NSM API を備えた Oblivious サービス
- oblv_ubuntu_18_04_proxy_node_18 — Ubuntu 18.04 上の NodeJs 18 と Oblivious サービス
- oblv_ubuntu_18_04_proxy_nsm_api_node_18 — Ubuntu 18.04 上の NodeJs 18 および NSM API を備えた Oblivious サービス
- auth_name — 認証方法の名前。
- auth_type — 使用される認証のタイプ。現時点では、許可される値はsigned_headersのみです
- role_name — ロールの名前。
- role_description — このロールの機能を説明します。
- role_cardinality — これは、このロールを引き受けることができるユーザーの数です。
- role_auth — このユーザーの認証に使用される、以前に定義された認証アプローチを表します。
- path — 親インスタンス URL に追加されるパス。access — このパスにアクセスできるロールのカンマ区切りのリスト (ロール内に存在する必要があります)
- short_description — パス機能の簡単な説明
- name — ビルド引数の名前
- type — 引数のタイプ。使用できる値は {数値、文字列、整数、ブール値} です。
- required_arg — この引数がサービスの構築に必須であるかオプションであるかを示します。これはブール値です。
- bound — 受信トラフィックが許可されるポートのリスト。リスト内の各オブジェクトには次のものが必要です
- name — トラフィック名
- type — トラフィック タイプ。TCPのみが許可されます
- port — トラフィック ポート
- outbound — エンクレーブからのアウトバウンド トラフィックが許可されます。送信トラフィックがない場合は、空のリストのままにしておきます。各オブジェクトには次のものが必要です -
- name — トラフィック名
- type — トラフィック タイプ。TCPのみが許可されます
- ドメイン— アクセスを許可する URL の FQDN 部分。例: console.oblivious.ai
- port — トラフィック ポート
- author — サービスの作成者の名前 (カンマ区切り)
- author_email — サービスの作成者の電子メール (カンマ区切り)
- git — GIT ソース
- version — サービスのバージョン (Major.Minor.Patch)
- docs — マークダウン ファイル、または少なくとも 1 つのindex.mdという名前のファイルを含むマークダウンのフォルダーの場所
- links_sec_ops — セキュリティと品質のための品質ゲートの配列
{
"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指定すると、ref はリポジトリ上のタグとみなされます。
- –service-file JSON 形式の Service.yaml ファイル。— タグは使用できません
エンクレーブを作成するには、いくつかのパラメーターを決定する必要があります -
- deployment_name — 一意のデプロイメント名。
同じ名前の2 つのデプロイメントを実行することはできません。 - region_name — の AWS リージョンの 1 つである可能性があります。
- us-east-1 (バージニア北部)
- us-west-2 (オレゴン州)
- eu-central-1 (フランクフルト)
- eu-west-2 (ロンドン)
- 可視性-プライベートまたはパブリック
- is_dev_env — TrueまたはFalse。
- tags — デプロイメントのタグのリスト
- account_type — これは VCS タイプであり、
現時点では GitHub*** のみがサポートされています。 - build_args — デプロイメントに固有の引数。
これには、公開キー、実行時引数、ビルドの追加引数を使用してユーザーをロールに追加することが含まれます。
これには、展開に必要なインフラストラクチャのサイズも含まれます。オプションは次のとおりです - - c5.xlarge — CPU:4 RAM:8 GB — クレジット使用率: 68.0/時
- m5.xlarge — CPU:4 RAM:16 GB — クレジット使用率:
76.8/時 - r5.xlarge — CPU:4 RAM:32 GB — クレジット使用量:
100.8/時 - c5.2xlarge — CPU:8 RAM:16 GB — クレジット使用率:
136.0/時 - m5.2xlarge — CPU:8 RAM:32 GB — クレジット使用量:
153.6/hr
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指定した場合、デプロイメントは公開されます。それ以外の場合は非公開のままで、他のユーザーには表示されません。
- –is-devデプロイメントの環境を DEV として設定します
- –regionエンクレーブがデプロイされるリージョン。オプションには [「us-east-1」 (バージニア北部)、「us-west-2」 (オレゴン)、「eu-central-1」 (フランクフルト)、「eu-west-2」 (ロンドン)] が含まれます。 。デフォルト値はus-east-1です
- –args-fileエンクレーブ デプロイメントの引数ファイル パス
Python スクリプトの場合:
client.remove_deployment("<your_deployment_id>")
oblv-ctl deployment terminate DEPLOYMENT_ID
当社の API は現在アルファ版であり、定期的に更新されるため、パッケージも頻繁に更新されます。現在、PyOblv でサポートされている操作は約 28 ありますが、エンクレーブ周辺でのサポートをさらに提供するために、将来のリリースではこの数が増加する予定です。
追加の説明が必要な場合、または共有したい考えがある場合は、お気軽にDiscordまでご連絡ください。
追加の機能リクエストや対処してほしいバグがある場合は、ここに追加してください。

![とにかく、リンクリストとは何ですか?[パート1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































