メインコンテンツ

このページは機械翻訳を使用して翻訳されました。最新版の英語を参照するには、ここをクリックします。

デプロイされたアプリケーションで機密情報を処理する

R2024a 以降

パスワードなどの機密情報を 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 のシークレットを管理するために、管理者は次のいずれかのオプションを使用できます。

メモ

セキュリティについての考慮事項: MATLAB Web App Server では、読み取りおよび書き込み権限を持つ Web アプリケーション サーバー管理者によって vault ファイルが設定されています。Web アプリのワーカー プロセスはこのファイルにアクセスできません。サーバー プロセスには読み取り権限があります。

MATLAB Web App Server は、属性ベースのアクセス制御ルールを定義する機能も提供します。これらのルールにより、認証された個人はサーバー vault からシークレットを取得できるようになります。

サーバー上のシークレットへのポリシーベースのアクセスを有効にすることで、サーバー管理者は個体のユーザーのシークレットのアクセス構成をカスタマイズできます。この機能は、さまざまなアプリケーションとそれぞれのユーザー ベースにわたってシークレットを管理するのに役立ちます。これにより、Web アプリは実行時にシークレット値にアクセスし、たとえばユーザーごとに一意の資格情報を取得できるようになります。

シークレットのアクセス制御の詳細については、MATLAB Web App Server でのシークレットのアクセスを制御する を参照してください。

参考

(MATLAB) | (MATLAB) | (MATLAB) |

トピック