データベース パスワードを保護する
セキュリティを強化するために、Jira がデータベースへのアクセスに使用するデータベース パスワードを保護できます。このパスワードは設定ファイルに保存されています。基本的なものから高度なものまで、さまざまな暗号化方法が用意されています。さらに、SecretStore インターフェイスに基づいて独自の暗号も作成できます。
以下に概説するソリューションは、データベース値を暗号化するためのある程度の保護を可能にしますが、完全なセキュリティは提供しません。設定ファイルには、値を復号化するために必要なデータが含まれたままになります。つまり、これらのファイルにアクセスできる攻撃者は、プロパティ値を復号化できる可能性があります。
これらのアプローチは、機密データの偶発的な漏洩に対する保護を強化することを目的としていますが、包括的なセキュリティ ソリューションとして使用することは推奨されていません。
Jira とデータベースが存在するサーバーを保護することをおすすめします。
シークレットの保存
Jira 10.2 以降、シークレット ストレージを使用してデータベースのパスワードを保護しています。
アップグレード後、またはゼロダウンタイムのアップグレード (ZDU) 中に、dbconfig.xml
ファイルからパスワードを読み取り、暗号化してシークレット ストレージに保存し、dbconfig.xml
ファイルのパスワードをプレースホルダー {ATL_SECURED}
に置き換えます。パスワードが以前にプレーンテキストで保存されていた場合は、次のログが記録されます。
main INFO [c.a.j.config.database.DatabaseConfigHandler] Secret Service is enabled
main INFO [c.a.j.config.database.DatabaseConfigHandler] Detected new password in the xml file, that hadn't been encrypted by Secret Service
main INFO [c.a.j.config.database.DatabaseConfigHandler] Trying to get password from xml and decrypt it with legacy Secret Store Provider
main INFO [c.a.j.config.database.DatabaseConfigHandler] Database password decryption not performed.
main INFO [c.a.j.config.database.DatabaseConfigHandler] Getting plaintext password from config, encrypting it and storing in Secret Service.
main INFO [c.a.j.config.database.DatabaseConfigHandler] Secret Service is enabled
main INFO [c.a.j.config.database.DatabaseConfigHandler] Storing encrypted database password in Secret Service
main INFO [c.a.j.config.database.DatabaseConfigHandler] Replacing the password in config with {ATL_SECURED}
また、dbconfig.xml
ファイルには、<password>{ATL_SECURED}</password> が含まれます
ZDU のロールバックの場合は、アップグレードされたすべてのノードの dbconfig.xml
ファイルを編集し、パスワードをプレーンテキストのパスワードに戻す必要があります。
パスワードがシークレット ストア プロバイダーで保護されている場合、シークレットはシークレット ストレージに保存されますが、dbconfig.xml
ファイルのパスワードは置き換えず、シークレット ストア プロバイダーを使用してパスワードの暗号化と復号化を行います。
Jira 10.2.1 以降:
- パスワードがシークレット ストア プロバイダー、AES 暗号化、またはカスタム実装で暗号化されている場合、パスワードは復号化されてシークレット ストレージに保存され、
dbconfig.xml
ファイルのパスワードが{ATL_SECURED}
に置き換えられます。 - パスワードがシークレット ストア プロバイダー、AWS Secrets Manager、または HashiCorp Vault で暗号化されている場合は、それらを暗号化方法として保持し、パスワードの処理にシークレット ストレージを使用しません。
AWS Secrets Manager
AWS Secrets Manager は、データベースの認証情報を高レベルで安全に保管するオプションを提供します。このサービスは、ランタイム コールを通じて認証情報を取得し、キーやトークンなどのハードコードされた認証情報を完全に削除します。
AWS Secrets Manager での暗号化の詳細をご覧ください。
HashiCorp Vault
HashiCorp Vault は、パスワード、トークン、キーなどの機密データの保護、保存、アクセス制御のためのツールです。デジタル空間上の金庫のように機能し、権限のないユーザーから秘密を守りながら、適切な権限を持つサービスでいつでも利用できます。