5.2.1 サービス連携ジョブの定義(V02-00以降)
サービス連携ジョブを定義して,クラウドサービスと連携させる設定をしましょう。
JP1のマニュアル「JP1 Version 13 JP1/Automatic Job Management System 3 for Cloud Service Applications」の「4. サービス連携ジョブの設計と定義」を参照し,クラウドサービスと連携するための認証情報や定義情報※1の設定を実施してください。
パブリッククラウドへ接続するための認証方式については実行エージェントがジョブ管理マネージャーの場合とお客様環境上のサーバと差異があります。
各設定項目詳細についてはパブリッククラウドサービスごとの公式マニュアルを参照してください。
(1) ジョブ管理マネージャーが実行エージェントの場合
実行先ホストがジョブ管理マネージャーの場合,パブリッククラウドへ接続するために必要な認証情報をサーバ自身へ付与することができないため,CSA上に登録した認証情報を使用して接続するか,鍵ファイルを指定してログインするといった方法になります。
JP1ではJP1/AJS3 for Cloud Service Applicationsをご利用のお客様向けにパブリッククラウドサービス上のリソースを効率的に制御するためのサンプルコンテンツを提供しています。
ジョブ管理マネージャーを実行エージェントとしてご利用いただく際には,ご利用いただけるサンプルコンテンツに制限があります。利用可能なコンテンツについては「付録B 機能の提供有無一覧」を参照してください。
サンプルコンテンツの入手方法については「JP1 Cloud Service ジョブ管理・システム管理 サービスポータル 利用ガイド」の「3.2.1 一覧表示」を参照してください。
サンプルコンテンツの利用方法については各種サービス向けの連携ガイドを参照してください。
マネージャーを実行エージェントとしたときの対応サンプルコンテンツは直接連携をサポートしているパブリッククラウドのみとなります。詳細は「付録B 機能の提供有無一覧」ジョブ種別(マネージャ実行)のサービス連携ジョブ,サービス連携監視ジョブ記載のパブリッククラウドを参照ください。
(a) AWS上のサービスリソース制御を行う場合
AWS上のサービスリソースに対してジョブ管理マネージャーから制御を行う場合,サポート対象の接続方式は以下の通りです。
AWS環境変数
AWSがサポートしている環境変数をジョブ実行時に定義しマネージャ上からAWS上のサービスリソースに対して接続を行います。接続に必要なキー情報は認証定義として設定することでセキュリティ情報の秘匿,テンプレート化をしつつ接続を行うことができます。
コマンドライン実行時に環境変数を利用して認証を行うため,AWS CLI実行前のログイン認証や接続するためのコマンドライン等は不要です。CSA上で格納変数名「?CSA任意の文字列?」へ登録したうえで,実行時の環境変数として定義をしてください。
定義例は以下の通りです。
|
# |
CSA定義名 |
設定項目 |
パラメータ例 |
|---|---|---|---|
|
1 |
実行定義 |
コマンドライン |
任意のコマンドライン |
|
2 |
実行時の環境変数 |
AWS_ACCESS_KEY_ID=?CSA任意の文字列1? |
|
|
3 |
AWS_SECRET_ACCESS_KEY=?CSA任意の文字列2? |
||
|
4 |
AWS_DEFAULT_REGION=?CSA任意の文字列3? |
||
|
5 |
接続定義 |
なし |
なし |
|
6 |
認証定義 |
?CSA任意の文字列1? |
IAMアカウントに関連付けられる AWSアクセスキー |
|
7 |
?CSA任意の文字列2? |
アクセスキーに関連付けられるシークレットキー |
|
|
8 |
?CSA任意の文字列3? |
デフォルトでリクエストを送信するサーバーのAWSリージョン |
(b) Azure上のサービスリソース制御を行う場合
Azureログイン認証
Azure環境への接続はAzure CLIによるログイン認証によって行います。CSAの接続定義および認証定義にAzure環境へログインするために必要なサービスプリンシパル情報を登録しておくことで,セキュリティ情報の秘匿,テンプレート化をしつつサービスリソースへの接続ができます。
多要素認証(MFA)が有効になっているMicrosoftアカウントまたはアカウントでは利用できません。
接続処理で登録するアカウント情報はOS実行ユーザーで共有されています。
複数のジョブネットでサービス連携ジョブを利用している場合,接続終了処理により実行中のサービス連携ジョブへ影響を及ぼす可能性があります。本番適用の際は十分に検証したうえでご利用ください。
サービスリソースへ接続するために必要なCSA定義例は以下の通りです。
|
# |
CSA定義名 |
設定項目 |
パラメータ例 |
|---|---|---|---|
|
1 |
実行定義 |
コマンドライン |
任意のコマンドライン |
|
2 |
実行時の環境変数 |
なし |
|
|
3 |
接続定義 |
接続処理 - コマンドライン |
az login --service-principal --username ?CSA任意の文字列1? --password ?CSA任意の文字列2? --tenant ?CSA任意の文字列3? |
|
4 |
接続終了処理 - コマンドライン |
az logout |
|
|
5 |
認証定義 |
?CSA任意の文字列1? |
ユーザー名またはサービス プリンシパル クライアントID |
|
6 |
?CSA任意の文字列2? |
ユーザー パスワードまたはサービス プリンシパル シークレット |
|
|
7 |
?CSA任意の文字列3? |
Microsoft Entraテナント |
(c) Google Cloud上のサービスリソース制御を行う場合(V02-40以降)
Google Cloud上のサービスリソースを外部から制御するための認証には対話形式を前提とした認証方式が含まれています。
JP1 Cloud Serviceのサービス連携ジョブを利用した運用自動化を行うためには対話形式を必要としない認証方式による接続が必要となります。お客様のセキュリティ要件をご確認いただき,適切な接続方式をご検討お願いします。
JP1 Cloud Serviceがサポートしている接続方式を以下に示します。
サービスアカウントキー認証
Google Cloud上のサービスリソースへ接続するためのサービスアカウントキーを利用して接続する方式です。Google Cloudで作成したサービスアカウントキーをJP1 Cloud Serviceジョブ管理のユーザーファイル専用ストレージ(/usrfile)に配置し,鍵指定により認証を行います。
外部の認証機構等を用いることなく直接Google Cloudに対して認証を行うことができます。
サービスアカウントキーにアクセスできるすべてのユーザーがGoogle Cloud上のサービスリソースへアクセスすることができるため,必要最小限の権限のみを付与したサービスアカウントを用意するなどの対策を実施してください。
接続処理で登録するアカウント情報はOS実行ユーザーで共有されています。
複数のジョブネットでサービス連携ジョブを利用している場合,接続終了処理により実行中のサービス連携ジョブへ影響を及ぼす可能性があります。本番適用の際は十分に検証したうえでご利用ください。
サービスリソースへ接続するために必要なCSA定義例は以下の通りです。
|
# |
CSA定義名 |
設定項目 |
パラメータ例 |
|---|---|---|---|
|
1 |
実行定義 |
コマンドライン |
任意のコマンドライン |
|
2 |
実行時の環境変数 |
なし |
|
|
3 |
接続定義 |
接続処理 - コマンドライン |
gcloud auth activate-service-account --key-file=?CSA任意の文字列1? |
|
4 |
接続終了処理 - コマンドライン |
gcloud auth revoke ?CSA任意の文字列2? |
|
|
5 |
認証定義 |
?CSA任意の文字列1? |
/usrfile配下のサービスアカウントキーファイルパス |
|
6 |
?CSA任意の文字列2? |
サービスアカウントID |
WorkforceIdentity連携 - サービスアカウントの権限借用方式
外部IDプロバイダ(IdP)を使用してユーザー認証後,マネージャサーバ上に初期登録したサービスアカウントの権限を借用することでGoogle Cloud上のサービスリソースへ接続することができます。
接続に必要な情報をJP1 Cloud Serviceジョブ管理のユーザーファイル専用ストレージ(/usrfile)に配置し,ログイン時に指定することで認証を行います。
外部IDプロバイダ(IdP)で発行した一時的なトークンと,初回実行時に作成したログイン構成ファイルをJP1 Cloud Serviceジョブ管理のユーザーファイル専用ストレージ(/usrfile)に配置し,ログイン時に指定することで認証を行います。サービスアカウントキーと異なりログイン構成ファイル自身に認証情報は含まれていません。
gcloud CLI実行に必要なシステム構成ファイルのディレクトリ先を/usrfile/.gcloudへ変更する必要があります。システム構成ファイルは借用するサービスアカウント情報やgcloud認証に必要な短期的なトークン情報等を記録しているディレクトリです。
構成ディレクトリ(.gcloud)はサービスポータルより作成できます。作成方法詳細は「JP1 Cloud Service ジョブ管理・システム管理 サービスポータル 利用ガイド」における「1.3.15 ユーザーファイルの操作(V01-12以降)」を参照してください。
|
# |
ディレクトリ名 |
権限 |
説明 |
|---|---|---|---|
|
1 |
/usrfile/.gcloud |
読み取り,書き込み,実行 |
gcloud CLIを実行する際に参照する構成ディレクトリパスです。 gcloud CLIをジョブで実行する際に環境変数「CLOUDSDK_CONFIG」に本ディレクトリパスを指定することで,発行したトークン情報や初期設定したサービスアカウント情報をコマンド実行時に参照することができます。 |
本接続方式は,ログイン構成ファイルの作成,サービスアカウントの登録といった初回のみ必要な設定作業があります。
ユーザー認証として必要な外部IDプロバイダ(IdP)はお客様自身で準備する必要があります。
ユーザー認証は外部からの認証かつ非対話形式で完了できる必要があるため,多要素認証(MFA)が有効になっている,curl等によるインターネット上からのOIDCトークン取得ができないIdPは利用できません。
以下に示すジョブネット例はトークンの発行,ログイン構成ファイルによる認証,トークンの削除までの一連をジョブネットとして作成しています。
ジョブネット間で同一トークン情報,ログイン構成ファイルを共有している場合はトークン削除により他のサービス連携ジョブに影響を及ぼす可能性があります。本番適用の際は十分に検証したうえでご利用ください。
初回実行時のみ必要な設定作業に関するジョブネット定義例は以下の通りです。
|
# |
JOB_ID |
ジョブネット概要 |
ジョブ種別 |
コマンド例 |
環境変数 |
先行ジョブ |
後続ジョブ |
|---|---|---|---|---|---|---|---|
|
1 |
A-1 |
OIDCトークン作成 |
サービス連携ジョブ |
サービスアカウント連携ジョブ「CSA連携Z-1」参照 |
- |
- |
A-2 |
|
2 |
A-2 |
ログイン構成ファイル作成 |
UNIXジョブ |
gcloud iam workforce-pools create-cred-config \ locations/global/workforcePools/[workforce プールID]/providers/[workforce プールプロバイダー] \ --subject-token-type=urn:ietf:params:oauth:token-type:id_token \ --credential-source-file=[/usrfile配下の任意のパス/トークンファイル名] \ --workforce-pool-user-project[workforce プールID] \ --output-file=/usrfile/config.json |
CLOUDSDK_CONFIG=/usrfile/.gcloud |
A-1 |
A-3 |
|
3 |
A-3 |
Gcloudログイン |
UNIXジョブ |
gcloud auth login --cred-file=[/usrfile配下の任意のパス/ログイン構成ファイル名] |
CLOUDSDK_CONFIG=/usrfile/.gcloud |
A-2 |
A-4 |
|
4 |
A-4 |
サービスアカウント登録 |
UNIXジョブ |
gcloud config set auth/impersonate_service_account [Gcloudサービスアカウント名] |
CLOUDSDK_CONFIG=/usrfile/.gcloud |
A-3 |
A-5 |
|
5 |
A-5 |
Gcloudログアウト |
UNIXジョブ |
gcloud auth revoke [Gcloudサービスアカウント名] |
CLOUDSDK_CONFIG=/usrfile/.gcloud |
A-4 |
A-6 |
|
6 |
A-6 |
トークン削除 |
UNIXジョブ |
rm -r [/usrfile配下の任意のパス/トークンファイル名] |
A-5 |
- |
サービスリソースへ接続するために必要なジョブネット定義例は以下の通りです。
|
# |
JOB_ID |
ジョブネット概要 |
ジョブ種別 |
コマンド例 |
先行ジョブ |
後続ジョブ |
|---|---|---|---|---|---|---|
|
1 |
B-1 |
OIDCトークン作成 |
サービス連携ジョブ |
サービスアカウント連携ジョブ「CSA連携Z-1」参照 |
- |
B-2 |
|
2 |
B-2 |
業務ジョブ |
UNIXジョブ |
サービスアカウント連携ジョブ「CSA連携Z-2」参照 |
B-1 |
B-3 |
|
3 |
B-3 |
トークン削除 |
UNIXジョブ |
rm -r [/usrfile配下の任意のパス/トークンファイル名] |
B-2 |
- |
OIDCトークン作成用のCSA定義「CSA連携Z-1」例を以下に示します。
|
# |
CSA定義名 |
設定項目 |
パラメータ例 |
|---|---|---|---|
|
1 |
実行定義 |
コマンドライン |
curl -d "client_secret=?CSA任意の文字列1?" -d "username=?CSA任意の文字列2?" --data-urlencode "password=?CSA任意の文字列3?" https://url/token > [/usrfile配下の任意のパス/トークンファイル名] |
|
2 |
実行時の環境変数 |
なし |
|
|
3 |
接続定義 |
なし |
なし |
|
4 |
認証定義 |
?CSA任意の文字列1? |
OIDCトークン発行に必要なユーザー名 |
|
5 |
?CSA任意の文字列2? |
ユーザー名に対応するパスワード |
|
|
6 |
?CSA任意の文字列3? |
クライアント認証用シークレット |
Gcloudサービスリソース制御用のCSA定義「CSA連携Z-2」例を以下に示します。
|
# |
CSA定義名 |
設定項目 |
パラメータ例 |
|---|---|---|---|
|
1 |
実行定義 |
コマンドライン |
任意のgcloud CLI |
|
2 |
実行時の環境変数 |
CLOUDSDK_CONFIG=/usrfile/.gcloud |
|
|
3 |
接続定義 |
接続処理 - コマンドライン |
gcloud auth login --cred-file=?CSA任意の文字列1? |
|
4 |
接続終了処理 - コマンドライン |
gcloud auth revoke [Gcloudサービスアカウント名] |
|
|
5 |
認証定義 |
?CSA任意の文字列1? |
初回実行時に作成したログイン構成ファイルパス |
(d) Oracle Cloud上のサービスリソース制御を行う場合(V02-60以降)
Oracle Cloud上のサービスリソースを外部から制御するための認証には対話形式を前提とした認証方式が含まれています。
JP1 Cloud Serviceのサービス連携ジョブを利用した運用自動化を行うためには対話形式を必要としない認証方式による接続が必要となります。お客様のセキュリティ要件をご確認いただき,適切な接続方式をご検討お願いします。
JP1 Cloud Serviceがサポートしている接続方式を以下に示します。
APIキーベース認証
Oracle Cloudがサポートしている環境変数をジョブ実行時に定義し,マネージャ上からOracle Cloud上のサービスリソースに対して接続を行います。接続に必要なキー情報は認証定義として設定することでセキュリティ情報の秘匿,テンプレート化をしつつ接続を行うことができます。
コマンドライン実行時に環境変数を利用して認証を行うため,OCI CLI実行前のログイン認証や接続するためのコマンドライン等は不要です。CSA上で格納変数名「?CSA任意の文字列?」へ登録したうえで,実行時の環境変数として定義をしてください。
定義例は以下の通りです
|
# |
CSA定義名 |
設定項目 |
パラメータ例 |
|---|---|---|---|
|
1 |
実行定義 |
コマンドライン |
任意のコマンドライン |
|
2 |
実行時の環境変数 |
OCI_CLI_USER=?CSA任意の文字列1? |
|
|
3 |
OCI_CLI_TENANCY=?CSA任意の文字列2? |
||
|
4 |
OCI_CLI_FINGERPRINT=?CSA任意の文字列3? |
||
|
5 |
OCI_CLI_KEY_FILE=?CSA任意の文字列4? |
||
|
6 |
OCI_CLI_REGION=?CSA任意の文字列5? |
||
|
7 |
接続定義 |
なし |
なし |
|
8 |
認証定義 |
?CSA任意の文字列1? |
APIをコールするユーザーのOCID |
|
9 |
?CSA任意の文字列2? |
テナンシのOCID |
|
|
10 |
?CSA任意の文字列3? |
このユーザーに追加された公開キーのフィンガープリント |
|
|
11 |
?CSA任意の文字列4? |
秘密キーのフルパスとファイル名 |
|
|
12 |
?CSA任意の文字列5? |
Oracle Cloud Infrastructureリージョン |
(2) お客様環境上のサーバが実行エージェントの場合
実行先ホストがお客様環境上の実行エージェントである場合,認証情報を保持しておく方式について制限ございません。マネージャ上でのジョブ実行と同様CSA上に登録した認証情報を使用して接続する他にも,サーバ自身に権限を付与しておくことでCSA上に認証情報を登録せずに実行することもできます。
JP1のマニュアル「JP1 Version 13 JP1/Automatic Job Management System 3 for Cloud Service Applications」の「4. サービス連携ジョブの設計と定義」を参照し,クラウドサービスと連携するための認証情報や定義情報※1の設定を実施してください。
JP1ではJP1/AJS3 for Cloud Service Applicationsをご利用のお客様向けにパブリッククラウドサービス上のリソースを効率的に制御するためのサンプルコンテンツを提供しています。
サンプルコンテンツの入手方法については「JP1 Cloud Service ジョブ管理・システム管理 サービスポータル 利用ガイド」の「3.2.1 一覧表示」を参照してください。
サンプルコンテンツの利用方法については各種サービス向けの連携ガイドを参照してください。
お客様環境上のサーバを実行エージェントとしたときの対応サンプルコンテンツについて制限はございません。
- 注※1
-
実行エージェント側でAWS CLIを使用する際,実行するOSユーザーの環境変数にAWS CLIのパスが含まれていない場合があります。そのため,AWS CLI コマンドを実行する際は,フルパスでコマンドを指定する必要があります。