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およびreadthedocs.ioで入手できます。

ヒント

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

サポートされるサービス

  • アナリティクス・クラウド
  • お知らせ
  • APIゲートウェイ
  • アプリケーションの移行
  • 監査
  • 自動スケーリング(コンピュート)
  • ビッグ・データ
  • ブロックチェーン・プラットフォーム
  • 予算
  • コンピュート・インスタンス・エージェント(Oracle Cloud Agent)
  • Container Engine for Kubernetes
  • コンテンツとエクスペリエンス
  • コア・サービス(ネットワーキングコンピュートブロック・ボリューム)
  • クラウド・ガード
  • データ・カタログ
  • データ・フロー
  • データ統合
  • データ・セーフ
  • データ・サイエンス
  • データ転送
  • データベース
  • データベース管理
  • デジタル・アシスタント
  • DNS
  • 電子メール配信
  • イベント
  • ファイル・ストレージ
  • ファンクション
  • ヘルス・チェック
  • IAM
  • 統合クラウド
  • キー管理(ボールト・サービス用)
  • 制限
  • ロード・バランシング
  • ロギング
  • ログ・アナリティクス
  • ロギング検索
  • ロギング収集
  • 管理エージェント・クラウド
  • 管理ダッシュボード
  • マーケットプレイス
  • モニタリング
  • MySQLデータベース
  • NoSQLデータベース・クラウド
  • 通知
  • オブジェクト・ストレージ
  • OCIレジストリ
  • オペレーション・インサイト
  • オプティマイザ
  • 組織
  • OS管理
  • 割当て
  • リソース・マネージャ
  • Roving Edge Infrastructure
  • 検索
  • シークレット管理(ボールト・サービス用)
  • サービス・コネクタ・ハブ
  • ストリーミング
  • サポート管理
  • 使用状況
  • VMWareソリューション
  • Webアプリケーション・アクセラレーションおよびセキュリティ
  • 作業リクエスト(コンピュートデータベース)

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

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

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

sudo yum install python36-oci-sdk.x86_64

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

sudo yum install python-oci-sdk.x86_64

クライアント側の暗号化

クライアント側の暗号化では、クライアント側のデータを、ローカルに格納する前、または他の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フィードをサブスクライブします。

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