名前空間に制限付きでアクセスする
このページは英語版のページが機械翻訳されたものです。英語版との間に矛盾または不一致がある場合は、英語版を正としてください。
名前空間機能は現在パブリックプレビューです。この機能と関連ドキュメントは変更される可能性があります。
このドキュメントでは、ScalarDL のマルチテナント環境において、名前空間を制限付きで設定およびアクセスする方法について説明します。
名前空間への制限アクセスとは?
名前空間へのアクセスを制限すると、単一の ScalarDL クラスター上で複数のテナントをホストしながら、テナント間での厳格なデータ分離を確保できます。各テナントは独自の名前空間内で動作し、その名前空間内 のアセットのみにアクセスできます。
セキュリティモデル
名前空間への制限アクセスは、ポートベースのアクセス制御に依存します:
- 特権ポート: 管理者が名前空間管理と資格情報登録に使用します。管理者のみがこのポートにアクセスできる必要があります。
- 非特権ポート: テナントクライアントがコントラクト登録と実行に使用します。テナントは、特定の名前空間に登録された資格情報を使用してこのポートにアクセスします。
テナントの資格情報は特定の名前空間に登録されているため、これらの資格情報で実行されるすべての操作は自動的にその名前空間にスコープされます。テナントは、割り当てられた名前空間外でコントラクトを登録したり操作を実行したりできません。
このチュートリアルでは、簡単にするためデフォルトポートを使用し、特権および非特権ポートの両方が同じクライアントマシンからアクセス可能であることを前提としています。本番環境では、管理者のみが特権ポートにアクセスできるようにアクセスを制限し、テナントは非特権ポートのみを通じて接続するようにしてください。
前提条件
- 以下のいずれかの Java Development Kit (JDK):
- Oracle JDK: 8、11、17、または 21 (LTS バージョン)
- OpenJDK ディストリビューション (Eclipse Temurin、Amazon Corretto、または Microsoft Build of OpenJDK): 8、11、17、または 21 (LTS バージョン)
- Docker 20.10以降とDocker Compose v2.20.0以降
ScalarDL サンプルリポジトリをクローンする
ターミナルを開き、次のコマンドを実行して ScalarDL サンプルリポジトリをクローンします:
git clone https://github.com/scalar-labs/scalardl-samples
次に、以下のコマンドを実行して、サンプル設定を含むディレクトリに移動します:
cd scalardl-samples
お使いのデータベースで ScalarDL を起動する
データベースを 選択し、コマンドに従って ScalarDL Ledger をデプロイしてください。ScalarDL がサポートするデータベースの一覧については、データベースを参照してください。
- MySQL
- PostgreSQL
- Oracle Database
- SQL Server
- DynamoDB
- Cosmos DB for NoSQL
- Cassandra
ライセンスを設定する (Enterprise Edition のみ)
ScalarDL Enterprise Edition を使用している場合は、次のようにライセンスを設定します。Community Edition を使用している場合は、次のセクションに進んで ScalarDL を起動してください。
ライセンスの設定についてはこちらをご覧ください
-
次のように、
mysql/docker-compose-ledger.ymlファイルで Enterprise Edition のコンテナイメージを有効にします。-
イメージを変更する前 (デフォルト設定):
services:
scalardl-ledger:
image: ghcr.io/scalar-labs/scalardl-ledger:${SCALARDL_VERSION}
# image: ghcr.io/scalar-labs/scalardl-ledger-byol:${SCALARDL_VERSION} -
イメージを変更した後:
services:
scalardl-ledger:
# image: ghcr.io/scalar-labs/scalardl-ledger:${SCALARDL_VERSION}
image: ghcr.io/scalar-labs/scalardl-ledger-byol:${SCALARDL_VERSION}
-
-
ScalarDL Ledger のライセンスキーを設定します。
mysql/ledger.propertiesファイルで、<SET_YOUR_LICENSE_KEY>をライセンスキーに置き換えます。例:##### PLEASE REPLACE THIS VALUE WITH YOUR LICENSE KEY (ENTERPRISE EDITION ONLY) #####
scalar.dl.licensing.license_key={"organization_name":"XXXXXXXX","expiration_date_time":"YYYY-MM-DDTHH:mm:SS+TIMEZONE","product_name":"ScalarDL Ledger","product_version":N,"license_type":"trial","signature":"XXXXXXXX"}
##### PLEASE REPLACE THIS VALUE WITH YOUR LICENSE KEY (ENTERPRISE EDITION ONLY) ##### -
ライセンスを確認するには、
mysql/docker-compose-ledger.ymlファイルを次のように更新します。試用版ライセンスを使用している場合は、この手順をスキップしてください。-
証明書ファイルのパスを変更する前に (デフォルト設定):
services:
scalardl-ledger:
volumes:
- ./ledger.properties:/scalar/ledger/ledger.properties.tmpl
- ../fixture/ledger-key.pem:/scalar/ledger-key.pem
- ../fixture/trial-license-cert.pem:/scalar/license-cert.pem
# If you have a commercial license key, you must use `commercial-license-cert.pem` instead of `trial-license-cert.pem`.
# - ../fixture/commercial-license-cert.pem:/scalar/license-cert.pem -
証明書ファイルのパスを変更した後:
services:
scalardl-ledger:
volumes:
- ./ledger.properties:/scalar/ledger/ledger.properties.tmpl
- ../fixture/ledger-key.pem:/scalar/ledger-key.pem
# - ../fixture/trial-license-cert.pem:/scalar/license-cert.pem
# If you have a commercial license key, you must use `commercial-license-cert.pem` instead of `trial-license-cert.pem`.
- ../fixture/commercial-license-cert.pem:/scalar/license-cert.pem
-
ScalarDL を起動する
以下の手順に従って、ScalarDL Ledger を開始できます。
-
次のコマンドを実行して、MySQL をローカルで実行します。
docker compose -f mysql/docker-compose-ledger.yml up -d mysql -
次のコマンドを実行して、ScalarDL Ledger のデータベーススキーマをロードします。
docker compose -f mysql/docker-compose-ledger.yml up -d scalardl-ledger-schema-loader -
次のコマンドを実行して ScalarDL Ledger および依存するコンポーネントを起動します。
docker compose -f mysql/docker-compose-ledger.yml up -d
ライセンスを設定する (Enterprise Edition のみ)
ScalarDL Enterprise Edition を使用している場合は、次のようにライセンスを設定します。Community Edition を使用している場合は、次のセクションに進んで ScalarDL を起動してください。
ライセンスの設定についてはこちらをご覧ください
-
次のように、
postgres/docker-compose-ledger.ymlファイルで Enterprise Edition のコンテナイメージを有効にします。-
イメージを変更する前 (デフォルト設定):
services:
scalardl-ledger:
image: ghcr.io/scalar-labs/scalardl-ledger:${SCALARDL_VERSION}
# image: ghcr.io/scalar-labs/scalardl-ledger-byol:${SCALARDL_VERSION} -
イメージを変更した後:
services:
scalardl-ledger:
# image: ghcr.io/scalar-labs/scalardl-ledger:${SCALARDL_VERSION}
image: ghcr.io/scalar-labs/scalardl-ledger-byol:${SCALARDL_VERSION}
-
-
ScalarDL Ledger のライセンスキーを設定します。
postgres/ledger.propertiesファイルで、<SET_YOUR_LICENSE_KEY>をライセンスキーに置き換えます。例:##### PLEASE REPLACE THIS VALUE WITH YOUR LICENSE KEY (ENTERPRISE EDITION ONLY) #####
scalar.dl.licensing.license_key={"organization_name":"XXXXXXXX","expiration_date_time":"YYYY-MM-DDTHH:mm:SS+TIMEZONE","product_name":"ScalarDL Ledger","product_version":N,"license_type":"trial","signature":"XXXXXXXX"}
##### PLEASE REPLACE THIS VALUE WITH YOUR LICENSE KEY (ENTERPRISE EDITION ONLY) ##### -
ライセンスを確認するには、
postgres/docker-compose-ledger.ymlファイルを次のように更新します。試用版ライセンスを使用している場合は、この手順をスキップしてください。-
証明書ファイルのパスを変更する前に (デフォルト設定):
services:
scalardl-ledger:
volumes:
- ./ledger.properties:/scalar/ledger/ledger.properties.tmpl
- ../fixture/ledger-key.pem:/scalar/ledger-key.pem
- ../fixture/trial-license-cert.pem:/scalar/license-cert.pem
# If you have a commercial license key, you must use `commercial-license-cert.pem` instead of `trial-license-cert.pem`.
# - ../fixture/commercial-license-cert.pem:/scalar/license-cert.pem
-