---
schema_version: "1"
id: 939e3eff530b117b8a78883a0c614370b758c29ef95694befc7d9717ff5d991a
title: Mule アプリケーションのプロパティの定義および保護
collection: mulesoft
version: current
locale: ja-jp
portal_url: https://docs.salesforce.com/mulesoft/current/ja-jp/anypoint-code-builder/int-create-secure-configs.md
canonical_url: https://docs.mulesoft.com/jp/anypoint-code-builder/int-create-secure-configs
source_site: docs.mulesoft.com
content_type: documentation
content_hash: e4bc61919694d740898b3802d4071087547eab8afbdceedff30246fd74436019
description: MuleSoft Documentation Site
latest: true
---
# Mule アプリケーションのプロパティの定義および保護

**進行中のベータリリース**​: **クラウド IDE は進行中のベータリリースです**​。ベータ状態での Anypoint Code Builder の使用には、IDE で入手できる、該当するベータサービス契約条件が適用されます。

次の操作を可能にするプロパティを作成します。

- Mule アプリケーションで使用される機密値を暗号化します。
- 設定 XML で値を設定するときにリテラル文字列ではなく変数を定義して使用します。
- 開発、Sandbox、本番など、特定のデプロイメント環境で異なるプロパティファイルを選択するための変数を設定します。

## [](#始める前に)始める前に

- [Web またはデスクトップ IDE をセットアップしてアクセスします](https://docs.mulesoft.com/jp/anypoint-code-builder/start-acb)​。
- [インテグレーションを作成します](https://docs.mulesoft.com/jp/anypoint-code-builder/int-create-integrations)​。

## [](#get-familiar)設定プロパティと暗号化

プロパティの暗号化や、プロパティを使用するアプリケーションのデプロイを行う詳細な手順を実行する前に、基本を学習します。

- [MuleSoft セキュアプロパティツールを使用した暗号化](#encryption-tool)
- [設定プロパティファイル](#properties)
- [設定 XML でのプロパティとプロパティファイルの参照](#reference-use)

### [](#encryption-tool)MuleSoft セキュアプロパティツールを使用した暗号化

MuleSoft では、機密データを暗号化するための実行可能 JAR ファイル (​`secure-properties-tool.jar`​): [MuleSoft セキュアプロパティツール](https://docs.mulesoft.com/mule-runtime/4.4/_attachments/secure-properties-tool.jar)​が提供されています。

このツールでは次のアルゴリズムを受け入れます。

- AES
- Blowfish
- DES
- DESede
- RC2
- RCA

このツールでは次の暗号化を受け入れます。

- CBC (デフォルト)
- CFB
- ECB
- OFB

Mule アプリケーションでプロパティを暗号化するための詳細な手順は、​[機密値を暗号化する](#encrypt)​を参照してください。

### [](#properties)設定プロパティファイル

Mule 設定 XML 内のコネクタとコンポーネントでは、機密データおよび非機密データの変数を受け入れます。変数は、Mule アプリケーションのプロジェクトの ​`src/main/resources`​ ディレクトリに作成して保存する ​`.yaml`​ ファイルまたは Spring 形式の ​`.properties`​ ファイルで定義されます。次に例を示します。

<table class="tableblock frame-all grid-all stretch">
<colgroup>
<col style="width: 50%;">
<col style="width: 50%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">暗号化されていないすべてのキーの値</th>
<th class="tableblock halign-left valign-top">暗号化された ​<code>uname</code>​ および ​<code>pw</code>​ キーの値</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><div class="content"><div class="listingblock">
<div class="content">
<pre class="highlightjs highlight"><code class="language-yaml hljs" data-lang="yaml">ftp:
  workingDir: /Users/me/myworkingdir
  host: localhost
  uname: myusername
  pw: mypassword</code></pre>
</div>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="listingblock">
<div class="content">
<pre class="highlightjs highlight"><code class="language-yaml hljs" data-lang="yaml">ftp:
  workingDir: /Users/me/myworkingdir
  host: localhost
  uname: "![UqoJI2fvggE=]"
  pw: "![n2LDIOKKxhQ5Tdv5AeCtFQ==]"</code></pre>
</div>
</div></div></td>
</tr>
</tbody>
</table>

暗号化されていないプロパティと暗号化されたプロパティで個別のプロパティファイルを作成できます。たとえば、YAML ファイルでは次のようになります。

<table class="tableblock frame-all grid-all stretch">
<colgroup>
<col style="width: 50%;">
<col style="width: 50%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">暗号化されていない ​<code>workingDir</code>​ および ​<code>host</code>​ キーの値</th>
<th class="tableblock halign-left valign-top">暗号化された ​<code>uname</code>​ および ​<code>pw</code>​ キーの値</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><div class="content"><div class="listingblock">
<div class="title"><code>dev.properties.yaml</code>​ のコンテンツ:</div>
<div class="content">
<pre class="highlightjs highlight"><code class="language-yaml hljs" data-lang="yaml">ftp:
  workingDir: /Users/me/myworkingdir
  host: localhost</code></pre>
</div>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="listingblock">
<div class="title"><code>dev.secure.yaml</code>​ のコンテンツ:</div>
<div class="content">
<pre class="highlightjs highlight"><code class="language-yaml hljs" data-lang="yaml">ftp:
  uname: "![UqoJI2fvggE=]"
  pw: "![n2LDIOKKxhQ5Tdv5AeCtFQ==]"</code></pre>
</div>
</div></div></td>
</tr>
</tbody>
</table>

Spring 形式の ​`.properties`​ ファイルでは、同じ設定は次のようになります。

<table class="tableblock frame-all grid-all stretch">
<colgroup>
<col style="width: 50%;">
<col style="width: 50%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">暗号化されていない ​<code>workingDir</code>​ および ​<code>host</code>​ キーの値</th>
<th class="tableblock halign-left valign-top">暗号化された ​<code>uname</code>​ および ​<code>pw</code>​ キーの値</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><div class="content"><div class="listingblock">
<div class="title"><code>dev.properties</code>​ のコンテンツ:</div>
<div class="content">
<pre class="highlightjs highlight"><code class="language-properties hljs" data-lang="properties">ftp.workingDir=/Users/me/myworkingdir
ftp.host=localhost</code></pre>
</div>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="listingblock">
<div class="title"><code>dev.secure.properties</code>​ のコンテンツ:</div>
<div class="content">
<pre class="highlightjs highlight"><code class="language-properties hljs" data-lang="properties">ftp.uname=![UqoJI2fvggE=]
ftp.pw=![n2LDIOKKxhQ5Tdv5AeCtFQ==]</code></pre>
</div>
</div></div></td>
</tr>
</tbody>
</table>

詳細な手順は、​[機密値を暗号化する](#encrypt)​を参照してください。

本番環境や開発環境など、さまざまな環境のプロパティ設定を提供するには、環境用の個別のプロパティファイルを作成します。手順は、​[さまざまな環境の設定の提供](#create-prop-file)​を参照してください。

### [](#reference-use)設定 XML でのプロパティとプロパティファイルの参照

設定 XML でプロパティファイルを参照し、プロパティ値を使用します。

- プロパティファイルに、暗号化されたプロパティが​_ない_​場合、次のように操作します。
    
    - `${property-key}`​ の構文を使用してプロパティ値を参照します。
    - `<configuration-properties/>`​ のグローバル要素を使用してファイルを参照します。
        
        たとえば、プロパティファイル ​`ports.yaml`​ に ​`port: "8081"`​ プロパティがあると仮定した場合、​`<http:listener-config/>`​ で ​`${port}`​ を ​`port`​ 属性の値として使用します。
        
        ```xml
        <configuration-properties file="ports.yaml"/>
        
        <http:listener-config name="HTTP_Listener_config" >
          <http:listener-connection host="0.0.0.0" port="${port}" />
        </http:listener-config>
        <flow name="flow" >
          <http:listener doc:name="Listener" config-ref="HTTP_Listener_config" path="/trigger"/>
        </flow>
        ```
- プロパティファイルに、暗号化されたプロパティが​_ある_​場合、次のように操作します。
    
    - `${secure::property-key}`​ の構文を使用してプロパティ値を参照します。
    - `<secure-properties:config/>`​ のグローバル要素を使用してファイルを参照します。
        
        この FTP の例では、​`<secure-properties:config/>`​ で ​`dev.secure.yaml`​ を参照し、​`secure::`​ プレフィックスを使用してそのプロパティファイル内のすべてのプロパティを参照しています。
        
        ```xml
        <secure-properties:config name="Secure_Properties_Config"
          doc:name="Secure Properties Config" doc:id="acegik"
          file="dev.secure.yaml" key="${encryption.key}" >
              <secure-properties:encrypt algorithm="Blowfish" />
        </secure-properties:config>
        
        <ftp:config name="FTP_Config" doc:name="FTP Config" doc:id="abcdefg" >
          <ftp:connection workingDir="${secure::ftp.workingDir}" host="${secure::ftp.host}"
            port="21" username="${secure::ftp.uname}" password="${secure::ftp.pw}" />
        </ftp:config>
        <flow>
          ...
        </flow>
        ```
        
        暗号化された値を使用する詳細な手順は、​[暗号化プロパティの使用](#use)​を参照してください。

## [](#encrypt)機密値を暗号化する

セキュアプロパティツールを使用して、Mule アプリケーションのプロパティファイルに追加する機密データを暗号化します。

Mule アプリケーションのプロジェクトワークスペース内のプロパティファイル ​`dev.secure.yaml`​ の例:

![Mule アプリケーションワークスペースのプロジェクトディレクトリ](/mulesoft/current/ja-jp/anypoint-code-builder/_images/acb-project-directory.png)

1. _暗号化されていない_​プロパティを含むプロパティファイルを作成します。
    
    1. プロジェクトの ​`src/main/resources`​ ディレクトリを開きます。
    2. 次のようにプロパティをキー-値ペアとして設定する ​`dev.secure.yaml`​ または ​`local.secure.yaml`​ のような名前の YAML ファイルを作成します。
        
        ```yaml
        myprop : "somevalue"
        
        mysensitiveprop : "mysensitivevalue"
        ```
        
        詳細は、​[設定プロパティファイル](#properties)​を参照してください。
2. 機密プロパティを暗号化します。
    
    1. [セキュアプロパティツール](https://docs.mulesoft.com/mule-runtime/4.4/_attachments/secure-properties-tool.jar)​ (プロパティを暗号化するための実行可能 JAR ファイル) をダウンロードします。
    2. コマンドラインから、保護する値に対してセキュアプロパティツールを実行します。
        
        Blowfish と暗号化鍵パスワードの ​`my-key-value`​ を使用して ​`"mysensitivevalue"`​ を暗号化する例:
        
        ```terminal
        $ java -cp secure-properties-tool.jar com.mulesoft.tools.SecurePropertiesTool \
        string \
        encrypt \
        Blowfish \
        CBC \
        my-key-value \
        "mysensitivevalue"
        ```
        
        暗号化された出力:
        
        ```terminal
        /MU0/xB/zoMPjxBA7/9X44Ad2H8O8AY5
        ```
        
        <table><tbody><tr><td class="icon"><i class="fa icon-important" title="Important"></i></td><td class="content">暗号化鍵値 (パスワード) は安全な場所に保管してください。後でアプリケーションをデプロイするときにキー値が必要になります。</td></tr></tbody></table>
3. プロパティファイルでは、暗号化された各プロパティ値を ​`![]`​ 括弧内に追加します。
    
    暗号化されていない値 ​`"mysensitivevalue"`​ を暗号化された値 ​`"![/MU0/xB/zoMPjxBA7/9X44Ad2H8O8AY5]"`​ に置き換える例:
    
    ```yaml
    myprop : "somevalue"
    mysensitiveprop : "![/MU0/xB/zoMPjxBA7/9X44Ad2H8O8AY5]"
    ```
    
    詳細は、​[設定プロパティファイル](#properties)​を参照してください。

## [](#use)暗号化プロパティの使用

暗号化されたプロパティを Mule アプリケーション内のコンポーネントに追加します。​`<secure-properties/>`​ でプロパティファイルを参照し、プロパティを復号化するローカルデプロイメントを実行します。

この手順の各ステップで示されている例は、次の設定例に基づきます。

設定 XML (​`my-secure-integration.xml`​)

```xml
<?xml version="1.0" encoding="UTF-8"?>
<mule xmlns="http://www.mulesoft.org/schema/mule/core" xmlns:doc="http://www.mulesoft.org/schema/mule/documentation"
    xmlns:ee="http://www.mulesoft.org/schema/mule/ee/core"
    xmlns:http="http://www.mulesoft.org/schema/mule/http"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns:secure-properties="http://www.mulesoft.org/schema/mule/secure-properties"
    xsi:schemaLocation="http://www.mulesoft.org/schema/mule/core http://www.mulesoft.org/schema/mule/core/current/mule.xsd
    http://www.mulesoft.org/schema/mule/ee/core http://www.mulesoft.org/schema/mule/ee/core/current/mule-ee.xsd
    http://www.mulesoft.org/schema/mule/http http://www.mulesoft.org/schema/mule/http/current/mule-http.xsd
	http://www.mulesoft.org/schema/mule/secure-properties http://www.mulesoft.org/schema/mule/secure-properties/current/mule-secure-properties.xsd">

  <secure-properties:config name="Secure_Properties_Config" doc:name="Secure Properties Config" doc:id="utlnst" file="${env}.secure.yaml" key="${encryption.key}" >
    <secure-properties:encrypt algorithm="Blowfish" />
  </secure-properties:config>

  <flow name="my-secure-data-flow" >
    <scheduler doc:name="Scheduler" doc:id="adstdc" >
      <scheduling-strategy>
          <fixed-frequency frequency="15" timeUnit="SECONDS" />
      </scheduling-strategy>
    </scheduler>

    <set-payload value="${secure::myprop}" doc:name="Set payload" doc:id="izdtkc" />
    <logger doc:name="Logger" doc:id="ljjcpz" level="WARN" message="#[payload]" category="INSECURE PROPERTY EXAMPLE" />

    <set-payload value="${secure::mysensitiveprop}" doc:name="Set payload" doc:id="abcdef" />
    <logger doc:name="Logger" doc:id="ghijkl" level="WARN" message="#[payload]" category="SECURE PROPERTY EXAMPLE" />

  </flow>
</mule>
```

プロパティファイル (​`dev.secure.yaml`​)

設定 XML では次のプロパティが使用されます。

```yaml
myprop : "somevalue"

mysensitiveprop : "![/MU0/xB/zoMPjxBA7/9X44Ad2H8O8AY5]"
```

POM ファイル (​`pom.xml`​)

POM ファイルには、設定 XML 内のコンポーネントの連動関係が含まれます。

```pom
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.mycompany</groupId>
    <artifactId>my-secure-integration</artifactId>
    <version>1.0.0-SNAPSHOT</version>
    <packaging>mule-application</packaging>

    <name>my-secure-integration</name>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <mule.maven.plugin.version>3.3.5</mule.maven.plugin.version>
    </properties>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-clean-plugin</artifactId>
                <version>3.1.0</version>
            </plugin>
            <plugin>
                <groupId>org.mule.tools.maven</groupId>
                <artifactId>mule-maven-plugin</artifactId>
                <version>${mule.maven.plugin.version}</version>
                <extensions>true</extensions>
                <configuration/>
            </plugin>
        </plugins>
    </build>
    <repositories>
        <repository>
            <id>anypoint-exchange-v2</id>
            <name>Anypoint Exchange</name>
            <url>https://maven.anypoint.mulesoft.com/api/v2/maven</url>
            <layout>default</layout>
        </repository>
        <repository>
            <id>mulesoft-releases</id>
            <name>MuleSoft Releases Repository</name>
            <url>https://repository.mulesoft.org/releases/</url>
            <layout>default</layout>
        </repository>
    </repositories>
    <pluginRepositories>
        <pluginRepository>
            <id>mulesoft-releases</id>
            <name>mulesoft release repository</name>
            <layout>default</layout>
            <url>https://repository.mulesoft.org/releases/</url>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
        </pluginRepository>
    </pluginRepositories>
    <dependencies>
        <dependency>
            <groupId>com.mulesoft.services</groupId>
            <artifactId>mule-service-weave-ee</artifactId>
            <version>2.4.0-20221212</version>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>com.mulesoft.modules</groupId>
            <artifactId>mule-secure-configuration-property-module</artifactId>
            <version>1.2.5</version>
            <classifier>mule-plugin</classifier>
        </dependency>
    </dependencies>
</project>
```

暗号化された値を Mule アプリケーションで使用する手順は、次のとおりです。

1. 設定 XML の ​`<flow/>`​ 要素の前にセキュア設定プロパティ​_スニペット_​ (​`<secure-properties:config/>`​) を追加します。これを行うには、Cmd+Space (Mac) または Ctrl+Space (Windows) を押し、要素名の最初の文字を (​`secu`​ など) を入力して、スニペットを選択します。
    
    ![セキュア設定プロパティスニペットの選択](/mulesoft/current/ja-jp/anypoint-code-builder/_images/acb-snippet-secure-config-prop.png)
    
    `<flow/>`​ 要素の前の未変更のスニペットの XML は次のようになります。
    
    ```xml
    <secure-properties:config name="Secure_Properties_Config"
      doc:name="Secure Properties Config" doc:id="ukvpll"
      file="${env}.secure.yaml" key="${encryption.key}" >
          <secure-properties:encrypt algorithm="Blowfish" />
    </secure-properties:config>
    
    <flow name="my-secure-data-flow" >
    ...
    ```
    
    基本 XML 設定では事前設定されない要素の部分がスニペットで事前設定されるため、この要素では必ず​_スニペット_​を選択し、基本 XML を選択​_しない_​でください。スニペットは、名前は同じですがアイコンが異なります。すべてのスニペットと同様にこのスニペットは 2 次元ボックスアイコンで識別されます。一方、この要素の基本 XML では 3 次元ボックスアイコンが使用されます。
    
    _初めて_​ ​`<secure-properties:config/>`​ スニペットを設定 XML に追加する場合、​`algorithm`​ 属性にタブで移動して別のアルゴリズムを選択するか、値を手動で変更することができます。
    
    ![セキュア設定プロパティモジュール内のサポートされるアルゴリズムのリスト。](/mulesoft/current/ja-jp/anypoint-code-builder/_images/int-secure-config-algorithms.png)
2. `file`​、​`key`​、および ​`algorithm`​ 属性の値を使用してスニペットを設定します。次に例を示します。
    
    ```xml
    <secure-properties:config name="Secure_Properties_Config"
      doc:name="Secure Properties Config" doc:id="ddzpxf"
      file="dev.secure.yaml" key="${encryption.key}" >
       <secure-properties:encrypt algorithm="Blowfish" />
    </secure-properties:config>
    ```
    
    - `file`​: プロパティファイルの名前
        
        ファイル名設定で変数 ​`${env}`​ を使用する場合、​[さまざまな環境の設定の提供](#create-prop-file)​で手順を確認してください。
    - `name`​: 暗号化鍵の任意の名前 (デフォルトでは ​`${encryption.key}`​ に設定)
        
        この名前は、セキュアプロパティツールでセキュアプロパティを暗号化するために使用する暗号化値 (パスワード) のキーとして機能します。
    - `algorithm`​: セキュアプロパティを暗号化するために使用したアルゴリズム (スニペットではデフォルトで Blowfish に設定)。他の​[アルゴリズム](#algorithms)​を使用することができます。
3. コネクタまたはコンポーネントの XML で、暗号化されたプロパティのキーを XML 属性の値として追加します。次に例を示します。
    
    ```xml
    <set-payload
      value="${secure::mysensitiveprop}"
      doc:name="Set payload" doc:id="abcdef" />
    ```
    
    キーの ​`secure::`​ プレフィックスに注意してください。

## [](#test-deploy)暗号化されたプロパティを IDE でテストする

暗号化されたプロパティをアプリケーションで使用している場合、暗号化鍵と値の引数を IDE のランタイムコマンドに追加します。この引数を設定に追加すると、アプリケーションで使用するプロパティをランタイムで復号化できるため、プロパティは IDE のローカルランタイムに正常にデプロイされます。

IDE で ​**\[Run and Debug (実行およびデバッグ)\]**​ を使用したときにデプロイメントが失敗する原因となるエラーをこの設定で回避できます。

Couldn't find configuration property value for key ${encryption.key}
from properties provider environment properties provider

1. 暗号化鍵名とその値に対するローカルのキー-値ペアを UI を介して指定します。
    
    1. **\[Manage (管理)\]**​ (歯車アイコン) > ​**\[Settings (設定)\]**​ に移動して、​**\[Settings (設定)\]**​ ページで ​**\[Runtime: Default Arguments (ランタイム: デフォルト引数)\]**​ を見つけます。
    2. **\[Runtime: Default Arguments (ランタイム: デフォルト引数)\]**​ 項目で、暗号化鍵のキー-値ペアを設定の​_末尾_​に追加します。次に例を示します。
        
        ```key-configuration
        -M-Dencryption.key=my-key-value
        ```
        
        この例では、​`-M-D`​ は必須のプレフィックス、​`encryption.key`​ は暗号化鍵のデフォルト名、​`my-key-value`​ はセキュアプロパティツールを介してプロパティを暗号化するために使用する値です。
    3. `${env}.secure.yaml`​ で ​`${env}`​ などの変数を使用して ​`<secure-properties:config/>`​ 内のプロパティファイルを識別している場合、​`${env}`​ の値を ​**\[Runtime: Default Arguments (ランタイム: デフォルト引数)\]**​ 項目に追加します。
        
        たとえば、IDE 内の開発環境のプロパティが含まれているファイル ​`dev.secure.yaml`​ の場合、次のようになります。
        
        ```env-configuration
        -M-Denv=dev
        ```
2. Cmd+shift+p (Mac) または Ctrl+shift+p (Windows) を押して、​**「View: Show Run and Debug」**​と入力し、​**\[Run and Debug (実行およびデバッグ)\]**​ をクリックして、アプリケーションを IDE 内にローカルにデプロイします。
    
    デプロイメントに成功すると、出力パネルの ​**\[OUTPUT (出力)\]**​ タブに次のメッセージが表示されます。
    
    \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*
    \*              - - + DOMAIN + - -               \* - - + STATUS + - - \*
    \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*
    \* default                                       \* DEPLOYED           \*
    \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*
    
    出力パネルについての詳細は、[出力パネルを開く](https://docs.mulesoft.com/jp/anypoint-code-builder/start-open-output-panel)を参照してください。
    
    アプリケーションが正常にデプロイされない場合、コンソールでエラーを確認し、トラブルシューティングします。
3. アプリケーションを CloudHub または CloudHub 2.0 にデプロイする場合、​[機密値を非表示にして CloudHub および CloudHub 2.0 にデプロイする](#deploy-to-cloudhub)​に進みます。
    
    この手順では、Runtime Manager 内で暗号化鍵値を非表示にする方法が示されています。

## [](#deploy-to-cloudhub)機密値を非表示にして CloudHub および CloudHub 2.0 にデプロイする

Anypoint Code Builder で構築したアプリケーションを CloudHub または CloudHub 2.0 にデプロイする場合、暗号化鍵の値を非表示にして、Runtime Manager UI に値が表示されないようにします ([Manage Properties for Applications on CloudHub](https://docs.mulesoft.com/cloudhub/cloudhub-manage-props)を参照)。

Runtime Manager は CloudHub および CloudHub 2.0 デプロイメントの管理コンソールとして機能します。暗号化鍵値は、暗号化と復号化のパスワードとして機能します。

<table><tbody><tr><td class="icon"><i class="fa icon-important" title="Important"></i></td><td class="content">この手順により、​<code>mule-artifact.json</code>​ 内で暗号化鍵の​<em>名前</em>​は設定されますが、その値は設定されません。セキュリティ上の理由で、デプロイするプロジェクト内でパッケージ化するこのファイルまたは他のファイルで、暗号化鍵の​<em>値</em>​を絶対に設定しないでください。</td></tr></tbody></table>

始める前に:

- IDE 内で Mule アプリケーションで使用する暗号化されたプロパティを実行してテストします。詳細は、​[設定プロパティファイル](#properties)​を参照してください。
- クラウド IDE を使用している場合、必須権限​**「Anypoint Code Builder Developer (Anypoint Code Builder 開発者)」**​があることを確認します。[configure-permissions.adoc](#configure-permissions.adoc)を参照してください。

CloudHub または CloudHub 2.0 にデプロイする場合に Runtime Manager UI で機密値を非表示にする手順は、次のとおりです。

1. アプリケーションの ​`mule-artifact.json`​ ファイルで、設定 XML 内のグローバル ​`<secure-properties:config/>`​ スニペットで指定した暗号化鍵の​_名前_​ (デフォルトでは ​`encryption.key`​) を指定します。次に例を示します。
    
    {
        "minMuleVersion": "4.8",
        "javaSpecificationVersions": \[
            "17"
        \],
        "secureProperties": \["encryption.key", "other.value.to.hide"\]
    }
    
    暗号化鍵の​_名前_​ (​_値_​ではない) はカンマ区切りの ​`secureProperties`​ 配列に挿入されます。この手順の後半で、アプリケーションを CloudHub にデプロイするときに、機密プロパティの暗号化時にセキュア設定ツールを介して指定した暗号化鍵の​_値_​を指定するように IDE により促されます。
2. Cmd+shift+p (Mac) または Ctrl+shift+p (Windows) を押し、次のコマンドを入力して、アプリケーションを CloudHub または CloudHub 2.0 にデプロイします。
    
    ```command
    MuleSoft: Deploy to CloudHub
    ```
    
    または、設定 XML ファイルが開いているときに ​**\[Deploy to CloudHub (CloudHub にデプロイ)\]**​ (ロケット) アイコンをクリックします。次に例を示します。
    
    ![\[Deploy to CloudHub (CloudHub にデプロイ)\] ロケットアイコン](_images/deploy-to-cloudhub-icon-with-detail.png)
3. セキュアプロパティの暗号化に使用した値と​_同じ値_​を入力するように促されたら、それらの値を入力します。
    
    同じ値を入力しない場合、アプリケーションは CloudHub または CloudHub 2.0 にアップロードできますが、暗号化鍵値が機能しないため、デプロイメントは失敗します。
4. デプロイメントには ​**Sandbox**​ 環境を選択します。
    
    他の環境はサポートされていません。​**デザイン**​環境にデプロイしようとすると、​`500`​ エラーコードで失敗します。デプロイメントが進行中の間、IDE によりプロセスの状況が提供されます。デプロイメントが完了すると、Runtime Manager でアプリケーションを開くように促されます。
    
    アプリケーションが ​`CloudHub の「Sandbox」に正常にデプロイされなかった`​ことを示すエラーメッセージが表示されたら、Runtime Manager を開いてログを確認し、問題を修正することができます。
5. **\[Open in Runtime Manager (Runtime Manager で開く)\]**​ をクリックし、Runtime Manager でアプリケーションの管理オプションを開きます。
6. Runtime Manager でデプロイメントを確認し、アプリケーションの ​**\[Settings (設定)\]**​ > ​**\[Properties (プロパティ)\]**​ に移動して暗号化鍵が非表示になっていることを確認します。
7. **SANDBOX**​ 環境の ​**\[Applications (アプリケーション)\]**​ 画面で、アプリケーションの ​**\[Status (状況)\]**​ 項目を確認します。
    
    - 状況が ​**\[Started (開始済み)\]**​ の場合、デプロイメントは成功し、アプリケーションは実行されています。
    - 状況が ​**\[Deploy failed (デプロイ失敗)\]**​ の場合、アプリケーションの名前をクリックし、​**\[Logs (ログ)\]**​ に移動して、失敗の原因を見つけます。
        
        暗号化鍵値が間違っている場合、エラー​`「org.mule.encryption.exception.MuleEncryptionException: Could not encrypt or decrypt the data (org.mule.encryption.exception.MuleEncryptionException: データを暗号化または復号化できませんでした)」`​が表示されます。
        
        このエラーを修正する手順は、次のとおりです。
        
        1. Runtime Manager でアプリケーションの ​**\[Settings (設定)\]**​ > ​**\[Properties (プロパティ)\]**​ に移動して、暗号化鍵の正しい値を暗号化鍵の項目に入力します。
        2. **\[Apply Changes (変更を適用)\]**​ をクリックします。
            
            Runtime Manager により変更が適用され、アプリケーションがデプロイされます。

詳細は、​[Anypoint Runtime Manager](https://docs.mulesoft.com/jp/runtime-manager/). For information about CloudHub, see [CloudHub Overview](https://docs.mulesoft.com/cloudhub/)​を参照してください。CloudHub 2.0 についての詳細は、[CloudHub 2.0 Overview](https://docs.mulesoft.com/cloudhub-2/)を参照してください。

## [](#create-prop-file)さまざまな環境の設定の提供

多くの場合、設定 XML 内のホスト、ポート、ディレクトリ、およびその他の設定は開発、Sandbox、本番環境など、デプロイメントの対象環境によって異なります。たとえば、通常、デスクトップでは、ホスト名は ​`localhost`​、ポートは ​`8081`​ に似た番号、ディレクトリは外部ホストへのパスではなくローカルマシンのパスです。

IDE にアプリケーションをデプロイする場合、異なる設定が必要な対象環境ごとに個別のプロパティファイルを作成し、各ファイルで適切な設定を指定します。

通常のファイル名は次のようなパターンに従います。

- IDE 内の開発環境: `dev.properties.yaml`​ または ​`dev.secure.yaml`
- 本番準備環境: `sandbox.properties.yaml`​ または ​`sandbox.secure.yaml`
- 本番環境: `prod.properties.yaml`​ または ​`prod.secure.yaml`

一貫したファイル名パターンでは、設定 XML 内でファイル名のプレフィックスとして ​`${env}`​ 変数を使用できます。たとえば、​`${env}.properties.yaml`​ や ​`${env}.secure.yaml`​ のようになります。このパターンを使用すると、アプリケーションの実行環境の設定が含まれるファイルに切り替えることができます。ファイルには暗号化されたプロパティ値と暗号化されていないプロパティ値を含めることができます。

ファイル名のプレフィックスとして ​`env`​ 変数を設定して使用する手順は、次のとおりです。

1. 一貫したファイル名パターンを使用して、異なる設定が必要な各環境のプロパティファイルを作成します。
2. プロパティファイルを参照する ​`<secure-properties/>`​ または別の要素を使用している場合、ファイル名のプレフィックス (​`${env}`​ など) を指定します。
    
    次の例の ​`file`​ 属性の値に注意してください。
    
    ```xml
    <secure-properties:config name="Secure_Properties_Config"
      doc:name="Secure Properties Config" doc:id="acegik"
      file="${env}.secure.yaml" key="${encryption.key}" >
          <secure-properties:encrypt algorithm="Blowfish" />
    </secure-properties:config>
    ```
3. _CloudHub または CloudHub 2.0 にデプロイする前に_​、アプリケーションが IDE でローカルにデプロイされることを確認します。
    
    1. IDE で Cmd+shift+p (Mac) または Ctrl+shift+p (Windows) を押して、次のコマンドを入力します。
        
        ```command
        Open 'launch.json'
        ```
    2. `launch.json`​ で、IDE からアプリケーションを実行するときに使用する ​`env`​ 変数の値を追加します。
        
        この ​`launch.json`​ 例の設定 ​`-M-Denv=dev`​ に注意してください。
        
        ```json
        {
            "version": "0.2.0",
            "configurations": [
              {
                "type": "mule-xml-debugger",
                "request": "launch",
                "name": "Debug Mule Application",
                "mule.project": "${workspaceFolder}",
                "mule.home": "${config:mule.runtime.muleHome}",
                "mule.runtime.args": "${config:mule.runtime.defaultArguments} -M-Denv=dev"
              }
            ]
        }
        ```
        
        `-M-Denv=dev`​ では、Mule Runtime 引数 (​`"mule.runtime.args"`​) として ​`env`​ 変数が ​`dev`​ に設定されています。
    3. プロパティファイル内で暗号化されたプロパティをアプリケーションで定義する場合、暗号化鍵と値を使用して IDE 内で ​**\[Runtime: Default Arguments (ランタイム: デフォルト引数)\]**​ コマンドを設定し、アプリケーションの実行時に IDE へのローカルデプロイメントでプロパティを復号化できるようにします。
        
        機密プロパティ値を含む ​`launch.json`​ を設定​_しない_​でください。推奨設定についての詳細は、​[暗号化されたプロパティを IDE でテストする](#test-deploy)​を参照してください。
4. Cmd+shift+p (Mac) または Ctrl+shift+p (Windows) を押し、次のコマンドを入力して、アプリケーションの ​`deploy.json`​ ファイルを起動します。
    
    ```command
    MuleSoft: Deploy to CloudHub
    ```
    
    または、設定 XML ファイルが開いているときに ​**\[Deploy to CloudHub (CloudHub にデプロイ)\]**​ (ロケット) アイコンをクリックします。次に例を示します。
    
    ![\[Deploy to CloudHub (CloudHub にデプロイ)\] ロケットアイコンと開かれている deploy.json](_images/deploy-to-cloudhub-icon-with-deploy-json.png)
5. _デプロイするように選択する前に_​ ​`deploy.json`​ を編集してプロパティファイルの正しいプレフィックスを指定します。次に例を示します。
    
    ```deploy.json
    {
      "runtime": "4.4.0",
      "workerSize": 0.1,
      "applicationName": "my-secure-int2-duke",
      "workers": 1,
      "autoStart": true,
      "properties": (1)
        {
          "env": "sandbox" (2)
        }
    }
    ```

<table><tbody><tr><td><i class="conum" data-value="1"></i><b>1</b></td><td><code>"properties"</code>​ キーを追加します。</td></tr><tr><td><i class="conum" data-value="2"></i><b>2</b></td><td>プロパティファイルの ​<code>${env}</code>​ プレフィックスの値 (​<code>sandbox</code>​ など) を指定するオブジェクトを追加します。</td></tr></tbody></table>

1. セキュアプロパティの暗号化に使用した値と​_同じ値_​を入力するように促されたら、それらの値を入力します。
2. デプロイメントには ​**Sandbox**​ 環境を選択します。
3. デプロイメントが完了したら、​**\[Open in Runtime Manager (Runtime Manager で開く)\]**​ をクリックし、Runtime Manager でアプリケーションの管理オプションを開きます。
4. `env`​ 設定などのプロパティや、非表示になっている暗号化鍵の値を確認するには、アプリケーションの ​**\[Settings (設定)\]**​ > ​**\[Properties (プロパティ)\]**​ をクリックします。
    
    プロパティを作成したり、既存のプロパティの値を変更したりして、たとえば、デプロイメントエラーを修正することができます。

## [](#関連情報)関連情報

- [Secure Configuration Properties](https://docs.mulesoft.com/mule-runtime/latest/secure-configuration-properties)