クラウド・プラグインの構成

Amazon Web Services、Microsoft Azure、Google Cloud Platform、および VMware クラウド環境を管理するために、いくつかのクラウド・プラグインをプラグイン・ポータルにインストールできます。

プラグインを構成するすべてのプラグイン・ストア・コマンドは、plugin store コマンドで開始する必要があります。PluginStore データベースを操作するためのコマンド構文について詳しくは、『概要』を参照してください 。

クラウド・プラグインの構成の「plugin store」キーワードの後に必要なプラグイン名は、以下のとおりです。

- AWSAssetDiscoveryPlugin

- AzureAssetDiscoveryPlugin

- GCPAssetDiscoveryPlugin

- VMwareAssetDiscoveryPlugin

この情報はプラグイン・ストアの設定を構成する上で重要です。プラグイン・ストアのアクション・コマンドは、設定キーを正しく構築するためにこれらの名前に依存するためです。

plugin store コマンドで受け入れられるオプションは、setmultiple setdelete です。set キーワードと multiple set キーワードがキーワード encrypted で装飾されている場合、データベース内で暗号化された値になります。

set オプションの後には、設定するプラグイン・ストア・キーが続き、その後に value キーワードと、保存する値自体が続く必要があります。最後に、現在の日付が on キーワードの後に指定されます。

以下に例を示します。

plugin store "AWSAssetDiscoveryPlugin" set "Credentials_AccessKey_myLabel" value "myAccessKey" on "{parameter "action issue date" of action}"

pluginstore "AWSAssetDiscoveryPlugin" set encrypted "Credentials_SecretAccessKey_myLabel" value "mySecret" on "{parameter "action issue date" of action}"

プラグイン・ストアには、以下の設定が表示されます。
キー 「値」 開始日
_AWSAssetDiscoveryPlugin_Credentials_AccessKey_myLabel myAccessKey 0123456789
_AWSAssetDiscoveryPlugin_Credentials_SecretAccessKey_myLabel {obf}ABCDEF... 0123456789
multiple set オプションは、複数の設定を一度にすばやく構成するために使用されます。これに対して、encrypted オプションも使用できます。multiple set オプションの後には、データベースに追加する必要があるキーと値のペアのリストを含む、パーセント・エンコーディングされた JSON が続く必要があります。デコードされた JSON の例を以下に示します。
{
    "Credentials_AccessKey_myLabel" : "myAccessKey",
    "Credentials_Region_myLabel" : "myLabelRegion",
    "HTTP_ProxyURL" : "myProxyURL",
    "HTTP_ProxyUser" : "myProxyUser"
}

コマンドの出力例を以下に示します。

plugin store "AWSAssetDiscoveryPlugin" multiple set <example json> on "{parameter "action issue date" of action}"

プラグイン・ストアに以下の設定を追加する必要があります。

キー 「値」 開始日
_AWSAssetDiscoveryPlugin_Credentials_AccessKey_myLabel myAccessKey 0123456789
_AWSAssetDiscoveryPlugin_Credentials_Region_myLabel myLabelRegion 0123456789
_AWSAssetDiscoveryPlugin_HTTP_ProxyURL myProxyURL 0123456789
_AWSAssetDiscoveryPlugin_HTTP_ProxyUser myProxyUser 0123456789

set コマンドでは「on」キーワードが必要であり、その後に設定が発行される日付が続く必要があります。

[...] on "{parameter "action issue date" of action}"

delete オプションは、プラグイン・ストアから特定のキーを削除するだけです。

plugin store "AWSAssetDiscoveryPlugin" delete "Credentials_Region_myLabel"

キー 「値」 開始日
_AWSAssetDiscoveryPlugin_Credentials_AccessKey_myLabel myAccessKey 0123456789
_AWSAssetDiscoveryPlugin_HTTP_ProxyURL myProxyURL 0123456789
_AWSAssetDiscoveryPlugin_HTTP_ProxyUser myProxyUser 0123456789

delete コマンドの後にキーワード all を発行すると、指定されたプラグインのすべてのプラグイン・ストア設定が削除されます。

plugin store "AWSAssetDiscoveryPlugin" delete all

プラグイン設定の多くは、特定の資格情報セットにバインドされています。この資格情報セットは、資格情報ラベルと呼ばれるものによって識別されます。そのため、アクション・スクリプトを作成する場合は、アクション・スクリプトでラベルをアクション・パラメーターに保管して、後で複数回再利用できるようにすることをお勧めします。
parameter "credentialsLabel" = "<my label>"
注: 置換する必要がある値は、<my label> のように、不等号括弧で囲まれた値のみです。
キーまたはキーの一部を複数回再解釈する必要がある場合は、パラメーターにも保管でき、後で連結することもできます。
parameter "accessKey" = "Credentials_AccessKey"
parameter "secretAccessKey" = "Credentials_SecretAccessKey"
例えば、新しいパラメーターは、前のパラメーターを連結して定義できます。
parameter "credentialsLabel" = "<my label>"
プラグインをプログラムで構成する場合は、パラメーターが存在するかどうか、またはパラメーターが空でないかどうかを確認すると便利です。これを実現するには、コードを if ブロックで囲みます。
if {(exists parameter "myParam")AND (parameter "myParam" != "")}
	// my code
endif

共通のプラグイン設定

以下の設定は、すべてのクラウド・プラグインに共通です。

Discovery_Region - プラグインのデフォルト・リージョン。このリージョンは、プラグインに保存されている資格情報に関連するすべての AWS アカウントで有効なリージョンのリストを取得するために使用されます。この設定は必須です。

Log_Path - プラグインのログのパス。

Log_Verbose - 1 に設定すると、デバッグ・ロギングが有効になります。0 に設定すると、情報ロギングのみが表示されます。

JSONファイル設定 - 一部の設定は、settings.json という JSON を使用してクラウド・プラグインに定義されます。このような JSON の例を以下に示します。
{
    "ID": <plugin name>,
    "ConfigurationOptions": "",
    "DeviceReportRefreshIntervalMinutes": <refresh interval in minutes>,
    "DeviceReportExpirationIntervalHours": 168,
    "CommandFormat": "JSON",
    "SendSettingsToPlugin": [],
    "ExecutablePath": <executable path>,
    "HandlePartialRefresh": false,
    "FullReportsInRefreshAll": true,
    "NoRefreshBeforeActionIntervalMinutes": 60
}

AWSAssetDiscoveryPlugin 構成

Amazon Web Services プラグインを完全に構成するために必要な設定を以下に示します。

IAM ユーザー固有の設定

Credentials_AccessKey_<label> - IAM ユーザーに関連付けられたアクセス・キー ID。この設定は必須です。

Credentials_SecretAccessKey_<label> - IAM ユーザーに関連付けられたシークレット・アクセス・キー。この設定の値は暗号化する必要があります。この設定は必須です。

Credentials_Region_<label> - ラベル <label> を持つ IAM ユーザー資格情報のデフォルト・リージョン。このリージョンは、Discovery Region をオーバーライドします。

Credentials_Roles_<label>_<arn> - ラベル <label> を持つ IAM ユーザーによって引き受ける ARN <arn> を持つロールのリージョン。このリージョンは、Credentials Region と Discovery Region の両方をオーバーライドします。この値は空にできます。

Credentials_Roles_ExternalId_<label>_<arn> - ラベル <label> を持つ IAM ユーザーによって引き受ける ARN <arn> を持つロールの外部ID。この値は暗号化する必要があります。IAM ロールに外部 ID が必要ない場合は、この設定を省略できます。

詳細設定

HTTP_ProxyURL - プラグインの HTTP プロキシーのURL。

HTTP_ProxyUser - プラグインの HTTP プロキシーのユーザー。

HTTP_ProxyPassword - プラグインの HTTP プロキシーのパスワード。この設定の値は暗号化する必要があります。

RegionAllowedList_<label> - ラベルが <label> のユーザーに対して、リストされたリージョンでのみプラグインが検出を実行するように強制します。個々のリージョンをセミコロン「;」で区切って指定します。

例: eu-central-1;eu-west-1;us-east-1

AWS プラグインのインストール時に、許可されるリージョンを指定できます。AWS リージョンを制限する方法の詳細については、『Limit AWS Regions to restrict the scope of device discovery』を参照してください。

AWSAssetDiscoveryPlugin 構成の例

一部のパラメーターの初期化:

parameter "firstLabel" = "foo"
parameter "secondLabel" = "bar"

parameter "accessKey" = "Credentials_AccessKey"
parameter "secretAccessKey" = "Credentials_SecretAccessKey"
注: foo と bar は、架空のラベルの名前です。ただし、Credentials_AccessKeyCredentials_SecretAccessKey は実際の設定名です。これらの 4 つのパラメーターを定義します。これらのパラメーターを組み合わせることにより、上記のようにユーザー・キーとパスワードを設定するために必要なキーを定義できるためです。

プラグインのデフォルト・リージョンの設定:

plugin store "AWSAssetDiscoveryPlugin" set "Discovery_Region" value "eu-west-1" on "{parameter "action issue date" of action}"

最初のユーザーの構成:

parameter "firstUserAccessKey" = "{parameter "accessKey"}_{parameter "firstLabel"}"
parameter "firstUserPassword" = "{parameter "secretAccessKey"}_{parameter "firstLabel"}"
plugin store "AWSAssetDiscoveryPlugin" set "{parameter "firstUserAccessKey"}" value "<myUserKey1>" on "{parameter "action issue date" of action}"
plugin store "AWSAssetDiscoveryPlugin" set encrypted "{parameter "firstUserPassword} value "<myUserPass1>" on "{parameter "action issue date" of action}"
plugin store "AWSAssetDiscoveryPlugin" set "Credentials_Region_{parameter "firstLabel"}" value "eu-central-1" on "{parameter "action issue date" of action}"
注: プラグイン・ストア・キーを完全に定義するために、最初の 4 つのパラメーターを組み合わせて 2 つの新しいパラメーターをペアで連結しました。パラメーターを連結するには、下線で区切られた 2 つのパラメーターで構成された文字列を新しいパラメーターに割り当てます。したがって、パラメーター「firstUserAccessKey」の内容は「Credentials_AccessKey_foo」になります。

2 番目のユーザーの構成:

parameter "secondUserAccessKey" = "{parameter "accessKey"}_{parameter "secondLabel"}"
parameter "secondUserPassword" = "{parameter "secretAccessKey"}_{parameter "secondLabel"}"
plugin store "AWSAssetDiscoveryPlugin" set "{parameter "secondUserAccessKey"}" value "<myUserKey2>" on "{parameter "action issue date" of action}"
plugin store "AWSAssetDiscoveryPlugin" set encrypted "{parameter "secondUserPassword} value "<myUserPass2>" on "{parameter "action issue date" of action}"
plugin store "AWSAssetDiscoveryPlugin" set "Credentials_Roles_{parameter "secondLabel"}_fakeRoleARN1" value "us-east-1" on "{parameter "action issue date" of action}"
plugin store "AWSAssetDiscoveryPlugin" set "Credentials_Roles_{parameter "secondLabel"}_fakeRoleARN2" value "us-west-1" on "{parameter "action issue date" of action}"
plugin store "AWSAssetDiscoveryPlugin" set encrypted "Credentials_Roles_ExternalId_{parameter "secondLabel"}_fakeRoleARN2" value "myExternalId" on "{parameter "action issue date" of action}"

ログを verbose に設定します。

plugin store "AWSAssetDiscoveryPlugin" set "Log_Verbose" value "1" on "{parameter "action issue date" of action}"

許可されるリージョンのリストの設定:

plugin store "AWSAssetDiscoveryPlugin" set "RegionAllowedList_{parameter "secondLabel"}" value "us-east-1;us-west-1" on "{parameter "action issue date" of action}"

AWS プラグインのインストール時に、許可されるリージョンを指定できます。AWS リージョンを制限する方法の詳細については、『Limit AWS Regions to restrict the scope of device discovery』を参照してください。

PluginStore で予期される出力の例を以下に示します。

キー 「値」 開始日
_AWSAssetDiscoveryPlugin_Credentials_AccessKey_foo myUserKey1 0123456789
_AWSAssetDiscoveryPlugin_Credentials_SecretAccessKey_foo {obf}ABCDEF... 0123456789
_AWSAssetDiscoveryPlugin_Credentials_Region_foo eu-central-1 0123456789
_AWSAssetDiscoveryPlugin_Credentials_AccessKey_bar myUserKey2 0123456789
_AWSAssetDiscoveryPlugin_Credentials_SecretAccessKey_bar {obf}ABCDEF... 0123456789
_AWSAssetDiscoveryPlugin_Credentials_Roles_bar_fakeRoleARN1 us-east-1 0123456789
_AWSAssetDiscoveryPlugin_Credentials_Roles_bar_fakeRoleARN2 us-west-1 0123456789
_AWSAssetDiscoveryPlugin_Credentials_Roles_ExternalId_bar_fakeRoleARN2 {obf}ABCDEF... 0123456789
_AWSAssetDiscoveryPlugin_Discovery_Region eu-west-1 0123456789
_AWSAssetDiscoveryPlugin_Log_Verbose 1 0123456789
_AWSAssetDiscoveryPlugin_RegionAllowedList_bar us-east-1;us-west-1 0123456789

AzureAssetDiscoveryPlugin 構成

Microsoft Azure プラグインを完全に構成するために必要な設定を以下に示します。

IAM ユーザー固有の設定

Credentials_ClientID_<label> - ラベル <label> を持つユーザーのクライアント ID。

Credentials_ClientSecret_<label> - ラベル <label> を持つユーザーのクライアント秘密鍵。

Credentials_SubscriptionID_<label> - ラベル <label> を持つユーザーのサブスクリプション ID。

Credentials_TenantID_<label> - ラベル <label> を持つユーザーのテナント ID。

AzureAssetDiscoveryPlugin 構成の例

parameter "myLabel" = "foo"
plugin store "AzureAssetDiscoveryPlugin" set "Credentials_TenantID_{parameter "myLabel"}" value "myTenantID" on "{parameter "action issue date" of action}"
plugin store "AzureAssetDiscoveryPlugin" set "Credentials_ClientID_{parameter "myLabel"}" value "myClientID" on "{parameter "action issue date" of action}"
plugin store "AzureAssetDiscoveryPlugin" set encrypted "Credentials_ClientSecret_{parameter "myLabel"}" value "myClientSecret" on "{parameter "action issue date" of action}"
plugin store "AzureAssetDiscoveryPlugin" set "Credentials_SubscriptionID_{parameter "myLabel"}" value "mySubscriptionID" on "{parameter "action issue date" of action}"
各表記の意味は次のとおりです。
myTenantID
ユーザーのテナント ID。
myClientID
クライアントのユーザー ID。
myClientSecret
ユーザーのクライアント秘密鍵。
mySubscriptionID
ユーザーのサブスクリプション ID。

GCPAssetDiscoveryPlugin 構成

Google Cloud Platform プラグインを完全に構成するために必要な設定を以下に示します。

サービス・アカウント固有の設定

Credentials_JSON_<label> - GCP 上のプロジェクトのサービス・アカウント・メンバーに関連する暗号化された JSON キー。

GCP JSON キー・ファイルは、次のようになります。

{
  "type": "service_account",
  "project_id": "test-123456",
  "private_key_id": "0123456789abcdefghilmnopqrstuvz",
  "private_key": "-----BEGIN PRIVATE KEY-----\naVeryLongKey\n-----END PRIVATE KEY-----\n",
  "client_email": "testusersvc@test-123456.iam.gserviceaccount.com",
  "client_id": "01234567891011121314",
  "auth_uri": "https://accounts.google.com/o/oauth2/auth",
  "token_uri": "https://oauth2.googleapis.com/token",
  "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
  "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/
  testusersvc%40test-123456.iam.gserviceaccount.com"
}

JSON キーは、plugin store アクション・コマンドに送る前にパーセント・エンコーディングされている必要があります。GCP プラグインへのサービス・アカウントの構成に必要なすべての情報は JSON に含まれているため、挿入や削除を行うための唯一の設定です。

JSON には秘密鍵が含まれているため、暗号化する必要があります。

GCPAssetDiscoveryPlugin 構成の例

parameter "jsonKey" = "<percent encoded json>"
plugin store "GCPAssetDiscoveryPlugin" set encrypted "Credentials_JSON_foo" value "{parameter "jsonKey"}" on "{parameter "action issue date" of action}"

VMWareAssetDiscoveryPlugin 構成

VMware プラグインを完全に構成するために必要な設定を以下に示します。

IAM ユーザー固有の設定

Credentials_Username_<label> - ラベル <label> を持つユーザーのユーザー名。

Credentials_Password_<label> - ラベル <label> を持つユーザーの暗号化されたパスワード。

Credentials_URL_<label> - ラベル <label> を持つユーザーの資格情報ラベル。

VMwareAssetDiscoveryPlugin 構成の例

parameter "myLabel" = "foo"
plugin store "VMWareAssetDiscoveryPlugin" set "Credentials_Username_{parameter "myLabel"}" value "myUsername" on "{parameter "action issue date" of action}"
plugin store "VMWareAssetDiscoveryPlugin" set "Credentials_URL_{parameter "myLabel"}" value "myURL" on "{parameter "action issue date" of action}"
plugin store "VMWareAssetDiscoveryPlugin" set encrypted "Credentials_Password_{parameter "myLabel"}" value "myPassword" on "{parameter "action issue date" of action}"
各表記の意味は次のとおりです。
myUsername
ユーザーのユーザー名。
myURL
ユーザーの資格情報ラベル。
myPassword
ユーザーの暗号化されたパスワード。