Oracle NoSQL Database Cloud Serviceの開始
Oracle NoSQL Database Cloud Serviceは完全管理型のデータベース・クラウド・サービスであり、単純な問合せに対する予測可能な1桁ミリ秒のレイテンシを予測可能な1桁ミリ秒にする必要があるデータベース操作向けに設計されています。
NoSQL Database Cloud Serviceを使用すると、開発者は、クラスタ・サーバーの設定や、システムのモニタリング、チューニング、診断およびスケーリングの実行を行うことなく、アプリケーション開発に集中することができます。NoSQL Database Cloud Serviceは、Internet of Things、ユーザー・エクスペリエンス・パーソナライゼーション、インスタント不正検出、オンライン・ディスプレイ広告などのアプリケーションに適しています。
Oracle Cloudアカウントに対して認証されたユーザーは、NoSQL表を作成し、表のスループットとストレージ要件を指定できます。Oracleがユーザーにかわって、要件を満たすようにリソースを予約して管理し、容量をプロビジョニングします。容量は、スループットの場合は読取りユニットと書込みユニットを使用して、ストレージ・ユニットの場合はGBを使用して指定します。
この記事には次のトピックが含まれます:
クイック・リンク
Oracle NoSQL Database Serviceは、次のいずれかのクイック・リンクから開始できます:
表- クイック・リンク
サービスの設定
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 NoSQL Database Cloud Service表を作成する前に、Oracleでは、表が属するコンパートメントを設定することをお薦めします。
コンパートメントは、Oracle Cloud Infrastructure Identity and Access Management (IAM)で作成します。Oracle Cloud Infrastructureドキュメンテーションのテナンシの設定およびコンパートメントの管理を参照してください。
Oracle NoSQL Databaseに接続するための認証
You need an Oracle Cloud account to connect your application to the Oracle NoSQL Database Cloud Service.
Oracle Cloudアカウントをまだ持っていない場合は、Oracle Cloudで開始できます。Oracle NoSQL Databaseに接続するときに、自分自身を認証する必要があります。次のいずれかの方法で認証できます。
認証方法#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ブラウザを使用して、または使用せずにセッション・トークンを生成できます。
ブラウザを使用:
WebブラウザがあるコンピュータでCLIのトークンベースの認証を使用するには:
-
ターミナルで、次のコマンドを実行します:
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>
ブラウザを使用しない場合:
Webブラウザを使用せずにCLIでトークンベース認証を使用するには、まずAPIキーベース認証を使用して認証する必要があります。
oci setup config
このコマンドを使用すると、構成ファイルの作成に必要な情報とAPI公開キーおよび秘密キーを入力するように求められます。設定ダイアログでは、この情報を使用してAPIキー・ペアが生成され、構成ファイルが作成されます。Webブラウザを使用せずにCLIでトークンベースの認証を使用するには、次のコマンドを実行します。
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で実行されているアプリケーションです。これは、単一のコンポーネント、または一連のポッド内で一緒に動作する複数のコンポーネントで構成できます。ワークロード・リソースは、クラスタ、ネームスペースおよびサービス・アカウントの一意の組合せによって識別されます。この一意の組合せは、ワークロード・アイデンティティと呼ばれます。OKEワークロード・アイデンティティを使用すると、OCI Identity and Access Management (IAM)を使用して、K8sポッドにOracle Cloud Infrastructure (OCI)リソースへのポリシー主導のアクセス権を付与できます。
ワークロード・アイデンティティを使用すると、資格証明をシークレットとしてKubernetesクラスタに格納する必要がなくなり、OCIリソースへのワーカー・ノード・ポリシー主導のアクセス、およびより具体的にはNoSQL表へのアクセスのためにOCI動的グループに依存する必要がなくなります。アプリケーションがOCIリソースにアクセスする必要がある場合、ワークロード・アイデンティティを使用すると、アプリケーション・ポッドに関連付けられたKubernetesサービス・アカウントにスコープ指定されたOCI IAMポリシーを記述できます。この機能により、これらのポッド内で実行されているアプリケーションは、ポリシーによって提供される権限に基づいてOCI APIに直接アクセスできます。
ワークロード内のすべてのポッドに任意のOCIリソースへのアクセス権を付与するには:
-
サービス・アカウントのネームスペースを作成します。
-
アプリケーションで使用するサービス・アカウントを作成します。
-
IAMポリシーを定義して、ワークロード・リソースに他のOCIリソースへのアクセス権を付与します。
-
アプリケーションが記述されている言語に適したSDKをダウンロードして構成します。
-
アプリケーションを編集して次を指定します:
-
ワークロード・リクエストがKubernetes Engineワークロード・アイデンティティ・プロバイダを使用して認証されること
-
アクセスするOCIリソース
-
-
アプリケーションのデプロイメント仕様を更新して、ワークロード内のすべてのポッドがサービス・アカウントを使用するように指定します。
ワークロードが必要な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に接続する方法について学習します。
アプリケーションは、使用可能な多くの方法の1つを使用して認証された後、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 constructor 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(); -
セッション・トークンを使用した接続:
createWithSessionToken()メソッドを使用して、トークン・ファイルから読み取られた一時セッション・トークンを使用してSignatureProviderを作成します。トークン・ファイルのパスは、構成ファイルのデフォルト・プロファイルからデフォルトの場所から読み取られます。使用される構成ファイルは~/.oci/configです。SignatureProvider authProvider = SignatureProvider.createWithSessionToken();次に示すように、構成ファイルのデフォルト以外のプロファイルにトークンファイルのパスを指定することもできます。トークン・ファイルのパスは、構成ファイルの指定されたプロファイルからデフォルトの場所から読み取られます。
SignatureProvider authProvider = SignatureProvider.createWithSessionToken(<profile_name>); -
OKEワークロード・アイデンティティを使用した接続:
Container Engine for Kubernetes (OKE)ワークロード・アイデンティティでSignatureProviderを作成するには、デフォルト・パス
/var/run/secrets/kubernetes.io/serviceaccount/tokenのKubernetesサービス・アカウント・トークンを使用します。このプロバイダは、Kubernetesポッド内でのみ使用できます。SignatureProvider authProvider = SignatureProvider.createWithOkeWorkloadIdentity();次に示すように、使用する特定のKubernetesサービス・アカウント・トークンを指定することもできます。
SignatureProvider authProvider = SignatureProvider.createWithOkeWorkloadIdentity(<serviceAccountToken>);または、次に示すように、使用する特定のKubernetesサービス・アカウント・トークンの場所を指定することもできます。
SignatureProvider authProvider = SignatureProvider.createWithOkeWorkloadIdentity(<serviceAccountToken_location>);
使用するJavaクラスの詳細は、SignatureProviderを参照してください。
次のいずれかの方法を使用してNDCSに接続できます。
-
コードに資格証明を直接指定します。
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() -
セッション・トークンを使用した接続:
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)
次のいずれかの方法を使用して、アプリケーションをNDCSに接続できます。
-
コードに資格証明を直接指定します。
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) -
セッション・トークンを使用した接続:
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) }
次のいずれかの方法を使用してNDCSに接続できます。
-
コードに資格証明を直接指定します。
初期構成では、資格証明を
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インスタンスを作成します。
import { NoSQLClient, Region } from 'oracle-nosqldb'; const client = new NoSQLClient({ region: Region.<your-service-region>, compartment: 'ocid1.compartment.oc1..............' auth: { iam: { useInstancePrincipal: true } } });前述と同じ構成でJSON構成ファイルを使用することもできます。Instance Principalを使用する場合は、コンパートメントID (OCID)をコンパートメント・プロパティとして指定する必要があります。これは、デフォルトのコンパートメントを使用する場合でも必要です。コンパートメント名やパスではなく、コンパートメントIDを使用する必要があります。また、Instance Principalを使用する場合、NoSQLClient APIをコールするときに、表名の前にコンパートメント名またはパスを付けることはできません。
-
リソース・プリンシパルを使用した接続:
リソース・プリンシパルは、リソースを認可されたアクター(またはプリンシパル)にし、サービス・リソースに対するアクションを実行できるようにするIAMサービス機能です。
設定後、次のようにNoSQLClientインスタンスを作成します。
import { NoSQLClient, Region } from 'oracle-nosqldb'; const client = new NoSQLClient({ region: Region.<your-service-region>, compartment: 'ocid1.compartment.oc1...........................' auth: { iam: { useResourcePrincipal: true } } });前述と同じ構成でJSON構成ファイルを使用することもできます。リソース・プリンシパルを使用する場合は、コンパートメントID (OCID)をコンパートメント・プロパティとして指定する必要があります。これは、デフォルトのコンパートメントを使用する場合でも必要です。コンパートメント名やパスではなく、コンパートメントIDを使用する必要があります。また、リソース・プリンシパルを使用する場合、NoSQLClient APIをコールするときに、表名の前にコンパートメント名またはパスを付けることはできません。
-
セッション・トークンを使用した接続:
セッション・トークンベース認証を使用する場合は、ユーザー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ポッド内でのみ使用できます。OKEワークロード・アイデンティティを使用するには、サービス・アカウント・トークンが必要です。デフォルトでは、プロバイダはデフォルトのファイル・パス
/var/run/secrets/kubernetes.io/serviceaccount/tokenからサービス・アカウント・トークンをロードします。これをオーバーライドし、次の3つのプロパティのいずれかを指定してサービス・アカウント・トークンを提供できます。-
サービス・アカウント・トークン文字列を指定するためのserviceAccountToken。
-
サービス・アカウント・トークン・ファイルへのパスを提供するserviceAccountTokenFile。
-
serviceAccountTokenProvider: サービス・アカウント・トークンをロードするカスタム・プロバイダを提供します。
-
ファイルの内容と形式の詳細は、SDK構成ファイルを参照してください。
次のいずれかの方法を使用してNDCSに接続できます。
-
コードに資格証明を直接指定します。
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)をcompartmentプロパティとして指定する必要があります。これは、デフォルトのコンパートメントを使用する場合でも必要です。コンパートメント名やパスではなく、コンパートメント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をコールするときに、表名の前にコンパートメント名またはパスを付けることはできません。
-
セッション・トークンを使用した接続:
セッション・トークンベース認証を使用する場合は、ユーザー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.............................", }
次のいずれかの方法を使用してNDCSに接続できます。
-
デフォルト構成ファイルとデフォルト・プロファイルを使用した接続:
資格証明は、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()? .compartment_id ("ocid1.compartment.oc1.............................")? .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 Simulatorでの開発の</p> |
Oracle NoSQL Database Cloud Serviceを初めて設定する場合、サービスの設定を参照してください。
クイック・スタート・チュートリアル
クイック・スタート・チュートリアルにアクセスし、サービスを開始します。
-
サービスへのアクセス権を取得します。
クラウド・プロモーションへのサインアップするか、Oracle Cloudサブスクリプションを購入します。オーダーをアクティブ化し、ユーザーを作成します(オプション)。サービスの設定を参照してください。
-
資格証明を取得して、アプリケーションに接続します。Oracle NoSQL Databaseに接続するための認証に関する項を参照してください。
-
Oracle NoSQL Database Cloud Serviceで表を作成します。開始するには、Oracle NoSQL Database Cloud Serviceの表のスタート・ガイドを参照してください。