概要
このガイドに従うと、Datadog Operator を使用して Datadog Agent 内にプライベートアクションランナーをデプロイし、Datadog が自動的に承認する読み取り専用アクションを実行できます。
これは、使用を開始するための推奨される方法です。次の構成を使用します。
スタンドアロンのホストプロセスとしてではなく、- Datadog Agent 内でランナーを実行します。
Kubernetes 上で - Datadog Operator を使用してインストールします。
ランナーが実行ポリシーで承認されるように、- API キーで登録します。
- Datadog のデフォルトの実行ポリシーに依存します。これは Datadog が提供するもので、すべてのランナーで読み取り専用の Kubernetes アクションおよび Remote Action アクションをセットアップなしで承認します。
このガイドを完了すると、ランナーを登録して、読み取り専用アクションを実行できるようになります。
前提条件
ステップ 1: プライベートアクションランナー機能を持つ API キーを作成する
所有者のいないランナーは、プライベートアクションランナー機能を持つ API キーで登録されます。アプリケーションキーは必要ありません。
- Datadog で、[Organization Settings] (組織設定) > [API Keys] (API キー) に移動し、API キーを作成または選択します。
- キーの [PAR] (プライベートアクションランナー機能) の横にある [Enable] (有効化) をクリックします。
- キーの値を、Agent が読み取る Kubernetes シークレットに保存します。
kubectl create secret generic datadog-secret \
--from-literal api-key=<DD_API_KEY>
ステップ 2: Datadog Operator を使用してランナーをデプロイする
Operator アノテーションを使用して、DatadogAgent リソースでランナーを有効にします。以下の例では、ノード Agent と Cluster Agent の両方でランナーを有効にして、API キーで所有者なしとして登録し、少数の読み取り専用アクションを許可しています。
apiVersion: datadoghq.com/v2alpha1
kind: DatadogAgent
metadata:
name: datadog
annotations:
agent.datadoghq.com/private-action-runner-enabled: "true"
agent.datadoghq.com/private-action-runner-configdata: |
private_action_runner:
enabled: true
api_key_only_enrollment: true
actions_allowlist:
- "com.datadoghq.remoteaction.*"
- "com.datadoghq.script.*"
cluster-agent.datadoghq.com/private-action-runner-enabled: "true"
cluster-agent.datadoghq.com/private-action-runner-configdata: |
private_action_runner:
enabled: true
api_key_only_enrollment: true
actions_allowlist:
- "com.datadoghq.kubernetes.*"
- "com.datadoghq.script.*"
spec:
global:
clusterName: <YOUR_CLUSTER_NAME>
site:
credentials:
apiSecret:
secretName: datadog-secret
keyName: api-key
マニフェストを適用します。
kubectl apply -f datadog-agent.yaml
api_key_only_enrollment が設定されており、API キーのみを提供しているため、各ランナーは起動時に所有者なしとして自動登録されます。これは、実行ポリシーによって承認されることを意味します。このマニフェストは、このガイドのための最小限の Operator 設定です。ランナーの完全な構成、その他のインストール方法 (ホスト、Windows、Helm)、および完全なフィールドリファレンスについては、Datadog Agent でプライベートアクションランナーをセットアップするを参照してください。登録の詳細については、登録と所有権を参照してください。
この例の actions_allowlist エントリは、このガイドで使用するアクションを許可するためにバンドルのワイルドカードを使用しています。代わりにランナーの組み込みの読み取り専用アクションを使用するには、actions_allowlist を空のままにします。その場合、ランナーはデフォルトのアクションセットを有効にします。これには、読み取り専用の Remote Action ネットワークおよびシェルアクションと、Cluster Agent 上の読み取り専用 Kubernetes アクションのセットが含まれます。
ステップ 3: ランナーが登録されていることを確認する
Datadog で、[Private Action Runners] (プライベートアクションランナー) に移動します。新しいランナーが一覧に表示されていることを確認します。
Cluster Agent のログで、ランナーが起動したことを確認することもできます。
kubectl logs -l app.kubernetes.io/component=cluster-agent --tail=1000 | grep private
ノード Agent のログやその他のプラットフォームについては、ログを使用したデバッグを参照してください。
Datadog は、組織内にデフォルトの実行ポリシーをプロビジョニングします。これらのポリシーはターゲットセレクターに * を使用するため、プライベートアクションランナーを実行するすべての Agent (ここでデプロイしたものを含む) を自動的にカバーします。これにより、独自の実行ポリシーを設定することなく、読み取り専用アクションが承認されます。Datadog のデフォルトの実行ポリシーを参照してください。
ステップ 4: 最初のアクションを実行する
新しいランナーに対して読み取り専用の Kubernetes アクションを Action Catalog から実行します。Action Catalog は、ワークフローのステップと同じ方法でアクションを実行します (ターゲット Agent を選択し、入力を提供して、アクションを実行します)。
- Datadog Action Catalog で、[List Pods] (Pod を一覧表示) (
com.datadoghq.kubernetes.core.listPod) を開きます。 - [Configure connection] (コネクションを構成) で、[Connection] (コネクション) タブではなく [Target] (ターゲット) タブを選択します。
- [Orch Cluster ID] (オーケストレーションクラスター ID) に、ランナーを実行しているクラスターのオーケストレーションクラスター ID を設定します。オーケストレーションクラスター ID は、Fleet Automation のフリートビューでクラスターのタグから確認できます。
- [Configure inputs] (入力を構成) で、Pod を一覧表示する [Namespace] (名前空間) を入力します。[Field selector] (フィールドセレクター)、[Label selector] (ラベルセレクター)、または [Limit] (上限) を設定することもできます。
- [Run] (実行) をクリックします。結果がパネルに表示されます。
アクションがランナーで実行され、その結果が返されます。同じアクションをワークフローから実行するには、Workflow Automation でプライベートアクションステップを追加して、コネクションピッカーで [Target] を選択します。ワークフローで実行ポリシーを使用するを参照してください。
次のステップ
このガイドでは、読み取り専用アクションのみを許可する Datadog のデフォルトの実行ポリシーを使用しています。書き込み可能なアクションを実行する場合や、特定のチームや環境にアクセスを限定する場合は、独自の実行ポリシーを作成してください。実行ポリシーを参照してください。
参考資料