このページでは、AppDynamics のエージェントログイン情報の保護に関する概要について説明します。

AppDynamics エージェントでは、次のようないくつかのタイプの認証情報がディスクに保存されます。

  • コントローラアカウントアクセスキー
  • コントローラキーストア/エージェントトラストストアパスワード
  • プロキシサーバーパスワード

Secure Credential Store

セキュリティポリシーがディスク上のセキュアなログイン情報を要求する環境では、Secure Credential Store を使用して、エージェント構成のログイン情報を暗号化することができます。

Secure Credential Store は 2 つのコンポーネントにより構成されています。

  • scs-tool.jar:Secure Credential Store を作成し、ログイン情報を暗号化し、Credential Store パスワードを難読化するユーティリティ。
  • Secure Credential Keystore:秘密暗号鍵のキーストア。

Secure Credential Store は、システムの暗号管轄ポリシーに従って、最も強力な暗号でプレーンテキストを暗号化します。

.NET エージェントについては、「.NETエージェント構成の認証情報の暗号化」を参照してください。

Credential Keystore を設定したら、次の設定を指定する必要があります。

分析エージェントの場合:

  • ad.secure.credential.store.filename
  • ad.secure.credential.store.password

Analytics Agent Rules」を参照してください。

Java、マシン、およびデータベースエージェントの場合:

  • <controller-ssl-enabled>
  • <controller-keystore-filename>
  • <controller-keystore-password>

Java エージェント構成プロパティ」、「マシン エージェント プロパティ」、および「データベースエージェントのプロパティ」を参照してください。

Secure Credential Storeの初期化

パスワードを暗号化または難読化するには、Secure Credential Store ユーティリティを実行して秘密暗号鍵のキーストアを作成する必要があります。エージェント ディストリビューションの以下の場所に Secure Credential Store ユーティリティがあります。

  • Java エージェント:<javaagent_home>/verX.X.X.X/utils/scs/scs-tool.jar
  • マシンエージェント:<machine_agent_home>/lib/secure-credential-store-tool-1.3.0.0.jar
  • データベースエージェント:<database_agent_home>/lib/scs-tool.jar
  • 分析エージェント:<analytics_agent_home>/bin/tool/scs-tool.jar

Secure Credential Store ユーティリティの generate_ks コマンドは、以下のパラメータを指定して実行します。

  • filename:ユーティリティが Secure Credential Keystore を作成する絶対パス。エージェント構成の <credential-store-filename> にこのパスを使用します。
  • storepass:Secure Credential Keystore パスワード。このパスワードの難読化バージョンをエージェント構成の <credential-store-password> 値として使用します。

例:

/<full path to application JRE>/bin/java -jar ./scs-tool.jar generate_ks -filename '/opt/appdynamics/secretKeyStore' -storepass 'MyCredentialStorePassword'
CODE

Secure Credential Store ユーティリティのキーストアが作成され初期化されたことを確認します。

Successfully created and initialized new KeyStore file: /opt/appdynamics/secretKeyStore
Verification - New KeyStore file: /opt/appdynamics/secretKeyStore is properly initialized.
CODE


パスワードの暗号化

Secure Credential Store ユーティリティを使用してパスワードを暗号化するには、以下のパラメータを指定して encrypt コマンドを実行します。

  • filename:Secure Credential Keystore ファイルへの絶対パス。
  • storepass:Secure Credential Keystore のパスワード。プレーンテキストのパスワードまたは次のセクションで説明するとおりに難読化されたパスワードを使用できます。 
  • plaintext:暗号化するプレーンテキスト。たとえば、アカウントアクセスキーまたはパスワード

次の例では、Secure Credential Keystore のプレーンテキストパスワード(storepass 引数)を使用します。

/<full path to application JRE>/bin/java -jar ./scs-tool.jar encrypt -filename '/opt/appdynamics/secretKeyStore' -storepass 'MyCredentialStorePassword' -plaintext 'MyAccessKeyOrPassword'
CODE

難読化されたパスワードを使用する同じ例:

/<full path to application JRE>/bin/java -jar ./scs-tool.jar encrypt -filename '/opt/appdynamics/secretKeyStore' -storepass 's_gsnwR6+LDch8JBf1RamiBoWfMvjjipkrtJMZXAYEkw8=' -plaintext 'MyAccessKeyOrPassword'
CODE

Secure Credential Store ユーティリティが書き出す、エージェント構成ファイルで使用する暗号化パスワード。

r9iDWPzHRCNDM1B6KTag4A/cA5B4pouVPkv48ovRm6c=
CODE

Secure Credential Storeパスワードの難読化

Secure Credential Keystoreで秘密鍵にアクセスするには、エージェントに難読化されたCredential Storeパスワードが必要になります。

Secure Credential Store ユーティリティの obfuscate コマンドは、以下のパラメータを指定して実行します。

  • plaintext:プレーンテキストの Secure Credential Keystore パスワード

例:

/<full path to application JRE>/bin/java -jar /opt/appdynamics/scs-tool.jar obfuscate -plaintext 'MyCredentialStorePassword'
CODE

Secure Credential Store ユーティリティは、エージェント構成の <credential-store-password> で使用する難読化パスワードを書き出します。

次に例を示します。

s_gsnwR6+LDch8JBf1RamiBoWfMvjjipkrtJMZXAYEkw8=
CODE

プレーンテキストプロパティの暗号化

Secure Credential Store パスワードを難読化した後、プレーンテキストプロパティを暗号化できます。

次の例は、分析エージェントのプロパティを暗号化する方法を示しています。

$ /<full path to application JRE>/bin/java -jar scs-tool.jar encrypt -filename /opt/appdynamics/secretKeyStore -storepass 'Welcome' -plaintext 'MyAccountAccessKey'
CODE

このプロパティは、暗号化されたログイン情報を生成します。

-001-24-pFoSE/xdPcinkBj9iiKvpQ==Rznx8Kt3sPZHQnKfYyubVuhorrBEbYFtDTPm8c/1kFO+Z2eR2WEHtBRg4vy1GyvJ
CODE

エージェント構成のサンプル

次の例は、Secure Credential Storeのエージェント構成プロパティを示しています。詳しくは、エージェント固有の構成プロパティドキュメントを参照してください。

Java エージェント構成

<?xml version="1.0" encoding="UTF-8"?>
<controller-info>
	...
    <!-- Encrypted account access key -->
    <account-access-key>r9iDWPzHRCNDM1B6KTag4A/cA5B4pouVPkv48ovRm6c=</account-access-key>
 
    <!-- Encrypted Controller keystore / agent trust store password -->
    <controller-keystore-password>Tw49bd0hdCMBoQ5pfMMuYA/cA5B4pouVPkv48ovRm6c=</controller-keystore-password>
 
    <!-- Enable the Secure Credential Store -->
    <use-encrypted-credentials>true</use-encrypted-credentials>
    
    <!-- Path to they secure credential keystore -->
    <credential-store-filename>/opt/appdynamics/secretKeyStore</credential-store-filename>
 
    <!-- Obfuscated secure credential keystore password -->
    <credential-store-password>n/8GvAZsKk4gM3Z6g+XQ1w==</credential-store-password>
	...
</controller-info>
CODE

分析エージェント構成

ad.credential.store.filename=/opt/appdynamics/secretKeyStore
ad.credential.store.password=s_gsnwR6+LDch8JBf1RamiBoWfMvjjipkrtJMZXAYEkw8=
CODE

分析エージェントでのデータの暗号化

secure://<your-encrypted-credentials> を使用して、分析エージェントでデータを暗号化できます。分析エージェントのプロパティファイルまたはシステムプロパティでデータを暗号化できます。 

次の例は、分析エージェントのプロパティファイルで http.event.accessKey を暗号化する方法を示しています。 

http.event.accessKey=secure://-001-24-Dr9FQGC179o4vPnuljnx8A==ZGVw/P4OONvpUidIhJ2u78FpRVVW8fbgr8J1HBHXwnE=
ad.secure.credential.store.filename=/opt/appdynamics/secretKeyStore
ad.secure.credential.store.password=s_gsnwR6+LDch8JBf1RamiBoWfMvjjipkrtJMZXAYEkw8=
XML