このページは機械翻訳を使用して翻訳されました。最新版の英語を参照するには、ここをクリックします。
デプロイされたアプリケーションで機密情報を処理する
パスワードなどの機密情報を MATLAB® vault にシークレットとして保存することで、アプリケーション コードのセキュリティを強化できます。
MATLAB にシークレット値を設定すると、その値はローカルの MATLAB vault に保存されます。MATLAB vault は、シークレットを暗号化して永続的に保存するストレージを提供します。あなたの vault とシークレットは MATLAB セッションにわたって保持されます。setSecret
(MATLAB) 関数を使用して MATLAB vault にシークレットを保存し、listSecrets
(MATLAB) を使用して現在保存されているシークレットを一覧表示できます。
シークレットとは、暗号化された形式で安全に保存したい機密情報です。各シークレットは、名前、値、およびオプションのメタデータで構成されます。
シークレット名 - シークレットの大文字と小文字が区別される一意のテキスト識別子。シークレット名は、文字列スカラーとして、暗号化されずに vault に保存されます。
シークレット値 - シークレットに関連付けられたテキスト値。シークレットの値を入力するシークレット プロンプト ダイアログ ボックスでは、コピー アンド ペースト機能がサポートされています。シークレット値は、業界標準の AES-256 暗号化を使用して、vault に 暗号化 されて保存されます。シークレット値は string スカラーとして返されます。
シークレット メタデータ - シークレットに関連付けられた追加情報を含む辞書。メタデータは、シークレットの識別、使用、ライフサイクル管理に役立ちます。オプションのシークレット メタデータは、vault に 暗号化されていない 状態で保存されます。
たとえば、このシークレットには次のデータベース資格情報が含まれています。
シークレット名前 —
"databasePassword"
シークレット値 —
"CpyA/&qRFzB2$X*jf"
シークレットメタデータ - 3つのエントリを持つ辞書(文字列⟼セル):
"databaseName"
⟼{["productionDB"]}
"host"
⟼{["db.example.com"]}
"port"
⟼{["5432"]}
シークレットと MATLAB vault の詳細については、Keep Sensitive Information Out of Code (MATLAB) を参照してください。
シークレットを含むパッケージコード
デプロイする MATLAB コードが機密情報を扱う場合は、アプリケーション コードで getSecret
(MATLAB) 関数を使用して、実行時に復号化されるシークレット値を取得できます。
シークレットを管理する次の関数はデプロイ可能です。
getSecret
(MATLAB) – vault からシークレットを取得します。getSecretMetadata
(MATLAB) – vault 内のシークレットのメタデータを取得します。isSecret
(MATLAB) – vault 内にシークレットが存在するかどうかを判断します。
setSecret
を含むその他のすべてのシークレット管理機能はデプロイできません。
デプロイ可能なアーカイブ内のパッケージシークレット
デプロイ可能なアーカイブにシークレットを含めることで、MATLAB vault によって提供される機能をスタンドアロン アプリケーションで使用できます。
シークレットをスタンドアロン アプリケーションにパッケージ化するには、mcc -J
(MATLAB Compiler) オプションを使用して、シークレット マニフェスト JSON ファイルでシークレット名を指定します。コンパイラ アプリの ランタイム追加設定 領域で -J
フラグを使用することもできます。
SecretsManifest
オプションを使用して、compiler.build
関数でシークレット マニフェスト ファイルを指定できます。 (R2024b 以降)
MATLAB Compiler™ がローカルの MATLABvaultからシークレットを取得し、コンパイル時にデプロイ可能なコード アーカイブに埋め込むには、コードをパッケージ化する前に、MATLAB で setSecret
を呼び出して各シークレットをvaultに保存する必要があります。
シークレットを使用するスタンドアロン アプリケーションを作成する例については、Access Sensitive Information in Standalone Application (MATLAB Compiler) を参照してください。
シークレット値を環境変数として保存する
アーカイブ内にシークレットをパッケージ化する代わりに、ターゲット プラットフォームの環境変数にシークレット値を保存することもできます。たとえば、デプロイされたコードがコンテナ内で実行される場合、コンテナ インスタンスを作成するときに環境変数を設定できます。getSecret
(MATLAB) 関数を使用して環境変数に保存されているシークレットにアクセスし、環境変数名をシークレット名として指定します。
vault に保存されているシークレットが環境変数と同じ名前を持っている場合、getSecret
は環境変数の値を取得します。
MATLAB Web App Server のアクセス シークレット
MATLAB Web App Server™ では、シークレットはサーバー vault に保存されます。Web アプリケーションでシークレットを取得して使用するには、アプリケーション コードで getSecret
(MATLAB) 関数を呼び出します。
Web アプリケーション サーバー管理者は、サーバー vault に保存されているシークレットを追加、削除、または変更できます。MATLAB Web App Server のシークレットを管理するために、管理者は次のいずれかのオプションを使用できます。
コマンドラインで
webapps-secrets
を使用します。MATLAB Web App Server の開発バージョンのグラフィカル インターフェイスを使用します。詳細については、MATLAB Compiler の MATLAB Web App Server の開発用バージョンの構成 (MATLAB Compiler) を参照してください。
メモ
セキュリティについての考慮事項: MATLAB Web App Server では、読み取りおよび書き込み権限を持つ Web アプリケーション サーバー管理者によって vault ファイルが設定されています。Web アプリのワーカー プロセスはこのファイルにアクセスできません。サーバー プロセスには読み取り権限があります。
MATLAB Web App Server は、属性ベースのアクセス制御ルールを定義する機能も提供します。これらのルールにより、認証された個人はサーバー vault からシークレットを取得できるようになります。
サーバー上のシークレットへのポリシーベースのアクセスを有効にすることで、サーバー管理者は個体のユーザーのシークレットのアクセス構成をカスタマイズできます。この機能は、さまざまなアプリケーションとそれぞれのユーザー ベースにわたってシークレットを管理するのに役立ちます。これにより、Web アプリは実行時にシークレット値にアクセスし、たとえばユーザーごとに一意の資格情報を取得できるようになります。
シークレットのアクセス制御の詳細については、MATLAB Web App Server でのシークレットのアクセスを制御する を参照してください。
参考
setSecret
(MATLAB) | getSecret
(MATLAB) | isSecret
(MATLAB) | webapps-secrets