SDK for Python

Oracle Cloud Infrastructure SDK for Pythonを使用して、Oracle Cloud Infrastructureのリソースを管理するためのコードを記述できます。

このSDKおよびサンプルは、Universal Permissive License 1.0およびApache License 2.0でデュアルライセンスされています。サードパーティ・コンテンツはコード内の記述に従って別途ライセンスされます。

ダウンロード: SDK for Pythonは、GitHubまたはPython Package Index (PyPi)で入手できます。

リファレンス・ドキュメント: docs.cloud.oracle.comで入手できます。

ヒント

クラウド・シェル: SDK for Pythonは、ユーザーの資格証明で事前に構成されており、クラウド・シェル内からすぐに使用できます。クラウド・シェル内からのSDK for Pythonの使用の詳細は、SDK for Pythonのクラウド・シェル・クイック・スタートを参照してください。

Oracle Linux Cloud Developerイメージ: SDK for Pythonは、Oracle Linux Cloud Developerプラットフォーム・イメージに事前にインストールされています。詳細は、「Oracle Linux Cloud Developer」を参照してください。

サポートされるサービス

  • アクセス・管理
  • アカウント管理
  • AI異常検出
  • AI言語
  • AI音声
  • AIビジョン
  • アナリティクス・クラウド
  • お知らせ
  • APIゲートウェイ
  • アプリケーション依存性管理
  • アプリケーション管理
  • アプリケーション・パフォーマンス・モニタリング
  • 監査
  • 自律型リカバリ
  • 自動スケーリング(コンピュート)
  • 要塞
  • ビッグ・データ・サービス
  • ブロックチェーン・プラットフォーム
  • 予算
  • 構築
  • Redisを使用したキャッシュ
  • 証明書
  • クラウド・ブリッジ
  • クラウド移行
  • コンピュートCloud@Customer
  • コンピュート・インスタンス・エージェント(Oracle Cloud Agent)
  • Container Engine for Kubernetes
  • コンテナ・インスタンス
  • コンテンツ管理
  • コア・サービス(ネットワーキングコンピュートブロック・ボリューム)
  • クラウド・ガード
  • クラウド移行
  • コネクタ・ハブ
  • コンソール・ダッシュボード
  • データ・カタログ
  • データ・フロー
  • データ統合
  • データ・ラベリング
  • データ・セーフ
  • データ・サイエンス
  • データ転送
  • データベース
  • データベース管理
  • データベース移行
  • データベース・ツール
  • DevOps
  • デジタル・アシスタント
  • デジタル・メディア
  • ディザスタ・リカバリ
  • DNS
  • ドキュメント理解
  • 電子メール配信
  • Enterprise Managerウェアハウス
  • イベント
  • Exadataフリート更新
  • ファイル・ストレージ
  • ファンクション
  • Fusion Apps as a Service
  • 生成AI
  • 生成AI推論
  • 汎用アーティファクト
  • 世界中に分散しているデータベース
  • GoldenGate
  • ガバナンス・ルール
  • ヘルス・チェック
  • IAM
  • アイデンティティ・ドメイン
  • 統合クラウド
  • Java管理
  • Java Management Serviceのダウンロード
  • キー管理(ボールト・サービス用)
  • ライセンス・マネージャ
  • 制限
  • ロード・バランサ
  • ロギング
  • ログ・アナリティクス
  • ロギング検索
  • ロギング収集
  • 管理対象アクセス
  • 管理エージェント・クラウド
  • 管理ダッシュボード
  • マーケットプレイス
  • モニタリング
  • MySQLヒートウェーブ
  • ネットワーク・ファイアウォール
  • ネットワーク・ロード・バランシング
  • ネットワーク・モニタリング
  • ネットワーク・トポロジ
  • NoSQLデータベース・クラウド
  • 通知
  • オブジェクト・ストレージ
  • OCIコントロール・センター
  • OCIレジストリ
  • OneSubscription
  • オペレーション・インサイト
  • オペレータ・アクセス・コントロール
  • オプティマイザ
  • 組織
  • OS管理
  • OS管理ハブ
  • PostgreSQL
  • プロセス自動化
  • Publisher
  • キュー・サービス
  • 割当て
  • リソース・マネージャ
  • Roving Edge Infrastructure
  • 検索
  • シークレット管理(ボールト・サービス用)
  • セキュアデスクトップ
  • サービス・カタログ
  • サービス・メッシュ
  • ソース・コード管理
  • スタック・モニタリング
  • ストリーミング
  • サポート管理
  • 脅威インテリジェンス
  • 使用状況
  • Visual Builder
  • VMWareソリューション
  • 脆弱性スキャン
  • Webアプリケーション・アクセラレーションおよびセキュリティ
  • 作業リクエスト(コンピュートデータベース)

Pythonサポート

サポートされるPythonバージョンおよびオペレーティング・システム

この表は、オペレーティング・システムごとにOCI SDK for PythonでサポートされているPythonのバージョンを示しています:

オペレーティング・システム CLIでサポートされているPythonバージョン
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デスクトップ10 & 11 3.6 から3.11
Windows Server (2012/2016/2019) 3.6 から3.11

新しいバージョンのPythonは、すぐにサポートされない場合があります。OCI SDK for Pythonは、記載されていないオペレーティング・システムで動作する可能性がありますが、互換性のテストは行っていません。

yumを使用したインストール

Oracle Linux 7または8を使用している場合は、yumを使用してOCI SDK for Pythonをインストールできます。

次に、yumを使用してOCI SDK for Python 3.6をインストールする例を示します:

sudo yum install python36-oci-sdk

次に、yumを使用してOCI SDK for Python 2.7をインストールする例を示します:

sudo yum install python-oci-sdk

クライアント側の暗号化

クライアント側の暗号化では、クライアント側のデータを、ローカルに格納する前、または他のOracle Cloud Infrastructureサービスでデータを使用する前に暗号化できます。

クライアント側の暗号化を使用するには、キー管理サービスを使用してマスター暗号化キー(MEK)を作成する必要があります。これは、CreateKeyまたはImportKey操作を使用して行います。

MEKは、各ペイロードを暗号化するデータ暗号化キー(DEK)の生成に使用されます。このDEKの暗号化されたコピー(MEKで暗号化済)およびその他のメタデータの断片は、復号化に使用できるように、SDKによって返される暗号化されたペイロードに含まれます。

次のコード例は、文字列の暗号化方法を示しています:



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()))

次の例は、ファイル・ストリームの暗号化方法を示しています:

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)

連絡方法

コントリビューション

コントリビュートするバグの修正または新しい機能がありますか。SDKはオープン・ソースであり、GitHubプル・リクエストを受け入れています。

通知

SDK for Pythonの新しいバージョンがリリースされたときに通知を受け取るには、Atomフィードをサブスクライブします。

質問またはフィードバック