ワークロード接続を構成する

ワークロード接続は、Okta Privileged Accessとワークロードのアイデンティティソースとの間に関係を確立するトラストアンカーです。認証方法は、JWTベースの認証(GitHub、GitLab、CircleCIなどの外部のアイデンティティプロバイダーを使用)とAPIキーベースの認証(セキュリティ管理者が管理するシークレットを使用)の2種類から選択できます。

JWT接続の場合、職務分掌セキュリティモデルが適用されます。つまり、DevOps管理者がドラフトモードで接続を構成・テストし、セキュリティ管理者が最終レビューを行って接続をアクティブステータスに昇格させ、ライブトークンの発行を可能にします。APIキー接続の場合、セキュリティ管理者が接続の作成・管理を行います。

JWT接続の場合、汎用的なJWT構成または特定のプロバイダー統合のいずれかを使用できます。特定の統合では、事前定義されたフィールドを使って、合理化されたセットアップエクスペリエンスが提供されますが、基盤となるセキュリティメカニズムは変わりません。どちらの方法でも、標準のJSON Web Token(JWT)がワークロードIDのドキュメントとして使用されるため、検証を成功させるにはJWKS URLや必須クレームなど、同じコアセキュリティ要素が必要です。

開始する前の確認事項

  • JWTワークロード接続の場合、ドラフトワークロード接続を作成するにはDevOps管理者ロールが必要です。この接続を有効または無効にするには、セキュリティ管理者ロールが必要です。

  • APIキーワークロード接続の場合、接続を作成、管理、有効にするにはセキュリティ管理者ロールが必要です。

  • JWT接続の場合、次のいずれかのJWT統合方法を使用できます。

    • 汎用JWT:JWTを検証し、ワークロードを識別するために、JWKS検証ソースを入力して必要なクレーム( issaudsubなど)をすべて指定しなければなりません。検証ソースはJWKS URL、または直接貼り付けまたはアップロードする静的JWKSコンテンツのいずれかです。

    • 特定のプロバイダー:Oktaのユーザーインターフェイスには、事前構成されたフィールドとプロバイダー固有のJWT構造のネイティブサポートが用意されています。CircleCIの組織IDなど、一般的な識別子を入力すると、必要なクレーム(と場合によってはJWKS URL)が自動的に書き込まれます。

汎用JWTのワークロード接続を作成する

  1. Okta Privileged Accessダッシュボードで、DevOps管理(DevOps Administration) > ワークロード接続(Workload connections)に移動します。

  2. ワークロード接続を作成する(Create Workload Connection)をクリックします。

  3. 汎用JWT(Generic JWT)をクリックします。

  4. 以下の詳細を完了します。

    設定 アクション
    接続名 URLに分かりやすい一意の名前を入力します。

    接続の説明

    説明を入力します。

    トークンの存続時間(TTL)を選択する

    数量(Amount)単位(Unit)を入力します。これらは、Okta Privileged Accessアクセストークンが発行されてから有効な期間を定義します。

    JWTセットアップ情報

    Okta Privileged AccessがプロバイダーのJWT署名を検証するための公開鍵を取得する方法を選択します。次のタブのいずれかを選択します。

    • JWKS URLOkta Privileged Accessが実行時に公開鍵を取得するURLを入力します。

    • 貼り付け/アップロード(Paste/Upload):JWKS JSONをフィールドに直接貼り付けるか、アップロードするファイルを選択します。このファイルの内容はブラウザで読み取られ、サーバーにはアップロードされません。入力は、少なくとも1つのキーを含むkeys配列を持つ完全なJWKS JSONオブジェクトでなければなりません。

    必須クレーム

    ワークロードのJWTで満たす必要がある基準を定義します。Oktaは、デバッグスクリプトまたはjwt.ioを使用してJWTを調べることを推奨します。

    1. ソースフィールド名(Source Field Name)を入力します。

    2. 演算子タイプを選択します。

      • 等しい(Equals)

      • 次で始まる:

      • 存在する(Exists)

        存在する(Exists)を選択した場合、値(Value)を入力する必要はありません。

    3. 値(Value)を入力します。

    4. 任意。条件を追加(Add a condition)をクリックして上記の手順を繰り返します。

  5. ワークロード接続を作成する(Create Workload Connection)をクリックします。

プロバイダー固有のワークロード接続を作成する

  1. Okta Privileged Accessダッシュボードで、DevOps管理(DevOps Administration) > ワークロード接続(Workload connections)に移動します。

  2. ワークロード接続を作成する(Create Workload Connection)をクリックします。

  3. 接続タイプを選択し、プロバイダー固有のフィールドに入力してから、次へ(Next)をクリックします。

    接続タイプ フィールド

    Azureのマネージド ID(Azure Managed Identity)

    AzureのテナントID(Azure Tenant ID)を入力します。

    CiecleCI

    1. 組織ID(Organization ID)を入力します。
    2. 任意。 プロジェクトIDにスコープする(Scope to Project ID)を選択し、 IDを入力します。

    GitHubアクション(GitHub Actions)

    GitHub オーナー(GitHub Owner)を入力します。

    GitLab

    1. ドメイン(Domain)の名前を入力します。
    2. 任意。 グループ名にスコープする(Scope to Group name)を選択し、グループ名を入力します。
    3. 任意。 プロジェクト名にスコープする(Scope to Project Name)を選択し、プロジェクト名を入力します。
    4. 任意。 プロジェクトIDにスコープする(Scope to Project ID)を選択し、プロジェクトIDを入力します。

    Google Cloud Provider

    1. アプリクライアントID(App Client ID) を入力します。
    2. 任意。メールへのスコープ(Scope to Email)を選択してから、メールを入力します。
    3. 任意。アカウントIDへのスコープ(Scope to Account ID)を選択してから、アカウントIDを入力します。

    Kubernetes

    クラスター発行元URL(Cluster Issuer URL)を入力します。

    Azure DevOps

    Azure DevOps組織ID(Azure DevOps Organization ID)を入力します。

    Buildkite

    Buildkite組織スラッグ(Buildkite Organization Slug)を入力します。

    Harness

    Harnessクラスター(Harness cluster)およびHarnessアカウントID(Harness Account ID)]を入力します。

    Jenkins

    JenkinsベースURL(Jenkins Base URL)を入力します。

    Pulumi ESC

    PulumiのOrg名(Pulumi Org Name)を入力します。

  4. 以下の詳細を完了します。

    設定 アクション
    接続名 URLに分かりやすい一意の名前を入力します。

    接続の説明

    説明を入力します。

    トークンの存続時間(TTL)を選択する

    数量(Amount)単位(Unit)を入力します。これらは、Okta Privileged Accessアクセストークンが発行されてから有効な期間を定義します。

    JWTセットアップ情報

    JWKS URLタブで、Okta Privileged Accessが実行時に公開鍵を取得するURLを入力します。

    必須クレーム

    ワークロードのJWTで満たす必要がある基準を定義します。Oktaは、デバッグスクリプトまたはjwt.ioを使用してJWTを調べることを推奨します。

    1. ソースフィールド名(Source Field Name)を入力します。

    2. 演算子タイプを選択します。

      • 等しい(Equals)

      • 次で始まる:

      • 存在する(Exists)

        存在する(Exists)を選択した場合、値(Value)を入力する必要はありません。

    3. 値(Value)を入力します。

    4. 任意。条件を追加(Add a condition)をクリックして上記の手順を繰り返します。

  5. ワークロード接続を作成する(Create Workload Connection)をクリックします。

APIキーワークロード接続を作成する

APIキーワークロード接続を使用すると、ワークロードはJWTの代わりにマネージドAPIキーを使用して認証できます。この方法は、非クラウドワークロードや、フェデレーションされたIDプロバイダーが利用できない場合に最適です。APIキー接続を作成できるのはセキュリティ管理者のみです。

  1. Okta Privileged Accessダッシュボードで、DevOps管理(DevOps Administration) > ワークロード接続(Workload connections)に移動します。

  2. ワークロード接続を作成する(Create Workload Connection)をクリックします。

  3. APIキー(API Key)をクリックします。

  4. 以下の詳細を完了します。

    設定 アクション
    接続名 URLに分かりやすい一意の名前を入力します。

    接続の説明

    説明を入力します。

    トークンの存続時間(TTL)を選択する

    数量(Amount)単位(Unit)を入力します。これらは、Okta Privileged Accessアクセストークンが発行されてからの有効な期間を定義します。

  5. ワークロード接続を作成する(Create Workload Connection)をクリックします。

ワークロード接続を管理する

DevOps管理者がテストの完了を確認した後、セキュリティ管理者が接続を昇格させます。

  1. Okta Privileged Accessダッシュボードで、DevOps管理(DevOps Administration) > ワークロード接続(Workload connections)に移動します。

  2. 管理したいワークロード接続を選択します。

  3. アクション(Actions)をクリックし、編集(Edit)アクティブ化(Activate)、または非アクティブ化(Deactivate)を選択します。

  4. ワークロード接続をアクティブ化する(Activate workload connection)をクリックします。

関連項目