スタンドアロン アプリケーション内の機密情報へのアクセス
この例では、保存されているシークレット値を取得して SFTP サーバーにアクセスするアプリケーションを作成する方法を説明します。
MATLAB® Vault にシークレットを格納して、アプリケーション コード内でパスワードなどの機密情報が公開されることを回避できます。デプロイでのシークレットの使用の詳細については、Handle Sensitive Information in Deployed Applicationsを参照してください。
ローカルの MATLAB Vault への SFTP 資格情報の格納
MATLAB コマンド プロンプトで、シークレットの名前を指定して setSecret 関数を呼び出し、SFTP サーバーの資格情報をローカルの MATLAB Vault に格納します。シークレット名は、大文字と小文字が区別される、シークレットの一意のテキスト識別子であり、暗号化されていない string スカラーとして Vault に格納されます。
setSecretを使用してユーザー名を保存します。setSecret("myUser")[シークレット プロンプト] ダイアログ ボックスを使用してユーザー名のシークレット値を設定し、そのシークレットを MATLAB Vault に追加します。テキスト ボックス内の目のアイコンを切り替えて、フィールド内の文字を非表示または表示します。

setSecretを使用してパスワードを保存します。setSecret("myPassword")ダイアログ ボックスを使用してパスワードのシークレット値を設定します。

secret マニフェスト JSON ファイルでのシークレットの指定
作業フォルダーで、MATLAB Vault 内のどのシークレットをデプロイ可能なアーカイブに組み込むかを指定する、secrets_manifest.json という名前の secret マニフェスト ファイルを作成します。この例では、myUser および myPassword という名前のシークレットを組み込みます。
{
"Embedded": {
"description": "All secret names specified in this section will be put into the deployed CTF.",
"secret": ["myUser", "myPassword"]
}
}デプロイ用の MATLAB コードの記述
スタンドアロン アプリケーションにパッケージ化する MATLAB コードを記述します。
以下の MATLAB コードを secretapp.m として保存します。SFTP サーバー sftp.example.net は SFTP サーバーのホスト名に置き換えます。
s = sftp("sftp.example.net",getSecret("myUser"),Password=getSecret("myPassword")) close(s)
このコードは、getSecret 関数を使用して、Vault からユーザー名とパスワードを取得します。sftp 関数を呼び出して SFTP サーバーに接続し、SFTP 接続オブジェクトを作成します。サーバー接続に関する情報を表示した後、接続は閉じられます。
mcc を使用したスタンドアロン アプリケーションの作成
mcc を使用して、コードをスタンドアロン アプリケーションにパッケージ化します。JSON secret マニフェスト ファイルを指定するには、mcc -J オプションを使用します。
mcc -m secretapp.m -J secrets_manifest.json
mcc により、作業ディレクトリに secretapp という名前のスタンドアロン アプリケーションが生成されます。ファイル拡張子は、アプリケーションの生成に使用されるプラットフォームによって異なります。
メモ
生成されたスタンドアロン実行可能ファイルには MATLAB Runtime やインストーラーが含まれていません。アプリケーションと MATLAB Runtime をインストールするインストーラーを作成するには、compiler.package.installer 関数を使用します。
アプリケーションの実行
システム コマンド構文を使用して、MATLAB でアプリケーションをテストできます。
!secretapp SFTP with properties:
Host: "sftp.example.net"
Username: "mluser"
Port: 22
ServerSystem: "Windows"
DatetimeType: "datetime"
ServerLocale: "en_US"
DirParserFcn: @matlab.io.ftp.parseDirListingForWindows
RemoteWorkingDirectory: "/home/mluser"アプリケーションを別のマシンで実行する場合は、アップデート レベルが同じかそれ以降の MATLAB Runtime をインストールする必要があります。詳細については、MATLAB Runtime のダウンロードとインストールを参照してください。
メモ
Linux® や macOS で生成されたシェル スクリプトを使用せずにアプリケーションを実行するには、まず MATLAB Runtime をライブラリ パスに追加しなければなりません。詳細については、デプロイ用の MATLAB Runtime パスの設定を参照してください。
参考
mcc | getSecret | setSecret | compiler.package.installer