メインコンテンツ

スタンドアロン アプリケーション内の機密情報へのアクセス

R2024a 以降

この例では、保存されているシークレット値を取得して SFTP サーバーにアクセスするアプリケーションを作成する方法を説明します。

MATLAB® Vault にシークレットを格納して、アプリケーション コード内でパスワードなどの機密情報が公開されることを回避できます。デプロイでのシークレットの使用の詳細については、Handle Sensitive Information in Deployed Applicationsを参照してください。

ローカルの MATLAB Vault への SFTP 資格情報の格納

MATLAB コマンド プロンプトで、シークレットの名前を指定して setSecret 関数を呼び出し、SFTP サーバーの資格情報をローカルの MATLAB Vault に格納します。シークレット名は、大文字と小文字が区別される、シークレットの一意のテキスト識別子であり、暗号化されていない string スカラーとして Vault に格納されます。

  1. setSecret を使用してユーザー名を保存します。

    setSecret("myUser")

    [シークレット プロンプト] ダイアログ ボックスを使用してユーザー名のシークレット値を設定し、そのシークレットを MATLAB Vault に追加します。テキスト ボックス内の目のアイコンを切り替えて、フィールド内の文字を非表示または表示します。

    Secret Prompt dialog box, with a text box to enter the myUser value

  2. setSecret を使用してパスワードを保存します。

    setSecret("myPassword")

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

    Secret Prompt dialog box, with a text box to enter the myPassword value

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 パスの設定を参照してください。

参考

| | |

トピック