Kit SDK pour Python

Le kit SDK Oracle Cloud Infrastructure pour Python vous permet d'écrire du code afin de gérer des ressources Oracle Cloud Infrastructure.

Ce kit SDK et cet exemple sont concédés sous double licence : Universal Permissive License 1.0 et Apache 2.0. Le contenu tiers fait l'objet d'une licence distincte comme décrit dans le code.

Téléchargement : le kit SDK pour Python est disponible sur GitHub ou sur PyPi (Python Package Index).

Documentation de référence : disponible sur docs.cloud.oracle.com.

Conseil

Cloud Shell : le kit SDK pour Python est préconfiguré avec vos informations d'identification et prêt à être utilisé immédiatement à partir de Cloud Shell. Pour plus d'informations sur l'utilisation du kit SDK pour Python à partir de Cloud Shell, reportez-vous à Démarrage rapide du kit SDK pour Python avec Cloud Shell.

Image Oracle Linux Cloud Developer : le kit SDK pour Python est préinstallé sur l'image de plate-forme Oracle Linux Cloud Developer. Pour plus d'informations, reportez-vous à Oracle Linux Cloud Developer.

Services pris en charge

  • Access Governance
  • Account Management
  • AI Anomaly Detection
  • AI Language
  • AI Speech
  • AI Vision
  • Analytics Cloud
  • annonces
  • API Gateway
  • Application Dependency Management
  • Application Management
  • Application Performance Monitoring
  • Audit
  • Autonomous Recovery
  • Mise à l'échelle automatique (Compute)
  • Bastion
  • Big Data Service
  • Plate-forme Blockchain
  • Budgets
  • Build
  • Cache OCI
  • Certificats
  • Cloud Bridge
  • Cloud Migrations
  • Compute Cloud@Customer
  • Compute Instance Agent (Agent Oracle Cloud)
  • Container Engine for Kubernetes
  • Instances de conteneur
  • Gestion du contenu
  • Services de base (Networking, Compute, Block Volume)
  • Cloud Guard
  • Cloud Migrations
  • Groupes de placement de cluster
  • Connector Hub
  • Console Dashboard
  • Catalogue de données
  • Flux de données
  • Data Integration
  • Data Labeling
  • Data Safe
  • Data Science
  • Transfert de données
  • Base de données
  • Database Management
  • Database Migration
  • Outils de base de données
  • Signal de demande
  • DevOps
  • Assistant numérique
  • Digital Media
  • Disaster Recovery
  • DNS
  • Document Understanding
  • Livraison par courriel
  • Enterprise Manager Warehouse
  • Evénements
  • Exadata Fleet Update
  • Stockage de fichier
  • Functions
  • Fusion Applications as a Service
  • IA générative
  • Inférence d'IA générative
  • Artefacts génériques
  • Base de données à distribution globale
  • GoldenGate
  • Règles de gouvernance
  • Vérifications de l'état
  • IAM
  • Domaines d'identité
  • Integration Cloud
  • Java Management
  • Téléchargements de Java Management Service
  • Gestion des clés (pour le service Vault)
  • License Manager
  • Limits
  • Equilibreur de charge
  • Journalisation
  • Logging Analytics
  • Logging Search
  • Logging Ingestion
  • Managed Access
  • Management Agent Cloud
  • Tableau de bord de gestion
  • Marché
  • Offre privée Marketplace
  • Surveillance
  • HeatWave
  • Network Firewall
  • Equilibrage de charge réseau
  • Network Monitoring
  • Topologie réseau
  • NoSQL Database Cloud
  • Notifications
  • Object Storage
  • OCI Control Center
  • OCI Registry
  • OneSubscription
  • Operations Insights
  • Operator Access Control
  • Optimiseur
  • Organisations
  • Gestion des systèmes d'exploitation
  • OS Management Hub
  • PostgreSQL
  • Process Automation
  • Éditeur
  • Queue Service
  • Quotas
  • Gestionnaire de ressources
  • Programmateur de ressources
  • Roving Edge Infrastructure
  • Rechercher
  • Gestion des clés secrètes (pour le service Vault)
  • Sécuriser les bureaux
  • Catalogue de services
  • Service Mesh
  • Gestion du code source
  • Stack Monitoring
  • Streaming
  • Gestion du support
  • Informations sur les menaces
  • Syntaxe
  • Visual Builder
  • VMware Solution
  • Vulnerability Scanning
  • Web Application Acceleration and Security
  • Demandes de travail (Compute, Database)

Prise en charge de Python

Versions Python et systèmes d'exploitation pris en charge

Ce tableau répertorie les versions de Python prises en charge par le kit SDK OCI pour Python pour chaque système d'exploitation :

Système d'exploitation Versions Python prises en charge pour l'interface de ligne de commande
CentOS 7 3.6 à 3.9
CentOS 8 3.6 à 3.9
Oracle Autonomous Linux 7.9 3.6 à 3.9
Oracle Linux 7.8 3.6 à 3.9
Oracle Linux 7.9 3.6 à 3.9
Oracle Linux 8 3.6 à 3.11
Oracle Linux 9 3.7 à 3.11
Ubuntu 18.0.4 3.6 à 3.11
Ubuntu 20.0.4 3.6 à 3.11
Windows Desktop 10 et 11 3.6 à 3.11
Windows Server (2012/2016/2019) 3.6 à 3.11

Les versions plus récentes de Python peuvent ne pas être prises en charge immédiatement. Le kit SDK OCI pour Python peut fonctionner sur des systèmes d'exploitation non répertoriés, mais nous ne testons pas leur compatibilité.

Installation à l'aide de YUM

Si vous utilisez Oracle Linux 7 ou 8, vous pouvez vous servir de YUM afin d'installer le kit SDK OCI pour Python.

L'exemple suivant montre comment utiliser YUM afin d'installer le kit SDK OCI pour Python 3.6 :

sudo yum install python36-oci-sdk

Cet exemple montre comment utiliser YUM afin d'installer le kit SDK OCI pour Python 2.7 :

sudo yum install python-oci-sdk

Cryptage côté client

Le cryptage côté client vous permet de crypter les données côté client avant de les stocker en local ou de les utiliser avec d'autres services Oracle Cloud Infrastructure.

Pour utiliser le cryptage côté client, vous devez créer une clé de cryptage maître (MEK) à l'aide du service Key Management. Pour ce faire, vous pouvez utiliser l'opération CreateKey ou ImportKey.

La clé MEK permet de générer une clé de cryptage de données (DEK) utilisée pour crypter chaque charge utile. Une copie cryptée de cette clé DEK (sous la clé MEK) et d'autres métadonnées sont incluses dans la charge utile cryptée renvoyée par les kits SDK en vue d'être utilisées pour le décryptage.

Exemples

L'exemple de code suivant montre comment crypter une chaîne :



import oci
 
# user supplied vars
vault_id = TEST_VAULT_OCID
master_key_id = TEST_MASTER_KEY_ID
data_to_encrypt_bytes = b"This is a secret message"
 
config = oci.config.from_file()
kms_master_key = oci.encryption.KMSMasterKey(
    config=config, master_key_id=master_key_id, vault_id=vault_id
)
 
kms_master_key_provider = oci.encryption.KMSMasterKeyProvider(
    config=config,
    kms_master_keys=[kms_master_key]
)
 
crypto_result = crypto.encrypt(kms_master_key_provider, data_to_encrypt_bytes)
ciphertext = crypto_result.get_data()
print("ciphertext: {}".format(ciphertext))
 
# decrypt string example
crypto_result = crypto.decrypt(ciphertext, kms_master_key_provider)
print("unencrypted text: {}".format(crypto_result.get_data()))

L'exemple suivant montre comment crypter un flux de fichier :

import oci
import shutil
 
# user supplied vars
vault_id = TEST_VAULT_OCID
master_key_id = TEST_MASTER_KEY_ID
file_to_encrypt = "/file/to/encrypt/message.txt"
output_encrypted_file = "/tmp/message.txt.encrypted"
output_decrypted_file = "/tmp/message.txt.decrypted"
 
# setup OCI KMS keys
config = oci.config.from_file()
kms_master_key = oci.encryption.KMSMasterKey(
    config=config, master_key_id=master_key_id, vault_id=vault_id
)
 
kms_master_key_provider = oci.encryption.KMSMasterKeyProvider(
    config=config,
    kms_master_keys=[kms_master_key]
)
 
# encrypt stream example
with open(output_encrypted_file, 'wb') as output_stream, open(file_to_encrypt, 'rb') as stream_to_encrypt:
    with crypto.create_encryption_stream(
        kms_master_key_provider,
        stream_to_encrypt
    ) as encryption_stream:
        shutil.copyfileobj(encryption_stream, output_stream)
 
# decrypt stream example
with open(output_decrypted_file, 'wb') as output_stream, open(output_encrypted_file, 'rb') as stream_to_decrypt:
    with crypto.create_decryption_stream(
        stream_to_decrypt,
        kms_master_key_provider
    ) as decryption_stream:
        shutil.copyfileobj(decryption_stream, output_stream)

Nous contacter

Contributions

Vous disposez d'une correction de bug ou d'une nouvelle fonctionnalité que vous souhaitez partager ? Le kit SDK est open source et accepte les demandes d'extraction sur GitHub.

Notifications

Afin d'être averti lorsqu'une nouvelle version du kit SDK pour Python est disponible, abonnez-vous au flux Atom.

Questions ou commentaires