Apresentando o Oblivious' Python Package and CLI!
Temos o prazer de anunciar o lançamento do nosso pacote Python, integrado a um cli. Esta versão facilita significativamente o uso de nossas OpenAPIs e melhora o fluxo de trabalho do cliente.
Fundo
Vamos falar um pouco mais sobre Oblivious , antes de prosseguir. Nós da Oblivious trabalhamos para aprimorar a tecnologia de privacidade e ajudar no processamento transparente de dados confidenciais. Nossas ferramentas ajudam você a criar e implantar APIs usando enclaves seguros em plataformas de nuvem. Nossos documentos explicam em detalhes como conseguimos o mesmo. Nossas ferramentas podem ser usadas para implantação de duas maneiras: primeiro, por meio de nossa interface do usuário do console e, segundo, por meio de nossas OpenAPIs .
Resumindo, nossas ferramentas permitem que você crie uma imagem docker e a implante em um enclave seguro. Eles também oferecem um proxy seguro que permite que você se conecte ao enclave sem precisar confiar no host.
Esta versão é para fornecer uma maneira mais fácil de interagir com nossas OpenAPIs, com nosso pacote python PyOblv e cli oblv-ctl .
PyOblv
PyOblv é o pacote python que implementa todas as OpenAPIs descritas por Oblivious. O pacote permite a interação com a API sem a necessidade de ler a documentação ou entender a implementação. Ele pode ser facilmente integrado ao seu aplicativo e reduzir a necessidade de visitar o painel sempre que você quiser abrir uma implantação.
oblv-ctl
Ao instalar o PyOblv , você também obtém uma CLI instalada. O comando oblv-ctl permitirá executar todas as operações definidas no pacote diretamente da linha de comando. A ferramenta é útil quando o usuário deseja evitar escrever um script ao chamar as APIs Oblv.
Começando
Para iniciar sua jornada com o Oblivious, você pode se registrar no Oblivious Console . Uma vez registrado, vá para a tela de configurações. Nas configurações, você verá uma opção para gerar uma chave de API. Mantenha esta chave à mão.
Com esta chave, você pode se autenticar via PyOblv e oblv-ctl e prosseguir com a criação do enclave.
Autenticação
O script python seguirá em frente conforme mostrado abaixo. O cliente gerado contém todas as operações que você pode executar.
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 — A imagem base do docker. Existem algumas opções que você pode escolher.
- oblv_ubuntu_18_04_proxy — Serviços inconscientes sobre o Ubuntu 18.04
- oblv_ubuntu_18_04_proxy_nsm_api — Serviços Oblivious junto com a API NSM sobre o Ubuntu 18.04
- oblv_ubuntu_18_04_proxy_python_3_8 — Oblivious Services junto com o Python 3.8 sobre o Ubuntu 18.04
- oblv_ubuntu_18_04_proxy_nsm_api_python_3_8 — Serviços Oblivious junto com Python 3.8 e NSM API sobre o Ubuntu 18.04
- oblv_ubuntu_18_04_proxy_python_3_9 — Oblivious Services junto com o Python 3.9 sobre o Ubuntu 18.04
- oblv_ubuntu_18_04_proxy_nsm_api_python_3_9 — Serviços Oblivious junto com Python 3.9 e NSM API sobre o Ubuntu 18.04
- oblv_ubuntu_18_04_proxy_node_14 — Serviços Oblivious junto com NodeJs 14 no topo do Ubuntu 18.04
- oblv_ubuntu_18_04_proxy_nsm_api_node_14 — Serviços Oblivious junto com NodeJs 14 e NSM API sobre o Ubuntu 18.04
- oblv_ubuntu_18_04_proxy_node_16 — Serviços Oblivious junto com NodeJs 16 no topo do Ubuntu 18.04
- oblv_ubuntu_18_04_proxy_nsm_api_node_16 — Serviços Oblivious junto com NodeJs 16 e NSM API sobre o Ubuntu 18.04
- oblv_ubuntu_18_04_proxy_node_18 — Serviços Oblivious junto com NodeJs 18 no topo do Ubuntu 18.04
- oblv_ubuntu_18_04_proxy_nsm_api_node_18 — Serviços Oblivious junto com NodeJs 18 e NSM API sobre o Ubuntu 18.04
- auth_name — Nome do método de autenticação.
- auth_type — O tipo de autenticação usado. Por enquanto, o único valor permitido é assinado_cabeçalhos
- role_name — Nome da função.
- role_description — Descreva a funcionalidade desta função.
- role_cardinality — Este é o número de usuários que podem assumir esta função.
- role_auth — Representa a abordagem de autenticação definida anteriormente a ser usada para autenticar esse usuário.
- path — O caminho a ser anexado ao URL da instância pai. access — Lista separada por vírgulas de funções que têm acesso a este caminho (devem existir em funções)
- short_description — Uma breve descrição da funcionalidade do caminho
- name — O nome do argumento de compilação
- type — Tipo do argumento. Os valores aceitáveis são {number, string, integer, boolean}
- required_arg — Mostra se este argumento é obrigatório ou opcional para construir o serviço. É um valor booleano.
- de entrada — Uma lista de portas nas quais o tráfego de entrada deve ser permitido. Cada objeto na lista deve ter
- nome — Nome do Tráfego
- tipo — Tipo de tráfego. Somente TCP é permitido
- porta — porta de tráfego
- outbound — Tráfego de saída permitido do enclave. Deixe-a como uma lista vazia caso não haja tráfego de saída. Cada objeto deve ter -
- nome — Nome do Tráfego
- tipo — Tipo de tráfego. Somente TCP é permitido
- domínio — A parte FQDN da URL para permitir o acesso. Exemplo: console.oblivious.ai
- porta — porta de tráfego
- author — Nome do(s) autor(es) do serviço (separados por vírgula)
- author_email — E-mail do(s) autor(es) do serviço (separados por vírgula)
- git — Fonte GIT
- version — Versão do serviço (Major.Minor.Patch)
- docs — Localização de um arquivo markdown ou pasta de markdown com pelo menos um arquivo chamado index.md
- links_sec_ops — Matriz de portões de qualidade para segurança e qualidade
{
"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 Se fornecido, o ref é considerado uma tag no repositório.
- –service-file Arquivo Service.yaml no formato JSON. Não permitido com — tag
Para criar um enclave, você precisa decidir sobre alguns dos parâmetros -
- deployment_name — Um nome de implantação exclusivo. Você não pode ter duas
implantações em execução com o mesmo nome. - region_name — pode ser uma das regiões da AWS de
- us-east-1 (N. Virgínia)
- us-west-2 (Oregon)
- eu-central-1 (Frankfurt)
- eu-west-2 (Londres)
- visibilidade - privada ou pública
- is_dev_env — Verdadeiro ou Falso .
- tags — Uma lista de tags para sua implantação
- account_type — Este é o tipo VCS, e apenas o GitHub*** é
suportado por enquanto. - build_args — Argumentos específicos para sua implantação. Inclui adicionar usuários às suas funções com suas chaves públicas, argumentos de tempo de execução e
quaisquer argumentos adicionais para sua construção. Também inclui o
tamanho de infra necessário para a implantação. As opções são - - c5.xlarge — CPU:4 RAM:8 GB — Utilização de crédito: 68,0/h
- m5.xlarge — CPU:4 RAM:16 GB — Utilização de crédito:
76,8/h - r5.xlarge — CPU:4 RAM:32 GB — Utilização de crédito:
100,8/h - c5.2xlarge — CPU:8 RAM:16 GB — Utilização de crédito:
136,0/h - m5.2xlarge — CPU:8 RAM:32 GB — Utilização de crédito:
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 Se fornecido, a implantação se torna pública, caso contrário, ela permanece privada e não visível para outros usuários.
- –is-dev Define o ambiente da implantação como DEV
- –region Região onde o enclave será implantado. As opções incluem [“us-east-1” (N. Virginia), “us-west-2” (Oregon), “eu-central-1” (Frankfurt), “eu-west-2” (Londres)] . O valor padrão é us-east-1
- –Args-file argumentos caminho do arquivo para implantação do enclave
Com o script python:
client.remove_deployment("<your_deployment_id>")
oblv-ctl deployment terminate DEPLOYMENT_ID
Nossas APIs estão atualmente em alfa e recebem atualizações regulares, resultando em atualizações frequentes para nosso pacote. Existem cerca de 28 operações suportadas pelo PyOblv agora, mas esse número aumentará com versões futuras para fornecer mais suporte nos enclaves.
Se você precisar de esclarecimentos adicionais ou tiver alguma ideia para compartilhar, sinta-se à vontade para entrar em contato conosco pelo Discord .
Se você tiver quaisquer solicitações de recursos adicionais ou bugs que gostaria que resolvêssemos, adicione-os aqui !





































![O que é uma lista vinculada, afinal? [Parte 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)