※ 本記事は、Simone Traversariによる”Maintain strong security posture with Oracle Enterprise Management Agent Cloud Management Gateway setup“を翻訳したものです。

2023年3月2日


これまでの投稿では、OCIでOracle Enterprise Manager(OEM)データを使用して新しいインサイトを引き出す方法について説明しました。このブログでは、OCIでOEMデータを使用して、より多くのインサイトを引き出すというトピックについて詳しく説明します。OEMエージェントとOCI間のプロキシとしてCloud Management Gatewayを使用するようにOEMを構成する方法について説明します。このアプローチは、アウトバウンド・インターネット接続が特定のサブネットまたはホストからのみ許可される複雑な環境で役立ちます。このように、OCI Observability & Management(O&M)機能が採用され、オンプレミス・インフラストラクチャの強力なセキュリティ体制を維持するために使用されます。

複数のデータベース・サーバーがオンプレミス設定でOEMによって監視されるシナリオについて考えてみます。前述のブログ・リファレンスで説明されているように、Oracle Cloud O&Mプラットフォーム・サービスと共有することで、このデータへのインサイトを有効にできます。

OEM to OCI Architecture
図1: 複数のデータベース・サーバーをオンプレミスで監視

Cloud Management Gatewayを使用するOEMの構成

各OEMエージェントからの接続に対するOCIアウトバウンドを回避するには、OCIサービスにアクセスするための一意のエントリ・ポイントとしてCloud Management Gatewayを使用します。エントリ・ポイントを有効にするには、ネットワーク内の単一ホストからOCIへのアウトバウンドHTTPSポートを開きます。これは、OEMホストまたはCloud Management Gateway用の専用VMです。

これは、次のようにオンプレミス・ホストからOCI API RESTエンドポイントへのアウトバウンド・ネットワーク接続要件に対処するのに役立ちます:

https://loganalytics.<OCI_REGION>.oci.oraclecloud.com
https://objectstorage.<OCI_REGION>.oraclecloud.com
https://auth.<OCI_REGION>.oraclecloud.com
https://telemetry-ingestion.<OCI_REGION>.oraclecloud.com
https://certificates.<OCI_REGION>.oci.oraclecloud.com
https://certificatesmanagement.<OCI_REGION>.oci.oraclecloud.com
https://management-agent.<OCI_REGION>.oci.oraclecloud.com

 

構成は単純で、2つのステップが必要です。:

  • 選択したオンプレミス・ホストにCloud Management Gatewayをインストールします
  • Cloud Management Gatewayを使用するOEMエージェントの構成

Cloud Management Gatewayのインストール

ゲートウェイとOCI間の通信には証明書が必要です。証明書を手動で作成するか、自動方式を使用するかを選択します。次の例では、「自動証明書作成」が使用されます。

Cloud Management Gatewayに必要なリソースを作成するコンパートメントを選択し、コンパートメント名とOCIDを書き留めます:

  • Name: <SAMPLECOMPARTMENT>
  • OCID: <SAMPLECOMPARTMENT_OCID>

次に、次の動的グループおよびポリシーを作成します:

Name = SAMPLECOMPARTMENT_Credential_Dynamic_Group
Definition =
ALL {resource.type=’certificateauthority’, resource.compartment.id=’SAMPLECOMPARTMENT_OCID’}

 

Name = SAMPLECOMPARTMENT_Management_Gateway_Dynamic_Group
Definition =
ALL {resource.type=’managementagent’, resource.compartment.id=’SAMPLECOMPARTMENT_OCID’}

 

Name = SAMPLECOMPARTMENT-Mgmt-Gw-Policy
Description = Policy to allow deploy of Management Gateway on compartment SAMPLECOMPARTMENT
Statements =
Allow DYNAMIC-GROUP SAMPLECOMPARTMENT_Credential_Dynamic_Group to USE certificate-authority-delegates in compartment SAMPLECOMPARTMENT
Allow DYNAMIC-GROUP SAMPLECOMPARTMENT_Credential_Dynamic_Group to USE vaults in compartment SAMPLECOMPARTMENT
Allow DYNAMIC-GROUP SAMPLECOMPARTMENT_Credential_Dynamic_Group to USE keys in compartment SAMPLECOMPARTMENT
Allow DYNAMIC-GROUP SAMPLECOMPARTMENT_Management_Gateway_Dynamic_Group to READ certificate-authority-bundle in compartment SAMPLECOMPARTMENT
Allow DYNAMIC-GROUP SAMPLECOMPARTMENT_Management_Gateway_Dynamic_Group to READ leaf-certificate-bundle in compartment SAMPLECOMPARTMENT
Allow DYNAMIC-GROUP SAMPLECOMPARTMENT_Management_Gateway_Dynamic_Group to MANAGE certificate-authorities in compartment SAMPLECOMPARTMENT where any{request.permission=’CERTIFICATE_AUTHORITY_CREATE’, request.permission=’CERTIFICATE_AUTHORITY_INSPECT’, request.permission=’CERTIFICATE_AUTHORITY_READ’}
Allow DYNAMIC-GROUP SAMPLECOMPARTMENT_Management_Gateway_Dynamic_Group to MANAGE leaf-certificates in compartment SAMPLECOMPARTMENT where any{request.permission=’CERTIFICATE_CREATE’, request.permission=’CERTIFICATE_INSPECT’, request.permission =’CERTIFICATE_UPDATE’, request.permission=’CERTIFICATE_READ’}
Allow DYNAMIC-GROUP SAMPLECOMPARTMENT_Management_Gateway_Dynamic_Group to MANAGE vaults in compartment SAMPLECOMPARTMENT where any{request.permission=’VAULT_CREATE’, request.permission=’VAULT_INSPECT’, request.permission=’VAULT_READ’, request.permission=’VAULT_CREATE_KEY’, request.permission=’VAULT_IMPORT_KEY’, request.permission=’VAULT_CREATE_SECRET’}
Allow DYNAMIC-GROUP SAMPLECOMPARTMENT_Management_Gateway_Dynamic_Group to MANAGE keys in compartment SAMPLECOMPARTMENT where any{request.permission=’KEY_CREATE’, request.permission=’KEY_INSPECT’, request.permission=’KEY_READ’}
Allow DYNAMIC-GROUP SAMPLECOMPARTMENT_Management_Gateway_Dynamic_Group to USE certificate-authority-delegates in compartment SAMPLECOMPARTMENT
Allow DYNAMIC-GROUP SAMPLECOMPARTMENT_Management_Gateway_Dynamic_Group to USE key-delegate in compartment SAMPLECOMPARTMENT

 

sshを使用して、オンプレミス・ゲートウェイ・ホストに接続し、Java 8をインストールします(存在しない場合)。予想される出力は、次のようになります。:

[root@stlabgw01 ~]# java -version
java version “1.8.0_361”
Java(TM) SE Runtime Environment (build 1.8.0_361-b09)
Java HotSpot(TM) 64-Bit Server VM (build 25.361-b09, mixed mode)

 

OCIコンソールからゲートウェイ・ソフトウェアRPMをダウンロードし、「監視および管理」、「管理エージェント」および「ダウンロードとキー」にナビゲートします。:

Cloud Management Agents Download
図2: エージェント・ソフトウェアのダウンロード

RPMをインストールします。:

[root@stlabgw01 ~]# rpm -ivh oracle.mgmt_gateway.rpm
Verifying…                          ################################# [100%]
Preparing…                          ################################# [100%]
Checking pre-requisites
        Checking if any previous gateway service exists
        Checking if OS has systemd or initd
        Checking available disk space for gateway install
        Checking if /opt/oracle/mgmt_agent directory exists
        Checking if ‘mgmt_agent’ user exists
        Checking Java version
                JAVA_HOME is not set or not readable to root
                Trying default path /usr/bin/java
                Java version: 1.8.0_361 found at /usr/bin/java
        Checking agent version
Updating / installing…
   1:oracle.mgmt_gateway-221214.2318.1################################# [100%]
Executing install
        Unpacking software zip
        Copying files to destination dir (/opt/oracle/mgmt_agent)
        Initializing software from template
        Checking if JavaScript engine is available to use
        Creating ‘mgmt_gateway’ daemon
        Gateway Install Logs: /opt/oracle/mgmt_agent/installer-logs/installer.log.0
        Setup gateway using input response file (run as any user with ‘sudo’ privileges)
        Usage:
                sudo /opt/oracle/mgmt_agent/agent_inst/bin/setupGateway.sh opts=[FULL_PATH_TO_INPUT.RSP]
Gateway install successful
[root@stlabgw01 ~]#

 

現在、ゲートウェイはインストールされていますが、構成されていません。構成をファイナライズするには、レスポンス・ファイルを作成する必要があります。次の例を参照してください。

[root@stlabgw01 ~]# sudo -u mgmt_agent sh
sh-4.4$
sh-4.4$ cd $HOME
sh-4.4$ pwd
/usr/share/mgmt_agent
sh-4.4$ vi input.rsp

 

sh-4.4$ cat input.rsp
ManagementAgentInstallKey = ***
CredentialWalletPassword = ***
GatewayPort = 4480

 

インストール・キーは、OCIコンソールから作成(およびダウンロード)して、「監視および管理」、「管理エージェント」および「ダウンロードとキー」にナビゲートできます。:

Cloud Management Agents Installation Keys
図3: OCIコンソールからのインストール・キーのダウンロード

 

ゲートウェイ・ホストのOSファイアウォール構成を確認します(OEMエージェントからの接続を受け入れるには、ポート4480をイングレスで開く必要があります)。この例では、ファイアウォールが無効になっています(個々のネットワークポリシーに依存)。:

[root@stlabgw01 ~]# systemctl stop firewalld
[root@stlabgw01 ~]# systemctl disable firewalld
Removed /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.

 

次に、次のリソース(管理ゲートウェイと同じコンパートメント内)をOCIに自動的に作成するsetupGateway.shコマンドを実行します:

  1. OCI Vault OCI_MGMT_GATEWAY_VAULT
  2. Certificate CA OCI_MGMT_GATEWAY_ROOT_CA
  3. Certificate ocid1.managementagent.oc1.***

次の実行を参照してください。:

[root@stlabgw01 ~]# sudo /opt/oracle/mgmt_agent/agent_inst/bin/setupGateway.sh opts=/usr/share/mgmt_agent/input.rsp
/opt/oracle/mgmt_agent/agent_inst/bin/setupAgent.sh opts=/usr/share/mgmt_agent/input.rsp
Executing configure
        Parsing input response file
        Validating install key
        Generating communication wallet
        Generating security artifacts
        Registering Management Gateway
                Found service plugin(s): [GatewayProxy]
Starting gateway…
Gateway started successfully
Starting plugin deployment for: [GatewayProxy]
Deploying service plugin(s)…Done.
        GatewayProxy : Successfully deployed external plugin
Gateway setup completed and the gateway is running.
In the future gateway can be started by directly running: sudo systemctl start mgmt_gateway
Please make sure that you delete /usr/share/mgmt_agent/input.rsp or store it in secure location.
Creating gateway system properties file
Creating properties file
Creating or validating certificates
Waiting for Management Gateway to create or validate certificates…
Waiting for Management Gateway to create or validate certificates…
Waiting for Management Gateway to create or validate certificates…
Waiting for Management Gateway to create or validate certificates…
Waiting for Management Gateway to create or validate certificates…
Waiting for Management Gateway to create or validate certificates…
Waiting for Management Gateway to create or validate certificates…
Waiting for Management Gateway to create or validate certificates…
Waiting for Management Gateway to create or validate certificates…
Waiting for Management Gateway to create or validate certificates…
Waiting for Management Gateway to create or validate certificates…
Waiting for Management Gateway to create or validate certificates…
Waiting for Management Gateway to create or validate certificates…
Waiting for Management Gateway to create or validate certificates…
Waiting for Management Gateway to create or validate certificates…
Waiting for Management Gateway to create or validate certificates…
Waiting for Management Gateway to create or validate certificates…
Waiting for Management Gateway to create or validate certificates…
Waiting for Management Gateway to create or validate certificates…
Waiting for Management Gateway to create or validate certificates…
Waiting for Management Gateway to create or validate certificates…
Waiting for Management Gateway to create or validate certificates…
Waiting for Management Gateway to create or validate certificates…
Waiting for Management Gateway to create or validate certificates…
Waiting for Management Gateway to create or validate certificates…
Waiting for Management Gateway to create or validate certificates…
Waiting for Management Gateway to create or validate certificates…
Waiting for Management Gateway to create or validate certificates…
Creating wallets
Skipping update of wallets as credentials are empty
Waiting for Management Gateway to start…
Management Gateway Plugin set up successfully.
[root@stlabgw01 ~]#

 

数分後、ゲートウェイはOCIコンソールで「アクティブ」状態になります:

Cloud Management Gateway Status
図4: ゲートウェイがアクティブ状態

OEM Agentの構成

ゲートウェイが正しく構成されると、それを使用してOEM AgentからOCI REST APIコールを転送します。

ホストごとに、OCI Observability & Managementとの統合を有効にし、次のプロパティを適用します。:

export ORACLE_HOME=/u01/app/oracle/agent_base/agent_13.5.0.0.0
$ORACLE_HOME/bin/emctl setproperty agent -allow_new -name oci_http_proxy_host -value stlabgw01
$ORACLE_HOME/bin/emctl setproperty agent -allow_new -name oci_http_proxy_port -value 4480

 

エージェントを再起動します。:

$ORACLE_HOME/bin/emctl stop agent
$ORACLE_HOME/bin/emctl start agent

 

確認するには、emd.propertiesファイルをチェックします:

cat ${AGENT_INSTANCE_DIRECTORY}/sysman/config/emd.properties | grep ^oci

 

予想される出力は次のようになります。:

oci_http_proxy_host=stlabgw01
oci_http_proxy_port=4480

 

このブログでは、OCIブリッジを有効にし、OCI Operations InsightおよびOCI Logging AnalyticsをオンプレミスOEMターゲットに使用するために必要な設定を完了する方法について説明します。Oracle EMデータをOCI Object Storageに取り込む方法の詳細は、シリーズのパート2およびパート3を参照してください。

リソース

Enterprise Manager 13cからのOCI Operations Insightsサービス設定のトラブルシューティング (Doc ID 2913953.1)

EM13c: HTTPプロキシを介してOCI REST接続を構成する方法 (Doc ID 2852014.1)

Oracle Cloud Infrastructure ドキュメント – Management Gateway