ベース64エンコード
We don't recommend Base64 encoding in production for securing secrets because it doesn't provide encryption, and therefore can't guarantee sufficient data protection.
パスワードをプレーン テキストで保存したくないものの、パスワードをエンコードするために特定の要件を満たす必要がないユーザーにはこのタイプのエンコーディングがおすすめです。
Encode the sensitive data
この方法では、機密データを簡単に難読化する方法である Base64 エンコーディングを使用します。
Step 1. Encode the sensitive data
データベース パスワードをエンコードする際は、以下のテーブルに記載されているように、いくつかのオプションの引数を指定できます。
引数 | 説明 |
---|---|
| 暗号の正規クラス名。初期設定を使用するには空のままにします: |
| これらのオプションの引数を表示するヘルプ メッセージを出力します。 |
| 指定されたパスワードに対して「encrypt」(既定) または「decrypt」を使用します。 |
| 暗号化したいプレーンテキストのパスワード。このパラメーターを省略すると、コンソールからパスワードの入力を求められます。 |
| 最低限の情報をログに出力します。 |
データベース パスワードをエンコードするには、以下の手順に従います。
<Bitbucket-installation-directory>/tools/atlassian-password
に移動します。Run the following command to encode your password. Additionally, you can use optional arguments described above.
java -cp "./*" com.atlassian.secrets.cli.db.DbCipherTool
このコマンドを実行すると、次のような出力が表示されます。
2023-10-10 03:58:01,548 main INFO [com.atlassian.secrets.DefaultSecretStoreProvider] Initiating secret store class: com.atlassian.secrets.store.base64.Base64SecretStore 2023-10-10 03:58:01,568 main DEBUG [secrets.store.base64.Base64SecretStore] Initiate Base64Cipher 2023-10-10 03:58:01,583 main DEBUG [secrets.store.base64.Base64SecretStore] Encrypting data... 2023-10-10 03:58:01,585 main DEBUG [secrets.store.base64.Base64SecretStore] Encryption done. Success! For Jira, set the following properties in dbconfig.xml: <atlassian-password-cipher-provider>com.atlassian.secrets.store.base64.Base64SecretStore</atlassian-password-cipher-provider> <password>c2VjcmV0</password> For Bitbucket, set the following properties in bitbucket.properties: jdbc.password.decrypter.classname=com.atlassian.secrets.store.base64.Base64SecretStore jdbc.password=c2VjcmV0 For Bamboo, set the following properties in bamboo.cfg.xml: <property name="jdbc.password.decrypter.classname">com.atlassian.secrets.store.base64.Base64SecretStore</property> <property name="hibernate.connection.password">c2VjcmV0</property> For Confluence, set the following properties in confluence.cfg.xml: <property name="jdbc.password.decrypter.classname">com.atlassian.secrets.store.base64.Base64SecretStore</property> <property name="hibernate.connection.password">c2VjcmV0</property>
Step 2. Add the encoded data to bitbucket.properties
Back up the
<home-directory>/shared/bitbucket.properties
file. Move the backup to a safe place outside of your instance.In the
bitbucket.properties
file, add or modify theencrypted-property.cipher.classname
property to contain:com.atlassian.secrets.store.base64.Base64SecretStore
In the
bitbucket.properties
file, add or modify thejdbc.password
property to contain the Base64 encoded value prefixed with{ENC}
:{ENC}c2VjcmV0
更新が完了したら、
bitbucket.properties
に次の内容が含まれていることを確認してください。encrypted-property.cipher.classname=com.atlassian.secrets.store.base64.Base64SecretStore jdbc.password={ENC}c2VjcmV0
Restart Bitbucket.
Decode the sensitive data
To decode the sensitive data:
Extend the command with the
-m decrypt
parameter:java -cp "./*" com.atlassian.secrets.cli.db.DbCipherTool -m decrypt
パスワードを求められたら、
bitbucket.properties
ファイルから暗号化されたパスワードを指定します。2023-10-10 04:57:22,330 main INFO [com.atlassian.secrets.DefaultSecretStoreProvider] Initiating secret store class: com.atlassian.secrets.store.base64.Base64SecretStore 2023-10-10 04:57:22,345 main DEBUG [secrets.store.base64.Base64SecretStore] Initiate Base64Cipher 2023-10-10 04:57:22,360 main DEBUG [secrets.store.base64.Base64SecretStore] Decrypting data... 2023-10-10 04:57:22,364 main DEBUG [secrets.store.base64.Base64SecretStore] Decryption done. Success! Decrypted password using cipher provider: com.atlassian.secrets.store.base64.Base64SecretStore decrypted password: secret