Custom implementation in Bamboo

お困りですか?

アトラシアン コミュニティをご利用ください。

コミュニティに質問

To add extra security to your Bamboo site, you can encrypt the database password that is stored in the bamboo.cfg.xml file.

If you don't want to use the AES encryption, AWS Secrets Manager, or HashiCorp Vault encryption methods provided by Bamboo, you can choose to create your own SecretStore implementation. This may be especially useful if:

  • パスワードを保存するのに特定のボールトを使用する必要がある。

  • 別の暗号化アルゴリズムを使用したい。

この手順では、Java と Maven に精通していることを前提としています。

Step 1: Create a Maven project and get API dependencies:

Maven プロジェクトを作成して API 依存関係を取得するには、次の手順に従います。

  1. <Bamboo_installation_directory>/atlassian-bamboo/WEB-INF/lib ディレクトリに移動します。

  2. 次のコマンドを使用して、atlassian-secrets-api.jar ファイルをローカルの Maven リポジトリにインストールします。

    mvn install:install-file \
       -Dfile=./atlassian-secrets-api-<version>.jar \
       -DgroupId=com.atlassian.secrets \
       -DartifactId=atlassian-secrets-api \
       -Dversion=<version> \
       -Dpackaging=jar \
       -DgeneratePom=true
  3. Install the atlassian-secrets-store.jar file into local maven repository with the following command:

    mvn install:install-file \
       -Dfile=./atlassian-secrets-store-<version>.jar \
       -DgroupId=com.atlassian.secrets \
       -DartifactId=atlassian-secrets-store \
       -Dversion=<version> \
       -Dpackaging=jar \
       -DgeneratePom=true
  4. 次の pom を使用して Maven プロジェクトを作成します。

    <?xml version="1.0" encoding="UTF-8"?>
    <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.0http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
     
      <groupId><your_group_ID></groupId>
      <artifactId><your_artifact_ID></artifactId>
      <version><your_version></version>
     
      <properties>
        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
      </properties>
    
      <build>
        <resources>
          <resource>
            <directory>src/main/resources/libs</directory>
            <excludes>
              <exclude>*</exclude>
            </excludes>
            <filtering>false</filtering>
          </resource>
        </resources>
      </build>
     
      <dependencies>
        <dependency>
          <groupId>com.atlassian.secrets</groupId>
          <artifactId>atlassian-secrets-api</artifactId>
          <version><api_version></version>
          <scope>provided</scope>
        </dependency>
        <dependency>
          <groupId>com.atlassian.secrets</groupId>
          <artifactId>atlassian-secrets-store</artifactId>
          <version><api_version></version>
          <scope>provided</scope>
        </dependency>
      </dependencies>
    </project>

ステップ 2. SecretStore インターフェイスを実装する

The SecretStore interface contains two methods that you need to implement according to your requirements; store and get. The get method is called during Bamboo startup, which means that long-running tasks can affect the startup time. The store method is not called by Bamboo, as it's only used in the encryption tool.



From Bamboo 9.5, the Cipher interface should be considered deprecated. Instead, you should use the new interface, SecretStore, and its corresponding methods, store and get. These methods supersede the equivalent Cipher interface methods, encrypt and decrypt.

Cipher インターフェイスとそのメソッドは引き続き使用できますが、将来的には廃止されるため、新しい暗号化機能を設定するときには使用しないでください。


例として Base64SecretStoreAlgorithmSecretStore を使用できます。

ステップ 3. 実装をテストする

The encryption tool described in AES encryption uses the same code as Bamboo to decrypt the password. You can use it to test your implementation.

CLI と jar が同じフォルダーにあるとします。

java -cp "./*" com.atlassian.secrets.cli.db.DbCipherTool -c your.package.here.ClassName

ステップ 4. ライブラリを利用可能にする

After upgrading Bamboo, you'll need to copy your lib to the Bamboo installation directory again.

Bamboo must be able to access your library. Your class will be instantiated using reflection.

Put the library in the <Bamboo-installation-directory>/atlassian-bamboo/WEB-INF/lib directory.



最終更新日 2024 年 7 月 1 日

この内容はお役に立ちましたか?

はい
いいえ
この記事についてのフィードバックを送信する
Powered by Confluence and Scroll Viewport.