ワークロード認証のCLIコマンド

インタラクティブでない自律型の操作には、 Okta Privileged Access クライアントCLIを使用します。ワークロードは、 sft workload authenticateコマンド (別名 sft wl auth)を実行することで一時的なアクセストークンを認証し、取得します。これは、人間の介入に依存できない自動化スクリプトやCI/CDパイプラインに不可欠です。ワークロードの接続タイプに応じて、JWTベースの資格情報、APIキーまたはAWS IAM資格情報を使用して認証できます。

開始する前の確認事項

  • DevOps管理者またはDevOpsエンジニアのロールを持っている。

  • JWT認証の場合(For JWT authentication):ワークロードプロバイダーからIDトークンを取得し、環境変数にASとして設定している。

  • APIキー認証の場合(For API key authentication):セキュリティ管理者がワークロード接続用のAPIキーを生成し、安全なチャネルを通じて配信されている。セキュリティ管理者がAPIキーを作成する方法の詳細については、「APIキーの生成、ローテーション、および取り消し」を参照してください。

  • AWS IAM認証の場合(For AWS IAM authentication):ワークロードをAWSで実行する必要はありませんが、環境で利用可能な有効なAWS資格情報が必要です。たとえば、AWSリソースに添付されたIAMロールや、指定されたAWSプロファイルから資格情報を取得できます。ワークロード接続のタイプはAWS IAMです。

JWTワークロード認証の使用例

sftワークロード認証はインタラクティブではないため、そのトークンをスクリプトで使用する環境変数(OPA_TOKEN)としてエクスポートできます。

  1. 環境変数のOPA_ADDRとSFT_TEAMを設定します。

    
    export OPA_ADDR=<URL>
    export SFT_TEAM=<my-team>
                   
  2. 次のコマンドを実行して、ワークロード認証のSSH設定を構成します。

    sft ssh-config >> ~/.ssh/config

    この手順が完了すると、ネイティブSSHおよびSCPコマンドは、sft sshラッパーを必要とすることなく、自動的にSFTプロキシを介してルーティングされます。例:scp <local-file> <hostname>:/remote/path。

  3. 次のコマンドを実行して OPA_TOKENを取得します。

    OPA_TOKEN=$(sft wl authenticate \
    --team <my-team> \
    --connection <workload-connection-name> \
    --jwt-env <my-jwtnnnenv> \
    --role-hint <workload-role-name>)		
  4. 次のコマンドを実行して、構成をテストします。

    sft ssh myhost --command "echo hello"

APIキーワークロード認証の使用例

APIキー認証で構成されたワークロード接続では、JWTの代わりにAPIキーを直接使用します。セキュリティ管理者はAPIキーを帯域外でDevOpsエンジニアに配信します。

  1. 環境変数のOPA_ADDRとSFT_TEAMを設定します。

    
    export OPA_ADDR=<URL>
    export SFT_TEAM=<my-team>
                   
  2. APIキーを環境変数として設定します。

    
    export OPA_API_KEY_PROD=<your-api-key>
                   
  3. 次のコマンドを実行して OPA_TOKENを取得します。

    export OPA_TOKEN=$(sft wl authenticate \
    --team <my-team> \
    --connection <workload-connection-name> \
    --role-hint <workload-role-name>)		
  4. 次のコマンドを実行して、構成をテストします。

    sft ssh myhost --command "echo hello"

AWS IAMワークロード認証の使用例

AWS IAMタイプのワークロード接続では、ワークロードは環境で利用可能なAWS資格情報を使用して認証されます。--awsフラグは、これらの資格情報を使ってAWS STS GetCallerIdentityリクエストに署名し、Okta Privileged Accessに送信します。JWTまたはAPIキーは必要ありません。

  1. 環境変数のOPA_ADDRとSFT_TEAMを設定します。

    
    export OPA_ADDR=<URL>
    export SFT_TEAM=<my-team>
                   
  2. 次のコマンドを実行して OPA_TOKENを取得します。

    export OPA_TOKEN=$(sft wl authenticate \
    --team <my-team> \
    --connection <workload-connection-name> \
    --aws \
    --role-hint <workload-role-name>)

    指定されたAWSプロファイルの資格情報を使用するには、--awsフラグを--aws-profile <profile-name>に置き換えます。AWS IAM認証を使用するには、--awsまたは--aws-profileのいずれかを指定する必要があります。

  3. 次のコマンドを実行して、構成をテストします。

    sft ssh myhost --command "echo hello"