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

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

セキュリティポリシーがディスクに保存された認証情報を保護するよう要求する環境では、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

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

各エージェントのプロパティ(Java エージェント プロパティマシン エージェント プロパティデータベース エージェント プロパティ

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

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'

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

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

 

パスワードの暗号化

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'

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

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

 

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

r9iDWPzHRCNDM1B6KTag4A/cA5B4pouVPkv48ovRm6c=

 

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'

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

s_gsnwR6+LDch8JBf1RamiBoWfMvjjipkrtJMZXAYEkw8=

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

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>

分析エージェント構成

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