Private Actions 資格情報の処理

概要

Private Actions を使用すると、パブリックインターネットにサービスを公開することなく、プライベートネットワーク上でホストされているサービスと Datadog のワークフローやアプリをやり取りさせることができます。Private Actions を使用するには、ネットワーク内のホストにプライベートアクションランナーをインストールし、そのランナーを Datadog コネクションとペアリングする必要があります。ランナーのセットアップとコネクションとのペアリングの詳細については、Private Actionsを参照してください。

Jenkins や PostgreSQL など、一部の Private Actions は、機能するために資格情報を必要とします。Private Actions の資格情報を設定するには、次の手順を実行する必要があります。

  1. ランナーの構成を保存したディレクトリに移動します(デフォルト: config/credentials/)。
  2. このディレクトリに、資格情報ファイルで提供されている JSON 構造を使用して JSON ファイルを作成します。または、ランナーのブートストラップ中に自動生成されたデフォルトの JSON ファイルを編集します。
    • 注: これらのファイルは、ランナーの /etc/dd-action-runner/config/credentials/ ディレクトリで利用可能です。
  3. プライベートアクションランナーのコネクションで資格情報へのパスを指定します。コンテナ上のファイルへのパスを使用してください。たとえば: /etc/dd-action-runner/config/credentials/jenkins_token.json。

資格情報ファイル

HTTP は 3 つの認証メソッドをサポートしています。

  • 基本認証: HTTP サーバーでユーザー名とパスワードによる認証が必要な場合に使用します。
  • トークン認証: HTTP サーバーでヘッダーまたはクエリパラメータに 1 つ以上のカスタムトークンが必要な場合に使用します。
  • 認証なし: HTTP サーバーで認証が不要な場合に使用します。

基本認証

基本認証には、ユーザー名とパスワードを含む資格情報ファイルが必要です。

/etc/dd-action-runner/config/credentials/http_basic.json

{
	"auth_type": "Basic Auth",
	"credentials": [
		{
			"username": "USERNAME",
			"password": "PASSWORD"
		}
	]
}

USERNAME と PASSWORD を、ユーザー名とパスワードに置き換えてください。

ランナーのコネクションで、プライベートアクションランナーのコンテナ上にある認証情報ファイルの場所を指定してください。この例では、認証情報ファイルは /etc/dd-action-runner/config/credentials/http_basic.json に保存されています。

認証情報ファイルへのパスは '/etc/dd-action-runner/config/credentials/http_basic.json' です。

トークン認証

トークン認証には、トークン名と値の配列を含む認証情報ファイルが必要です。

/etc/dd-action-runner/config/credentials/http_token.json

{
	"auth_type": "Token Auth",
	"credentials": [
		{
			"tokenName": "TOKEN1",
			"tokenValue": "VALUE1"
		},
		{
			"tokenName": "TOKEN2",
			"tokenValue": "VALUE2"
		}
	]
}

TOKEN1、TOKEN2、VALUE1、および VALUE2 を、実際のトークン名と値に置き換えてください。

ランナーのコネクションで、プライベートアクションランナーのコンテナ上にある認証情報ファイルの場所を指定してください。この例では、認証情報ファイルは /etc/dd-action-runner/config/credentials/http_token.json に保存されています。

認証情報ファイルへのパスは '/etc/dd-action-runner/config/credentials/http_token.json' です。

認証なし

この接続タイプは、認証を必要としない HTTP エンドポイントに適しています。

この接続を設定するには、エンドポイント URL を指定してください。

認証なしの HTTP 接続

GitLab 接続では、以下の認証情報を使用できます。

認証情報必須説明
baseURLはいセルフマネージド型 GitLab インスタンスの URL。詳細については、GitLab API ドキュメントを参照してください。
gitlabApiTokenはいGitLab インスタンスで認証するための API トークン。このトークンは、GitLab のユーザー設定で生成してください。

すべての認証情報を 1 つのファイルに含めてください。

/etc/dd-action-runner/config/credentials/gitlab_token.json

{
        "auth_type": "Token Auth",
        "credentials": [
                {
                        "tokenName": "gitlabApiToken",
                        "tokenValue": "GITLAB_API_TOKEN"
                },
                {
                        "tokenName": "baseURL",
                        "tokenValue": "GITLAB_URL"
                }
        ]
}

GITLAB_API_TOKEN と GITLAB_URL を認証情報に置き換えます。

ランナーのコネクションで、プライベートアクションランナーのコンテナ上にある認証情報ファイルの場所を指定してください。この例では、認証情報ファイルは /etc/dd-action-runner/config/credentials/gitlab_token.json に保存されています。

認証情報ファイルへのパスは '/etc/dd-action-runner/config/credentials/gitlab_token.json' です。

Jenkins 接続では、以下の認証情報を受け入れます。

認証情報必須説明
domainはい接続先の Jenkins サーバーのドメイン。
usernameはいJenkins サーバーでの認証に使用する Jenkins ユーザーのユーザー名。このユーザーには、ランナーに実行させるアクションを実行するために必要な権限が必要です。
tokenはいJenkins サーバーでの認証に使用する Jenkins ユーザーの API トークン。このユーザーには、実行させるアクションを実行するために必要な権限が必要です。API トークンは Jenkins ユーザー設定で生成できます。

すべての認証情報を 1 つのファイルに含めてください。

/etc/dd-action-runner/config/credentials/jenkins_token.json

{
        "auth_type": "Token Auth",
        "credentials": [
                {
                        "tokenName": "username",
                        "tokenValue": "USERNAME"
                },
                {
                        "tokenName": "token",
                        "tokenValue": "API_TOKEN"
                },
                {
                        "tokenName": "domain",
                        "tokenValue": "DOMAIN"
                }
        ]
}

USERNAME、API_TOKEN、および DOMAIN を認証情報に置き換えます。

ランナーのコネクションで、プライベートアクションランナーのコンテナ上にある認証情報ファイルの場所を指定してください。この例では、認証情報ファイルは /etc/dd-action-runner/config/credentials/jenkins_token.json に保存されています。

認証情報ファイルへのパスは '/etc/dd-action-runner/config/credentials/jenkins_token.json' です。

MongoDB は 2 つの認証方法をサポートしています。

  • SRV 認証: MongoDB Atlas に接続する場合、またはレプリカセットの自動検出とフェイルオーバーが必要な場合に使用します。このメソッドは、DNS SRV レコードを使用して、レプリカセットのすべてのメンバーを自動的に検出します。
  • 標準認証: MongoDB サーバーに直接接続する場合、または正確なホストとポートを指定する必要がある場合に使用します。

SRV 認証

MongoDB SRV 認証には、以下の認証情報が必要です。

認証情報必須説明
usernameはい認証に使用する MongoDB ユーザー名。
passwordはい認証用のMongoDBパスワードです。
srvHostはいMongoDB Atlasまたはレプリカセット検出用のSRVホストです。
databaseいいえ接続先のデータベース名です。

すべての認証情報を 1 つのファイルに含めてください。

/etc/dd-action-runner/config/credentials/mongodb_srv_token.json

{
        "auth_type": "Token Auth",
        "credentials": [
                {
                        "tokenName": "username",
                        "tokenValue": "USERNAME"
                },
                {
                        "tokenName": "password",
                        "tokenValue": "PASSWORD"
                },
                {
                        "tokenName": "srvHost",
                        "tokenValue": "SRV_HOST"
                },
                {
                        "tokenName": "database",
                        "tokenValue": "DATABASE"
                }
        ]
}

USERNAME、PASSWORD、SRV_HOST、およびDATABASEを認証情報に置き換えてください。

ランナーのコネクションで、プライベートアクションランナーのコンテナ上にある認証情報ファイルの場所を指定してください。この例では、認証情報ファイルは /etc/dd-action-runner/config/credentials/mongodb_srv_token.json に保存されています。

認証情報ファイルのパスは '/etc/dd-action-runner/config/credentials/mongodb_srv_token.json' です。

標準認証

MongoDB標準認証では、以下の認証情報を受け付けます。

認証情報必須説明
usernameはい認証用のMongoDBユーザー名です。
passwordはい認証用のMongoDBパスワードです。
hostはいMongoDBサーバーのホスト名です。
portはいMongoDBサーバーのポート番号です。
databaseいいえ接続先のデータベース名です。
authSourceいいえユーザーの認証情報が含まれるデータベースです。adminとは異なるデータベースにユーザーが作成されているかどうかを指定します。
authMechanismいいえ使用する認証メカニズムです。特定の認証メカニズムが必要かどうかを指定します。

すべての認証情報を 1 つのファイルに含めてください。

/etc/dd-action-runner/config/credentials/mongodb_standard_token.json

{
        "auth_type": "Token Auth",
        "credentials": [
                {
                        "tokenName": "username",
                        "tokenValue": "USERNAME"
                },
                {
                        "tokenName": "password",
                        "tokenValue": "PASSWORD"
                },
                {
                        "tokenName": "host",
                        "tokenValue": "HOST"
                },
                {
                        "tokenName": "port",
                        "tokenValue": "PORT"
                },
                {
                        "tokenName": "database",
                        "tokenValue": "DATABASE"
                },
                {
                        "tokenName": "authSource",
                        "tokenValue": "AUTH_SOURCE"
                },
                {
                        "tokenName": "authMechanism",
                        "tokenValue": "AUTH_MECHANISM"
                }
        ]
}

USERNAME、PASSWORD、HOST、PORT、DATABASE、AUTH_SOURCE、およびAUTH_MECHANISMを認証情報に置き換えてください。

ランナーのコネクションで、プライベートアクションランナーのコンテナ上にある認証情報ファイルの場所を指定してください。この例では、認証情報ファイルは/etc/dd-action-runner/config/credentials/mongodb_standard_token.jsonに保存されています。

認証情報ファイルのパスは '/etc/dd-action-runner/config/credentials/mongodb_standard_token.json' です。

PostgreSQL コネクションでは、以下の認証情報を使用できます。

認証情報必須説明
hostはい接続先のホスト名。詳しくは、PostgreSQL 公式ドキュメントをご覧ください。
portはいサーバーホストへの接続に使用するポート番号、または UNIX ドメイン接続用のソケットファイル名拡張子。詳しくは、PostgreSQL 公式ドキュメントをご覧ください。
userはい接続に使用する PostgreSQL ユーザー名。

詳しくは、PostgreSQL 公式ドキュメントをご覧ください。
passwordはいサーバーがパスワード認証を要求する場合に使用するパスワード。

詳しくは、PostgreSQL 公式ドキュメントをご覧ください。
databaseはいデータベース名。詳しくは、PostgreSQL 公式ドキュメントをご覧ください。
sslmodeはいこのオプションは、サーバーとの安全な SSL TCP/IP コネクションをネゴシエートするかどうか、またその優先順位を決定します。

利用可能なオプションは require と disable です。

詳しくは、PostgreSQL 公式ドキュメントをご覧ください。
applicationNameいいえPostgreSQL サーバーに接続するアプリケーションの名前。詳しくは、PostgreSQL 公式ドキュメントをご覧ください。
searchPathいいえスキーマ検索パスを設定してください。詳しくは、PostgreSQL 公式ドキュメントをご覧ください。

すべての認証情報を 1 つのファイルに含めてください。

/etc/dd-action-runner/config/credentials/postgresql_token.json

{
        "auth_type": "Token Auth",
        "credentials": [
                {
                        "tokenName": "host",
                        "tokenValue": "HOST_NAME"
                },
                {
                        "tokenName": "port",
                        "tokenValue": "PORT"
                },
                {
                        "tokenName": "user",
                        "tokenValue": "USER"
                },
                {
                        "tokenName": "password",
                        "tokenValue": "PASSWORD"
                },
                {
                        "tokenName": "database",
                        "tokenValue": "DATABASE_NAME"
                },
                {
                        "tokenName": "sslmode",
                        "tokenValue": "require"
                },
                {
                        "tokenName": "applicationName",
                        "tokenValue": "APPLICATION_NAME"
                },
                {
                        "tokenName": "searchPath",
                        "tokenValue": "SEARCH_PATH"
                }
        ]
}

例の値を実際の認証情報に置き換えてください。

ランナーのコネクション設定で、プライベートアクションランナーのコンテナ上にある認証情報ファイルの場所を指定してください。この例では、認証情報ファイルは /etc/dd-action-runner/config/credentials/postgresql_token.json に保存されています。

認証情報ファイルへのパスは '/etc/dd-action-runner/config/credentials/postgresql_token.json' です。

Temporal は 3 つの認証方法をサポートしています。

  • mTLS 認証: サーバーとクライアント間の双方向証明書認証による、最も安全な通信に使用します。
  • TLS 認証: サーバー証明書認証による安全な通信に使用します。
  • 認証なし: 暗号化されていない通信に使用します(本番環境では推奨されません)。

mTLS 認証

Temporal mTLS 認証には、以下の認証情報が必要です。

認証情報必須説明
serverAddressはいサーバーアドレス(ホスト名およびオプションのポート)。未定義の場合、ポートはデフォルトで 7233 になります。
serverNameOverrideはいTLS ホスト名チェックに使用されるターゲット名(SNI)を上書きするサーバー名。これは、Temporal サーバーの前にリバースプロキシがあり、カスタムルールに基づいてトラフィックを適切なバックエンドにルーティングするために SNI を上書きしたい場合に役立ちます。
serverRootCACertificateはいサーバーによって使用されるルート CA 証明書。設定されていない場合でも、サーバーの証明書が信頼された認証局によって発行されているのであれば、検証は成功します(例: AWS、Google Cloud、Azure などのクラウドプロバイダーを使用している場合。これらは信頼された認識済みの CA を通じてサーバー証明書を発行します)。
clientCertPairCrtはいmTLS で接続するためのクライアント証明書。
clientCertPairKeyはいmTLS で接続するためのクライアントキー。

すべての認証情報を 1 つのファイルに含めてください。

/etc/dd-action-runner/config/credentials/temporal_mTLS_token.json

{
        "auth_type": "Token Auth",
        "credentials": [
                {
                        "tokenName": "serverAddress",
                        "tokenValue": "SERVER_ADDRESS"
                },
                {
                        "tokenName": "serverNameOverride",
                        "tokenValue": "SERVER_NAME_OVERRIDE"
                },
                {
                        "tokenName": "serverRootCACertificate",
                        "tokenValue": "SERVER_ROOT_CA_CERTIFICATE"
                },
                {
                        "tokenName": "clientCertPairCrt",
                        "tokenValue": "CLIENT_CERTIFICATE"
                },
                {
                        "tokenName": "clientCertPairKey",
                        "tokenValue": "CLIENT_KEY"
                }
        ]
}

SERVER_ADDRESS、SERVER_NAME_OVERRIDE、SERVER_ROOT_CA_CERTIFICATE、CLIENT_CERTIFICATE、および CLIENT_KEY をご自身の認証情報に置き換えてください。

ランナーのコネクション設定で、プライベートアクションランナーのコンテナ上にある認証情報ファイルの場所を指定してください。この例では、認証情報ファイルは /etc/dd-action-runner/config/credentials/temporal_mTLS_token.json に保存されています。

認証情報ファイルへのパスは '/etc/dd-action-runner/config/credentials/temporal_mTLS_token.json' です。

TLS 認証

Temporal TLS 認証には、以下の認証情報が必要です。

認証情報必須説明
serverAddressはいサーバーアドレス(ホスト名およびオプションのポート)。未定義の場合、ポートはデフォルトで 7233 になります。
serverNameOverrideはいTLSホスト名チェックに使用されるターゲット名を上書きするサーバー名(SNI)。これは、Temporal サーバーの前にリバースプロキシがあり、カスタムルールに基づいてトラフィックを適切なバックエンドにルーティングするために SNI を上書きしたい場合に役立ちます。
serverRootCACertificateはいサーバーによって使用されるルートCA証明書。設定されていない場合でも、サーバーの証明書が信頼された認証局によって発行されているのであれば、検証は成功します(例: AWS、Google Cloud、Azure などのクラウドプロバイダーを使用している場合。これらは信頼された認識済みの CA を通じてサーバー証明書を発行します)。

すべての認証情報を 1 つのファイルに含めてください。

/etc/dd-action-runner/config/credentials/temporal_TLS_token.json

{
        "auth_type": "Token Auth",
        "credentials": [
                {
                        "tokenName": "serverAddress",
                        "tokenValue": "SERVER_ADDRESS"
                },
                {
                        "tokenName": "serverNameOverride",
                        "tokenValue": "SERVER_NAME_OVERRIDE"
                },
                {
                        "tokenName": "serverRootCACertificate",
                        "tokenValue": "SERVER_ROOT_CA_CERTIFICATE"
                }
        ]
}

SERVER_ADDRESS、SERVER_NAME_OVERRIDE、および SERVER_ROOT_CA_CERTIFICATE をご自身の認証情報に置き換えてください。

ランナーのコネクション設定で、プライベートアクションランナーのコンテナ上にある認証情報ファイルの場所を指定してください。この例では、認証情報ファイルは /etc/dd-action-runner/config/credentials/temporal_TLS_token.json に保存されています。

認証情報ファイルへのパスは '/etc/dd-action-runner/config/credentials/temporal_TLS_token.json' です。

認証なし

このコネクションタイプは暗号化されていない通信を使用するため、本番環境での使用は推奨されません。開発環境またはコネクションテストでのみ使用してください。本番環境で使用する場合は、TLSまたはmTLS認証タイプの使用を検討してください。

このコネクションタイプには、以下の認証情報が必要です:

認証情報必須説明
addressはいサーバーのホスト名およびオプションのポート。アドレスにホストのみが含まれている場合、ポートはデフォルトで7233になります。

このコネクションタイプでは、アドレスは機密情報ではなくDatadogに直接保存されるため、認証情報ファイルを作成する必要はありません。設定するには、サーバーアドレスを指定してください:

セキュリティで保護されていないTemporalコネクション