Oracle NoSQL Database Cloud Serviceの開始
Oracle NoSQL Database Cloud Serviceは完全管理型のデータベース・クラウド・サービスであり、単純な問合せに対するレスポンスのレイテンシを予測可能な1桁ミリ秒にする必要があるデータベース操作向けに設計されています。
NoSQL Database Cloud Serviceを使用すると、開発者は、クラスタ・サーバーの設定や、システムのモニタリング、チューニング、診断およびスケーリングの実行を行うことなく、アプリケーション開発に集中できます。NoSQL Database Cloud Serviceは、Internet of Things、ユーザー・エクスペリエンスのパーソナライズ、インスタント不正検出、オンライン・ディスプレイ広告などのアプリケーションに適しています。
Oracle Cloudアカウントに対して認証されたユーザーは、NoSQL表を作成し、表のスループットとストレージ要件を指定できます。Oracleがユーザーにかわって、要件を満たすようにリソースを予約して管理し、容量をプロビジョニングします。容量は、スループットの場合は読取りユニットと書込みユニットを使用して、ストレージ・ユニットの場合はGBを使用して指定します。
この記事には次のトピックが含まれます:
クイック・リンク
Oracle NoSQL Database Serviceの使用を開始するには、次のいずれかのクイック・リンクを使用します。
表- クイック・リンク
スタート・ガイド |
接続 |
IDEおよびSDK |
表の作成 |
データの配置および探索 |
Manage Tables |
セキュリティの管理 |
サービスのモニター |
ユーティリティ |
SQLリファレンス |
参照ガイド |
サービスの設定
Oracle NoSQL Database Cloud Serviceを初めて設定する場合、これらのタスクをガイドとして使用します。
タスク | 参照 | 関連情報 |
---|---|---|
Oracle NoSQL Database Cloud Serviceをオーダーするか、Oracle無料トライアルにサインアップします。 | Oracle Cloud InfrastructureドキュメンテーションのOracle Cloud Infrastructureへのサインアップ |
Oracle NoSQL Database Cloud Serviceサブスクリプションの月次費用の見積り方法について学習するには、月次費用の見積りを参照してください。 無料アカウントのアップグレードや、支払方法の変更を行うには、Oracle Cloud Infrastructureドキュメントの支払方法の変更を参照してください。 |
Oracle Cloudアカウントのアクティブ化と初めてのサインイン | Oracle Cloud Infrastructureドキュメンテーションのコンソールへのログイン。 |
Oracle Cloud Infrastructure Consoleについての詳細は、Oracle Cloud Infrastructureドキュメントのコンソールの使用を参照してください。 |
(推奨)サービスのコンパートメントの作成 | コンパートメントの作成 |
コンパートメントを知らない場合は、Oracle Cloud Infrastructureドキュメントのコンパートメントの理解を参照してください。 |
サービスのセキュリティを管理します。 | Oracle NoSQL Database Cloud Serviceのセキュリティ・モデルについて | NoSQL Database Cloud Serviceのセキュリティ・モデルを理解するには、Oracle NoSQL Database Cloud Serviceのセキュリティ・モデルについてを参照してください。 |
インフラストラクチャ・コンソールからのサービスへのアクセス
インフラストラクチャ・コンソールからOracle NoSQL Database Cloud Serviceサービスにアクセスする方法について学習します。
- ようこそ電子メールからサービスURLを特定し、Oracle NoSQL Database Cloud Serviceにサインインします。
- ナビゲーション・メニューを開き、「データベース」、NoSQL「データベース」の順に選択します。
- サービス管理者が表に対して作成するコンパートメントを選択します。

コンパートメントの作成
Oracle Cloud Infrastructureにサインアップすると、Oracleは、すべてのクラウド・リソースを保持するルート・コンパートメントを使用してテナンシを作成します。次に、テナンシ(ルート・コンパートメント)内に追加のコンパートメントを作成し、対応するポリシーを作成して各コンパートメント内のリソースへのアクセスを制御します。Oracle NoSQL Database Cloud Service表を作成する前に、Oracleでは、表が属するコンパートメントを設定することをお薦めします。
コンパートメントは、Oracle Cloud Infrastructure Identity and Access Management (IAM)で作成します。Oracle Cloud Infrastructureドキュメントのテナントの設定およびコンパートメントの管理を参照してください。
Oracle NoSQL Databaseに接続するための認証
アプリケーションをOracle NoSQL Database Cloud Serviceに接続するには、Oracle Cloudアカウントが必要です。
認証方法#1: ユーザー・プリンシパル
ここでは、認証にOCIユーザーおよびAPIキーを使用します。アプリケーションの接続に使用される資格証明は、特定のユーザーに関連付けられています。アプリケーションのユーザーを作成する場合、Identity and Access Managementを使用したユーザー、グループおよびポリシーの設定を参照してください。
- ローカル・ディスク上のファイルを使用する場合、このファイルには、ユーザーOCID、テナンシOCID、リージョン、秘密キーのパス、指紋などの詳細が含まれます。これは、セキュアなネットワークから作業していて、秘密キーおよび構成をローカルに格納する際に、セキュリティ・ポリシーに準拠している場合に使用できます。
- APIを介して資格証明を提供します。
- どこかのボールトに資格証明を格納します。
資格証明を構成する情報:
表- 資格証明
概要 | 参照場所 |
---|---|
テナントIDおよびユーザーID (両方ともOCID) | Oracle Cloud InfrastructureドキュメントのテナンシのOCIDとユーザーのOCIDの取得場所を参照してください。 |
API署名キー |
アプリケーション・ユーザーに対して、API署名キーを生成し、アップロードする必要があります。これがすでに実行されている場合は、このステップをスキップできます。 詳細は、Oracle Cloud Infrastructureドキュメンテーションの次のリソースを参照してください:
|
署名キーのフィンガープリントおよび(オプションの)署名キーのパスフレーズ | 署名キーの指紋およびパスフレーズは、API署名キーの生成およびアップロード中に作成されます。Oracle Cloud Infrastructureドキュメントのキーのフィンガープリントを取得する方法を参照してください。 |
ヒント :
API署名鍵の生成およびアップロード時に、秘密鍵、オプションのパスフレーズ、および公開鍵の指紋の場所をメモします。前述のタスクを実行した後、資格証明情報を収集し、アプリケーションに提供します。
アプリケーションへの資格証明の提供:
Oracle NoSQL Database SDKでは、複数の方法でアプリケーションに資格証明を提供できます。SDKでは、構成ファイルと、情報を直接指定できる1つ以上のインタフェースがサポートされています。特定の資格証明インタフェースについて理解するには、使用しているプログラミング言語ドライバのドキュメントを参照してください。
~/.oci/config
です。SDKを使用すると、ファイルを別の場所に配置できます。次のような内容です:[DEFAULT]
user=ocid1.user.oc1..aaaaaaaas...7ap
fingerprint=d1:b2:32:53:d3:5f:cf:68:2d:6f:8b:5f:77:8f:07:13
key_file=~/.oci/oci_api_key_private.pem
tenancy=ocid1.tenancy.oc1..aaaaaaaap...keq
pass_phrase=mysecretphrase
[DEFAULT]
行は、後続の行でDEFAULTプロファイルが指定されていることを示します。構成ファイルには、[PROFILE_NAME]
の接頭辞を持つ複数のプロファイルを含めることができます。たとえば次のようにします。[DEFAULT]
user=ocid1.user.oc1..aaaaaaaas...7us
fingerprint=d1:b2:32:53:d3:5f:cf:68:2d:6f:8b:5f:77:8f:07:15
key_file=~/.oci/oci_api_key_private.pem
tenancy=ocid1.tenancy.oc1..aaaaabbap...keq
pass_phrase=mysecretphrase
[MYPROFILE]
user=ocid1.user.oc1..aaaaaaaas...7ap
fingerprint=d1:b2:32:53:d3:5f:cf:68:2d:6f:8b:5f:77:8f:07:13
key_file=~/.oci/oci_api_key_private.pem
tenancy=ocid1.tenancy.oc1..aaaaaaaap...keq
pass_phrase=mysecretphrase
認証方法#2: Instance Principals
Instance Principalsは、Oracle Cloud Infrastructure Identity and Access Management (IAM)内の機能で、インスタンスからサービス・コールを実行できます。インスタンス・プリンシパルでは、コンピュート・インスタンスで実行されているサービスのユーザー資格証明を構成したり、資格証明をローテーションする必要はありません。インスタンス自体がIAMのプリンシパル・タイプになりました。各コンピュート・インスタンスは、自身のアイデンティティを持ち、インスタンスに追加された証明書を使用して認証を行います。これらの証明書は、自動的に作成され、インスタンスに割り当てられ、ローテーションされます。
インスタンス・プリンシパル認証を使用すると、インスタンスを認可することで、Oracle Cloud Infrastructureサービスに対してAPIコールを実行できます。必要なリソースとポリシーの設定後、インスタンスで実行されているアプリケーションは、Oracle Cloud Infrastructureパブリック・サービスをコールでき、ユーザー資格証明または構成ファイルを構成する必要はありません。インスタンス・プリンシパル認証は、構成ファイルを格納しないインスタンスから使用できます。
認証方法#3: リソース・プリンシパル
リソース・プリンシパルを使用して、Oracle Cloud Infrastructureリソースを認証し、これにアクセスできます。リソース・プリンシパルは、他のOracle CloudサービスによるOracle NoSQL Databaseへの認証を可能にする一時セッション・トークンおよびセキュアな資格証明で構成されます。リソース・プリンシパル認証はインスタンス・プリンシパル認証とよく似ていますが、サーバーレス・ファンクションなど、インスタンスではないリソースに使用することを目的としています。
リソース・プリンシパルを使用すると、Oracle Cloud Infrastructureサービスに対するアクションの実行を認可できます。各リソースには独自のアイデンティティがあり、リソースは、追加された証明書を使用して認証します。これらの証明書は自動的に作成され、リソースに割り当てられ、ローテーションされるため、リソースにアクセスするために独自の資格証明を作成および管理する必要はありません。リソース・プリンシパルを使用して認証する場合、Oracle Cloud Infrastructureリソースにアクセスするための資格証明を作成および管理する必要はありません。
認証後は、Oracle Cloud Infrastructureリソースへのアクセスを承認する必要があります。詳細は、「Identity and Access Managementを使用したユーザー、グループおよびポリシーの設定」を参照してください。
認証方式#4: トークンベース認証:
トークンベース認証では、一時セッション・トークンを作成して使用し、Oracle Cloud Infrastructureリソースを認証してアクセスできます。トークンベース認証を使用する場合は、ユーザーOCID、テナンシOCID、リージョン、秘密キー・パスおよび一時セッション・トークン・ファイル・パスなどの情報を含むローカル構成ファイルを作成します。この方法では、1時間(デフォルト)で期限切れになる一時セッション・トークンとこの情報が一緒に使用されます。セッション・トークンベース認証は、一時的に手早い認証が必要な場合に使用できます。
セッション・トークンの作成: Webブラウザの有無にかかわらず、セッション・トークンを生成できます。
ブラウザの場合:
- ターミナルで、次のコマンドを実行します:
oci session authenticate
- リージョンの選択
- ブラウザで、ユーザーの資格証明を入力します。
- 認証に成功したら、ブラウザを閉じて、端末の対話型プロンプトに従います。構成ファイルに作成するプロファイルの名前を指定する必要があります。新しいプロファイル構成が
~/.oci/config
ファイルに書き込まれます。新しいプロファイル(TESTなど)が更新される構成ファイルの例を次に示します。[TEST] user=<ocid1.user.oc1.........> fingerprint=<XX:XX:...........> key_file=<C:\Users\XXXXXX\.oci\oci_api_key_private.pem> tenancy=<ocid1.tenancy.oc1.....> region=us-ashburn-1 security_token_file=<C:\Users\XXXXXX\.oci\sessions\TEST\token>
ブラウザを使用しない場合:
oci setup config
oci session authenticate --no-browser
~/.oci/config
ファイルに書き込まれます。新しいプロファイル(TESTなど)が更新される構成ファイルの例を次に示します。[TEST]
user=<ocid1.user.oc1.........>
fingerprint=<XX:XX:...........>
key_file=<full_directory_path_oci_api_key_private.pem>
tenancy=<ocid1.tenancy.oc1.....>
region=us-ashburn-1
security_token_file=<full_directory_path_token>
認証方法#5: OKEワークロードのアイデンティティ・ベース認証:
Oracle Container Engine for Kubernetes (OKE)ワークロード・アイデンティティは、きめ細かいアイデンティティおよびアクセス管理制御を提供します。ワークロードは、Kubernetesで実行されるアプリケーションです。1つのコンポーネントで構成することも、ポッドのセット内で一緒に動作する複数のコンポーネントで構成することもできます。ワークロード・リソースは、クラスタ、ネームスペースおよびサービス・アカウントの一意の組合せによって識別されます。この一意の組合せは、ワークロード・アイデンティティと呼ばれます。OKEワークロード・アイデンティティを使用すると、OCI Identity and Access Management (IAM)を使用して、Oracle Cloud Infrastructure (OCI)リソースへのK8sポッド・ポリシー主導のアクセス権を付与できます。
ワークロード・アイデンティティを使用すると、資格証明をシークレットとしてKubernetesクラスタに格納する必要がなくなり、ワーカー・ノード・ポリシー主導のOCIリソースへのアクセスや、より具体的にはNoSQL表へのアクセスにOCI動的グループに依存する必要がなくなりました。アプリケーションでOCIリソースへのアクセスが必要な場合、ワークロード・アイデンティティを使用すると、アプリケーション・ポッドに関連付けられたKubernetesサービス・アカウントにスコープ指定されたOCI IAMポリシーを記述できます。この機能により、これらのポッド内で実行されているアプリケーションは、ポリシーによって提供される権限に基づいてOCI APIに直接アクセスできます。
- サービス・アカウントのネームスペースを作成します。
- 使用するアプリケーションのサービス・アカウントを作成します。
- IAMポリシーを定義して、ワークロード・リソースに他のOCIリソースへのアクセス権を付与します。
- アプリケーションが記述されている言語に適したSDKをダウンロードして構成します。
- アプリケーションを編集して次を指定します。
- ワークロード・リクエストがKubernetes Engineワークロード・アイデンティティ・プロバイダを使用して認証されること
- アクセスするOCIリソース
- アプリケーションのデプロイメント仕様を更新して、ワークロード内のすべてのポッドがサービス・アカウントを使用することを指定します。
- OCIコンソールでナビゲーション・メニューを開き、「アイデンティティとセキュリティ」をクリックします。「アイデンティティ」で、「ポリシー」をクリックします。
- 「ポリシーの作成」をクリックし、ポリシーに名前を付けます。
- 次に示す形式で、ワークロードが必要なOCIリソースにアクセスできるようにするポリシー・ステートメントを入力します:
Allow any-user to <verb> <resource> in <location> where all { request.principal.type = 'workload', request.principal.namespace = '<namespace-name>', request.principal.service_account = '<service-account-name>', request.principal.cluster_id = '<cluster-ocid>' }
- <namespace-name>は、以前に作成したネームスペースの名前です。
- <service-account-name>は、以前に作成したサービス・アカウントの名前です。
- <cluster-ocid>は、以前に取得したクラスタのOCIDです。
「作成」をクリックして、新しいポリシーを作成します。
アプリケーションのNDCSへの接続
アプリケーションをOracle NoSQL Database Cloud Serviceに接続する方法について学習します。
使用可能な多くの方法のいずれかを使用して認証された後、アプリケーションはOracle NoSQL Database Cloud Serviceに接続します。
- API署名キー
- 任意のSDK (Java、Python、C#、GO、Node.js、Rust)プログラムから直接ハードコード
- デフォルトのプロファイルを持つ構成ファイル
- デフォルト以外のプロファイルを持つ構成ファイル
- 認証トークンを含むInstance Principals
- リソース・プリンシパル
- セッション・トークン
- OKEワークロード・アイデンティティ
認証オプションの詳細は、Oracle NoSQL Databaseに接続するための認証を参照してください。
次のいずれかの方法でNDCSに接続できます:
- 次のコードで資格証明を直接指定します。
/* Use the SignatureProvider to supply your credentials to NoSQL Database. * By default, the SignatureProvider will read your OCI configuration file * from the default location, ~/.oci/config. See SignatureProvider for * additional options for reading configurations in other ways.*/ SignatureProvider sp = new SignatureProvider( tenantId, // a string, OCID userId, // a string, OCID fingerprint , // a string privateKey, // a string, content of private key passPhrase // optional, char[] ); //Create an handle to access the cloud service in your service region. NoSQLHandleConfig config = new NoSQLHandleConfig(Region.<your-service-region>); config.setAuthorizationProvider(sp); NoSQLHandle handle = NoSQLHandleFactory.createNoSQLHandle(config); //At this point, your handle is set up to perform data operations.
- デフォルト構成ファイルとデフォルト・プロファイルを使用した接続:
/* Use the SignatureProvider to supply your credentials to NoSQL Database. * By default, the SignatureProvider will read your OCI configuration file * from the default location, ~/.oci/config. See SignatureProvider for * additional options for reading configurations in other ways. */ SignatureProvider sp = new SignatureProvider();
- デフォルト以外のプロファイルを使用したデフォルト構成ファイルを使用した接続:
/* Use the SignatureProvider to supply your credentials to NoSQL Database. * Specify the name of the non-default profile in the construtor for SignatureProvider. */ final String profile_name = "<name_of_the_profile>"; SignatureProvider sp = new SignatureProvider(profile_name);
- 指定された構成ファイルおよびプロファイルを使用した接続:
/* Use the SignatureProvider to supply your credentials to NoSQL Database. * You specify the full path of the non-default config file and also the name * of the profile */ final String config_filepath = "<full_path_of_config_file>"; final String profile_name = "<name_of_the_profile>"; SignatureProvider sp = new SignatureProvider(config_filepath, profile_name);
-
Instance Principalを使用した接続:
Instance Principalは、インスタンスが認可者(またはプリンシパル)となり、サービス・リソースに対するアクションを実行できるIAMサービス機能です。各コンピュート・インスタンスは、自身のアイデンティティを持ち、追加された証明書を使用して認証を行います。SignatureProvider authProvider = SignatureProvider.createWithInstancePrincipal();
-
リソース・プリンシパルを使用した接続:
リソース・プリンシパルはIAMサービス機能です。これにより、リソースが認可プロバイダ(またはプリンシパル)となり、サービス・リソースに対するアクションを実行できます。SignatureProvider authProvider = SignatureProvider.createWithResourcePrincipal();
-
session-tokenを使用した接続:
createWithSessionToken()
メソッドを使用して、トークン・ファイルから読み取られた一時セッション・トークンを使用してSignatureProviderを作成します。トークンファイルのパスは、デフォルトの場所にある構成ファイル内のデフォルトプロファイルから読み取られます。使用される構成ファイルは~/.oci/config
です。SignatureProvider authProvider = SignatureProvider.createWithSessionToken();
次に示すように、構成ファイル内のデフォルト以外のプロファイルでトークンファイルのパスを指定することもできます。トークンファイルのパスは、構成ファイルの指定されたプロファイルからデフォルトの場所で読み取られます。SignatureProvider authProvider = SignatureProvider.createWithSessionToken(<profile_name>);
-
OKEワークロード・アイデンティティを使用した接続:
Container Engine for Kubernetes (OKE)ワークロード・アイデンティティを使用して、デフォルト・パス/var/run/secrets/kubernetes.io/serviceaccount/token
のKubernetesサービス・アカウント・トークンを使用してSignatureProviderを作成できます。このプロバイダは、Kubernetesポッド内でのみ使用できます。SignatureProvider authProvider = SignatureProvider.createWithOkeWorkloadIdentity();
次に示すように、使用する特定のKubernetesサービス・アカウント・トークンを指定することもできます。SignatureProvider authProvider = SignatureProvider.createWithOkeWorkloadIdentity(<serviceAccountToken>);
または、次に示すように、使用する特定のKubernetesサービス・アカウント・トークンの場所を指定することもできます。SignatureProvider authProvider = SignatureProvider.createWithOkeWorkloadIdentity(<serviceAccountToken_location>);
使用されるJavaクラスの詳細は、SignatureProviderを参照してください。
- 次のコードで資格証明を直接指定します。
from borneo.iam import SignatureProvider # # Use SignatureProvider directly via API. Note that the # private_key argument can either point to a key file or be the # string content of the private key itself. # at_provider = SignatureProvider(tenant_id='ocid1.tenancy.oc1..tenancy', user_id='ocid1.user.oc1..user', private_key=key_file_or_key, fingerprint='fingerprint', pass_phrase='mypassphrase')
- デフォルト構成ファイルとデフォルト・プロファイルを使用した接続:
from borneo.iam import SignatureProvider # # Use SignatureProvider with a default credentials file and # profile in $HOME/.oci/config # at_provider = SignatureProvider()
- 指定された構成ファイルとデフォルト以外のプロファイルを使用して接続します。
from borneo.iam import SignatureProvider # # Use SignatureProvider with a non-default credentials file and profile # at_provider = SignatureProvider(config_file='myconfigfile', profile_name='myprofile')
-
Instance Principalを使用した接続:
Instance Principalは、インスタンスが認可者(またはプリンシパル)となり、サービス・リソースに対するアクションを実行できるIAMサービス機能です。各コンピュート・インスタンスは、自身のアイデンティティを持ち、追加された証明書を使用して認証を行います。at_provider = SignatureProvider.create_with_instance_principal(region=my_region)
-
リソース・プリンシパルを使用した接続:
リソース・プリンシパルはIAMサービス機能です。これにより、リソースが認可プロバイダ(またはプリンシパル)となり、サービス・リソースに対するアクションを実行できます。at_provider = SignatureProvider.create_with_resource_principal()
-
session-tokenを使用した接続:
Borneoは、セッション・トークンを使用した認証にOCI SDKを使用します。OCI署名者は、次に示すようにSignatureProviderコンストラクタにパラメータとして渡されます。from borneo.iam import SignatureProvider # Use SignatureProvider with a provider argument which is an instance of # oci.auth.signers.SecurityTokenSigner at_provider = SignatureProvider(<instance of oci.auth.signers.SecurityTokenSigner>)
-
OKEワークロード・アイデンティティを使用した接続:
OKEワークロード認証署名者は、OKEワークロード・アイデンティティを使用して、ワークロード全体(Kubernetesクラスタで実行されているアプリケーション)にNoSQL表へのアクセス権を付与する署名者です。oci.auth.signers.get_oke_workload_identity_resource_principal_signer
で取得できます。取得した署名者は、クライアントの初期化時に使用できます。from borneo.iam import SignatureProvider oke_workload_signer = oci.auth.signers.get_oke_workload_identity_resource_principal_signer()
Kubernetesサービス・アカウントのトークン・パスがデフォルト・パスと異なる場合は、次に示すようにパスを指定できます:token_path = "path_to_your_token_file" oke_workload_signer = oci.auth.signers.get_oke_workload_identity_resource_principal_signer(service_account_token_path=token_path) at_provider = SignatureProvider(oke_workload_signer)
次に示すように、Kubernetesサービス・アカウント・トークンを直接渡すこともできます:#token_string = "your_token_string" #oke_workload_signer = oci.auth.signers.get_oke_workload_identity_resource_principal_signer(service_account_token=token_string) at_provider = SignatureProvider(oke_workload_signer)
- 次のコードで資格証明を直接指定します。
privateKeyFile := "/path/to/privateKeyFile" passphrase := "examplepassphrase" sp, err := iam.NewRawSignatureProvider("ocid1.tenancy.oc1..tenancy", "ocid1.user.oc1..user", "<your-service-region>", "fingerprint", "compartmentID", privateKeyFile , &passphrase ) if err != nil { return } cfg := nosqldb.Config{ AuthorizationProvider: sp, // This is only required if the "region" property is not //specified in the config file. Region: "<your-service-region>", }
- デフォルト構成ファイルとデフォルト・プロファイルを使用した接続:
cfg := nosqldb.Config{ // This is only required if the "region" property is not //specified in ~/.oci/config. // This takes precedence over the "region" property when both are specified. Region: "<your-service-region>", } client, err := nosqldb.NewClient(cfg)
- 指定された構成ファイルとデフォルト以外のプロファイルを使用して接続します。
sp, err := iam.NewSignatureProviderFromFile("your_config_file_path", "your_profile_name", "", "compartment_id") if err != nil { return } cfg := nosqldb.Config{ AuthorizationProvider: sp, // This is only required if the "region" property is not specified in the config file. Region: "us-ashburn-1", } client, err := nosqldb.NewClient(cfg)
-
Instance Principalを使用した接続:
Instance Principalは、インスタンスが認可者(またはプリンシパル)となり、サービス・リソースに対するアクションを実行できるIAMサービス機能です。各コンピュート・インスタンスは、自身のアイデンティティを持ち、追加された証明書を使用して認証を行います。sp, err := iam.NewSignatureProviderWithInstancePrincipal("compartment_id") if err != nil { return } cfg := nosqldb.Config{ AuthorizationProvider: sp, Region: "<your-service-region>", } client, err := nosqldb.NewClient(cfg)
-
リソース・プリンシパルを使用した接続:
リソース・プリンシパルはIAMサービス機能です。これにより、リソースが認可プロバイダ(またはプリンシパル)となり、サービス・リソースに対するアクションを実行できます。sp, err := iam.NewSignatureProviderWithResourcePrincipal("compartment_id") if err != nil { return } cfg := nosqldb.Config{ AuthorizationProvider: sp, Region: "<your-service-region>", } client, err := nosqldb.NewClient(cfg)
-
session-tokenを使用した接続:
NewSessionTokenSignatureProvider
関数は、トークン・ファイルから読み取られた一時セッション・トークンを使用してSignatureProvider
を作成します。func NewSessionTokenSignatureProvider() (*SignatureProvider, error)
使用される構成ファイルは
~/.oci/config
です。DEFAULT
プロファイルが使用されます。トークン・ファイルのパスは、security_token_file
フィールドの値を使用して構成から読み取られます。このコンストラクタを使用する場合、ユーザーにはすべての表のデフォルト・コンパートメントがあります。ユーザーのテナンシのルート・コンパートメントです。デフォルト以外の構成ファイル(~/.oci/config
以外)を使用するには、関数NewSessionTokenSignatureProviderFromFile
を使用できます。func NewSessionTokenSignatureProviderFromFile(configFilePath, ociProfile, privateKeyPassphrase string) (*SignatureProvider, error)
このファンクションは、OCI構成ファイル
configFilePath
で指定されたociProfile
を使用して、トークン・ファイルから読み取られた一時セッション・トークンを使用してSignatureProvider
を作成します。トークン・ファイルのパスは、security_token_file
フィールドの値を使用して構成から読み取られます。フィールドprivateKeyPassphrase
は、秘密キーがパスフレーズを使用し、OCI構成ファイルのpass_phrase
フィールドに指定されていない場合にのみ必須です。このコンストラクタを使用する場合、ユーザーにはすべての表のデフォルト・コンパートメントがあります。ユーザーのテナンシのルート・コンパートメントです。 -
OKEワークロード・アイデンティティを使用した接続:
Oracle NoSQL go SDKでは、OCIのOKEワークロード・コンテナ内のプログラムの実行がサポートされています。NoSQLで使用するSignatureProviderを作成するコードで、OKEワークロード・アイデンティティを使用する次のコードを追加します。conf, err := ociauth.OkeWorkloadIdentityConfigurationProvider() if err != nil { return nil, fmt.Errorf("cannot create an Oke Provider: %v", err) } myconf := &myConfigProvider{conf} sp, err := iam.NewSignatureProviderWithConfiguration(myconf, compartmentID) if err != nil { return nil, fmt.Errorf("cannot create a Signature Provider: %v", err) }
-
次のコードで資格証明を直接指定します。
資格証明は、初期構成でauth.iam
プロパティの一部として直接指定できます。NoSQLClientインスタンスを次のように作成します。import { NoSQLClient, Region } from 'oracle-nosqldb'; let client = new NoSQLClient({ region: <your-service-region> auth: { iam: { tenantId: myTenancyOCID, userId: myUserOCID, fingerprint: myPublicKeyFingerprint, privateKeyFile: myPrivateKeyFile, passphrase: myPrivateKeyPassphrase } } });
-
デフォルト構成ファイルとデフォルト・プロファイルを使用した接続:
資格証明は、Oracle Cloud Infrastructure構成ファイルに格納できます。構成ファイルのデフォルト・パスは
~/.oci/config
で、~
はユーザーのホーム・ディレクトリを表します。Windowsでは、~
はUSERPROFILE
環境変数の値です。ファイルには複数のプロファイルを含めることができます。デフォルトでは、SDKはDEFAULTという名前のプロファイルを使用して資格証明を格納します。これらのデフォルト値を使用するには、~/.ociディレクトリにconfigという名前のファイルを次の内容で作成します。[DEFAULT] tenancy=<your-tenancy-ocid> user=<your-user-ocid> fingerprint=<fingerprint-of-your-public-key> key_file=<path-to-your-private-key-file> pass_phrase=<your-private-key-passphrase> region=<your-region-identifier>
OCI構成ファイルの資格証明とともにリージョン識別子を指定することもできます。ドライバは、デフォルトで前述の場所を調べ、資格証明とともにリージョンが提供されている場合は、初期構成を指定する必要はなく、引数なしコンストラクタを使用できます。import { NoSQLClient, Region } from 'oracle-nosqldb'; let client = new NoSQLClient();
または、構成でリージョンを指定することもできます:import { NoSQLClient, Region } from 'oracle-nosqldb'; let client = new NoSQLClient({ region: Region.<your-service-region> });
-
指定された構成ファイルとデフォルト以外のプロファイルを使用して接続します。
OCI構成ファイルには異なるパスを使用し、構成ファイルには異なるプロファイルを使用することもできます。この場合、初期構成の
auth.iam
プロパティ内でこれらを指定します。たとえば、OCI構成ファイルのパスが~/myapp/.OCI/config
で、資格証明をプロファイルJane
に格納する場合:次に、次のようにNoSQLClientインスタンスを作成します。import { NoSQLClient, Region } from 'oracle-nosqldb'; let client = new NoSQLClient({ region: Region.<your-service-region>, auth: { iam: { configFile: '<your_config_file>', profileName: '<name_of_your_profile>' } } });
-
Instance Principalを使用した接続:
Instance Principalは、IAMサービス機能です。これにより、インスタンスは、認可済アクター(またはプリンシパル)となり、サービス・リソースに対するアクションを実行できます。各コンピュート・インスタンスは、自身のアイデンティティを持ち、追加された証明書を使用して認証を行います。
設定後、次のようにNoSQLClientインスタンスを作成します。
前述と同じ構成のJSON構成ファイルを使用することもできます。Instance Principalを使用する場合、コンパートメント・プロパティとしてコンパートメントID (OCID)を指定する必要があります。これは、デフォルトのコンパートメントを使用する場合でも必要です。コンパートメント名やパスではなく、コンパートメントIDを使用する必要があります。また、Instance Principalを使用する場合、NoSQLClient APIをコールするときに、表名の前にコンパートメント名またはパスを付けることはできません。import { NoSQLClient, Region } from 'oracle-nosqldb'; const client = new NoSQLClient({ region: Region.<your-service-region>, compartment: 'ocid1.compartment.oc1..............' auth: { iam: { useInstancePrincipal: true } } });
-
リソース・プリンシパルを使用した接続:
リソース・プリンシパルは、IAMサービス機能です。これにより、リソースが認可プロバイダ(またはプリンシパル)となり、サービス・リソースに対するアクションを実行できます。
設定後、次のようにNoSQLClientインスタンスを作成します。
前述と同じ構成のJSON構成ファイルを使用することもできます。リソース・プリンシパルを使用する場合は、コンパートメント・プロパティとしてコンパートメントID (OCID)を指定する必要があります。これは、デフォルトのコンパートメントを使用する場合でも必要です。コンパートメント名やパスではなく、コンパートメントIDを使用する必要があります。また、リソース・プリンシパルを使用する場合、NoSQLClient APIをコールするときに、表名にコンパートメント名またはパスの接頭辞を付けることはできません。import { NoSQLClient, Region } from 'oracle-nosqldb'; const client = new NoSQLClient({ region: Region.<your-service-region>, compartment: 'ocid1.compartment.oc1...........................' auth: { iam: { useResourcePrincipal: true } } });
-
session-tokenを使用した接続:
セッション・トークンベース認証を使用する場合は、ユーザーOCID、テナンシOCID、リージョン、秘密キー・パスおよび一時セッション・トークン・ファイル・パスなどの情報を含むローカル構成ファイルを作成します。import { NoSQLClient, Region } from 'oracle-nosqldb'; const client = new NoSQLClient({ region: Region.<your-service-region>, compartment: 'ocid1.compartment.oc1.............. ' auth: { iam: { useSessionToken: true } } });
このメソッドは、トークン・ファイルから読み取られた一時セッション・トークンを使用します。トークン・ファイルのパスは、OCI構成ファイルのデフォルト・プロファイルから
security_token_file
フィールドの値として読み取られます。デフォルト以外の構成ファイル(~/.oci/config
以外)を使用するには、次に示すように、構成ファイルのパスとプロファイルの名前を指定できます。import { NoSQLClient, Region } from 'oracle-nosqldb'; const client = new NoSQLClient({ region: Region.<your-service-region>, compartment: 'ocid1.compartment.oc1.............. ' auth: { iam: { useSessionToken: true, "configFile": "<path_to_config_file>", "profileName": "<profile_name>" } } });
-
OKEワークロード・アイデンティティを使用した接続:
Oracle NoSQL Node.js SDKは、OCIのOKEワークロード・コンテナ内でのプログラムの実行をサポートしています。import { NoSQLClient, Region } from 'oracle-nosqldb'; const client = new NoSQLClient({ region: Region.<your-service-region>, compartment: 'ocid1.compartment.oc1...........................' ' auth: { iam: { useOKEWorkloadIdentity: true } }' } );
この認可スキームは、Kubernetes pods.Using OKEワークロード・アイデンティティ内でのみ使用でき、サービス・アカウント・トークンが必要です。デフォルトでは、プロバイダはデフォルト・ファイル・パス/var/run/secrets/kubernetes.io/serviceaccount/token
からサービス・アカウント・トークンをロードします。次の3つのプロパティのいずれかを指定して、これをオーバーライドし、サービス・アカウント・トークンを提供できます。- serviceAccountToken: サービス・アカウント・トークン文字列を指定します。
- serviceAccountTokenFile: サービス・アカウント・トークン・ファイルへのパスを指定します。
- serviceAccountTokenProvider: サービス・アカウント・トークンをロードするカスタム・プロバイダを指定します。
ファイルの内容および形式の詳細は、SDK構成ファイルを参照してください。
-
次のコードで資格証明を直接指定します。
IAMAuthorizationProviderの作成時に、資格証明をIAMCredentialsとして直接指定できます。次のようにNoSQLClientを作成します。var client = new NoSQLClient( new NoSQLConfig { Region=<your-service-region>, AuthorizationProvider = new IAMAuthorizationProvider( new IAMCredentials { TenantId=myTenancyOCID, UserId=myUserOCID, Fingerprint=myPublicKeyFingerprint, PrivateKeyFile=myPrivateKeyFile }) });
-
デフォルト構成ファイルとデフォルト・プロファイルを使用した接続:
資格証明は、Oracle Cloud Infrastructure構成ファイルに格納できます。構成ファイルのデフォルト・パスは
~/.oci/config
で、~
はユーザーのホーム・ディレクトリを表します。Windowsでは、~
はUSERPROFILE
環境変数の値です。ファイルには複数のプロファイルを含めることができます。デフォルトでは、SDKはDEFAULTという名前のプロファイルを使用して資格証明を格納しますこれらのデフォルト値を使用するには、~/.oci
ディレクトリにconfig
という名前のファイルを次の内容で作成します。[DEFAULT] tenancy=<your-tenancy-ocid> user=<your-user-ocid> fingerprint=<fingerprint-of-your-public-key> key_file=<path-to-your-private-key-file> pass_phrase=<your-private-key-passphrase> region=<your-region-identifier>
OCI構成ファイルの資格証明とともにリージョン識別子を指定することもできます。デフォルトでは、ドライバはデフォルト・パスおよびデフォルト・プロファイルで、OCI構成ファイル内の資格証明およびリージョンを検索します。したがって、前述の資格証明とともにリージョンを指定する場合は、構成を渡さずにNoSQLClientインスタンスを作成できます。var client = new NoSQLClient();
または、NoSQLConfigにリージョン(およびその他のプロパティ)を指定できます。var client = new NoSQLClient( new NoSQLConfig( { Region = Region.<your-service-region>, Timeout = TimeSpan.FromSeconds(10), });
-
指定された構成ファイルとデフォルト以外のプロファイルを使用して接続します。
OCI構成ファイルには異なるパスを使用し、構成ファイルには異なるプロファイルを使用することもできます。この場合、初期構成のauth.iamプロパティ内でこれらを指定します。たとえば、OCI構成ファイルのパスが
~/myapp/.OCI/config
で、資格証明をプロファイルJane
に格納する場合:次に、次のようにNoSQLClientインスタンスを作成します。var client = new NoSQLClient( new NoSQLConfig { Region = Region.<your-service-region>, AuthorizationProvider = new IAMAuthorizationProvider( "<your_config_file>", "<your_profile_name>") });
-
Instance Principalを使用した接続:
Instance Principalは、インスタンスが認可者(またはプリンシパル)となり、サービス・リソースに対するアクションを実行できるIAMサービス機能です。各コンピュート・インスタンスは、自身のアイデンティティを持ち、追加された証明書を使用して認証を行います。設定後、次のようにNoSQLClientインスタンスを作成します。var client = new NoSQLClient( new NoSQLConfig { Region=<your-service-region>, Compartment="ocid1.compartment.oc1.............................", AuthorizationProvider=IAMAuthorizationProvider.CreateWithInstancePrincipal() });
JSONでは、次のように同じ構成を表すこともできます。{ "Region": "<your-service-region>", "AuthorizationProvider": { "AuthorizationType": "IAM", "UseInstancePrincipal": true }, "Compartment": "ocid1.compartment.oc1.............................", }
Instance Principalを使用する場合、コンパートメント・プロパティとしてコンパートメントID (OCID)を指定する必要があります。これは、デフォルトのコンパートメントを使用する場合でも必要です。コンパートメント名やパスではなく、コンパートメントIDを使用する必要があります。また、Instance Principalを使用する場合、NoSQLClient APIをコールするときに、表名の前にコンパートメント名またはパスを付けることはできません。
-
リソース・プリンシパルを使用した接続:
リソース・プリンシパルはIAMサービス機能です。これにより、リソースが認可プロバイダ(またはプリンシパル)となり、サービス・リソースに対するアクションを実行できます。設定後、次のようにNoSQLClientインスタンスを作成します。var client = new NoSQLClient( new NoSQLConfig { Region = <your-service-region>, Compartment = "ocid1.compartment.oc1.............................", AuthorizationProvider = IAMAuthorizationProvider.CreateWithResourcePrincipal() });
JSONでは、次のように同じ構成を表すこともできます。{ "Region": "<your-service-region>", "AuthorizationProvider": { "AuthorizationType": "IAM", "UseResourcePrincipal": true }, "Compartment": "ocid1.compartment.oc1.............................", }
リソース・プリンシパルを使用する場合は、コンパートメント・プロパティとしてコンパートメントID (OCID)を指定する必要があります。これは、デフォルトのコンパートメントを使用する場合でも必要です。コンパートメント名やパスではなく、コンパートメントIDを使用する必要があります。また、リソース・プリンシパルを使用する場合、NoSQLClient APIをコールするときに、表名の前にコンパートメント名またはパスを付けることはできません。
-
session-tokenを使用した接続:
セッション・トークンベース認証を使用する場合は、ユーザーOCID、テナンシOCID、リージョン、秘密キー・パスおよび一時セッション・トークン・ファイル・パスなどの情報を含むローカル構成ファイルを作成します。
次に示すように、3つの方法のいずれかを使用して、セッション・トークンベースの認証を使用できます。
オプション1: これにより、デフォルトのOCI構成ファイルおよびデフォルトのプロファイル名を使用したセッション・トークンベースの認証を使用して、IAMAuthorizationProviderの新しいインスタンスが作成されます。var client = new NoSQLClient( new NoSQLConfig { Region = <your-service-region>, Compartment = "ocid1.compartment.oc1.............................", AuthorizationProvider = IAMAuthorizationProvider.CreateWithSessionToken() });
オプション2: これにより、デフォルトのOCI構成ファイルおよび指定されたプロファイル名でセッション・トークンベースの認証を使用して、IAMAuthorizationProviderの新しいインスタンスが作成されます。var client = new NoSQLClient( new NoSQLConfig { Region = <your-service-region>, Compartment = "ocid1.compartment.oc1.............................", AuthorizationProvider = IAMAuthorizationProvider.CreateWithSessionToken(<profileName>) });
オプション3: これにより、指定したOCI構成ファイルおよびプロファイル名でセッション・トークンベースの認証を使用して、IAMAuthorizationProviderの新しいインスタンスが作成されます。var client = new NoSQLClient( new NoSQLConfig { Region = <your-service-region>, Compartment = "ocid1.compartment.oc1.............................", AuthorizationProvider = IAMAuthorizationProvider.CreateWithSessionToken(<configFile>,<profileName>) });
JSONでは、次のように同じ構成を表すこともできます。{ "Region": "<your-service-region>", "AuthorizationProvider": { "AuthorizationType": "IAM", "UseSessionToken": true }, "Compartment": "ocid1.compartment.oc1............................." }
-
OKEワークロード・アイデンティティを使用した接続:
Oracle NoSQL Dotnet SDKは、OCIのOKEワークロード・コンテナ内でのプログラムの実行をサポートしています。
次の例では、OKEワークロード・アイデンティティを使用してIAMAuthorizationProviderの新しいインスタンスを作成します。このメソッドでは、オプションのサービス・アカウント・トークン文字列を指定できます。指定しない場合、サービス・アカウント・トークンはデフォルトのファイル・パス/var/run/secrets/kubernetes.io/serviceaccount/token
から読み取られます。var client = new NoSQLClient( new NoSQLConfig { Region = <your-service-region>, Compartment = "ocid1.compartment.oc1.............................", AuthorizationProvider = IAMAuthorizationProvider.CreateWithOKEWorkloadIdentity() });
次に示すように、OKEワークロード・アイデンティティと指定されたサービス・アカウント・トークン・ファイルを使用して、IAMAuthorizationProviderの新しいインスタンスを作成することもできます。var client = new NoSQLClient( new NoSQLConfig { Region = <your-service-region>, Compartment = "ocid1.compartment.oc1.............................", AuthorizationProvider = IAMAuthorizationProvider.CreateWithOKEWorkloadIdentityAndTokenFile(<serviceAccountTokenFile>) });
JSONでは、次のように同じ構成を表すこともできます。{ "Region": "<your-service-region>", "AuthorizationProvider": { "AuthorizationType": "IAM", "UseOKEWorkLoadIdentity": true }, "Compartment": "ocid1.compartment.oc1.............................", }
-
デフォルト・プロファイルでのデフォルト構成ファイルを使用した接続:
資格証明は、Oracle Cloud Infrastructure構成ファイルに格納できます。構成ファイルのデフォルト・パスは
~/.oci/config
で、~
はユーザーのホーム・ディレクトリを表します。Windowsでは、~
はUSERPROFILE
環境変数の値です。ファイルには複数のプロファイルを含めることができます。デフォルトでは、SDKはDEFAULTという名前のプロファイルを使用して資格証明を格納しますこれらのデフォルト値を使用するには、~/.oci
ディレクトリにconfig
という名前のファイルを次の内容で作成します。[DEFAULT] tenancy=<your-tenancy-ocid> user=<your-user-ocid> fingerprint=<fingerprint-of-your-public-key> key_file=<path-to-your-private-key-file> pass_phrase=<your-private-key-passphrase> region=<your-region-identifier>
また、リージョン識別子をOCI構成ファイル内の資格証明とともに指定することもできます。デフォルトでは、ドライバは、OCI構成ファイル内の資格証明およびリージョンをデフォルト・パスおよびデフォルト・プロファイルで検索します。リージョンは、
HandleBuilder::cloud_region()
を使用しない場合のみ必要です。pass_phrase
は、RSAキー・ファイルに必要な場合にのみ必要です。Oracle NoSQL Database Cloud Service Rustアプリケーションの最初のステップは、HandleBuilder構造体で指定された構成に基づいて、サービスへのリクエストの送信に使用されるハンドルを作成することです。ハンドルのインスタンスは、同時使用でも安全であり、マルチスレッドまたは非同期アプリケーションで共有されることを目的としています。次のコード例は、ユーザー構成ファイルを使用してクラウド・サービスに接続する方法を示しています:let handle = Handle::builder() .cloud_auth_from_file("~/.oci/config")? .build().await?;
-
Instance Principalを使用した接続
Instance Principalは、IAMサービス機能です。これにより、インスタンスは認可済アクター(またはプリンシパル)となり、サービス・リソースに対するアクションを実行できます。各コンピュート・インスタンスは、自身のアイデンティティを持ち、追加された証明書を使用して認証を行います。このモードでNoSQLを構成するには、次のコードを使用します。let handle = Handle::builder() .cloud_auth_from_instance()? .build().await?;
-
リソース・プリンシパルを使用した接続
リソース・プリンシパルは、リソースが認可者(またはプリンシパル)になることができるIAMサービス機能で、サービス・リソースに対するアクションを実行できます。このモードでNoSQLを構成するには、次のコードを使用します。let handle = Handle::builder() .cloud_auth_from_resource()? .build().await?;
一般的なワークフロー
Oracle NoSQL Database Cloud Serviceを操作するための一連の一般的なタスクです。
Oracle NoSQL Database Cloud Serviceを使用してアプリケーションを初めて開発する場合、これらのタスクをガイドとして使用します。
タスク | 説明 | その他の情報入手先 |
---|---|---|
アプリケーションを接続します | Oracle NoSQL Database Cloud Service表を使用するアプリケーションを接続します。 | アプリケーションのNDCSへの接続 |
アプリケーションの開発 | Oracle NoSQL Database Cloud Service表に接続した後で、アプリケーションを開発します。 | Oracle Cloudでの開発 |
Oracle NoSQL Database Cloud Serviceを初めて設定する場合、サービスの設定を参照してください。
クイック・スタート・チュートリアル
クイック・スタート・チュートリアルにアクセスし、サービスを開始します。
-
サービスへのアクセス権を取得します。
クラウド・プロモーションにサインアップするか、Oracle Cloudサブスクリプションを購入します。オーダーをアクティブ化し、ユーザーを作成します(オプション)。サービスの設定を参照してください。
-
資格証明を取得して、アプリケーションに接続します。Oracle NoSQL Databaseに接続するための認証を参照してください。
-
Oracle NoSQL Database Cloud Serviceで表を作成します。
-
開始するには、Oracle NoSQL Database Cloud Serviceの表のスタート・ガイドを参照してください。
-