SAP 認証
SNP CrystalBridge® Monitoring の許可
ユーザーに SNP CrystalBridge® Monitoring ツールの起動を許可するには、ユーザーを /DVD/MON_ADMIN ロールに追加します。このロールは、SNP CrystalBridge® Monitoring トランスポート要求に含まれています。
ABAP エージェント認証
SAP ユーザーに ABAP エージェントの管理を許可するには、ユーザーを /DVD/APPD_ADMIN ロールに追加します。
レガシーロール /DVD/APPD_USER は管理者ロールのサブセットとして存在し、特定の ABAP エージェントと SAP コンポーネントの実行を許可します(開始、停止、SQL トレースの収集、外部システムからの AppDynamics RFC 関数モジュールの呼び出しなど)。ユーザーロールは、RFC コール中に使用されるモニター対象ユーザーおよびテクニカルユーザーを対象としています。これらのロールは、Splunk AppDynamics ABAP エージェントのトランスポート要求に含まれています。
ABAP エージェントバージョン 4.5.1911 以降、新しい基本および複合権限ロールを使用できます。複合ロールは、関連するすべての基本ロールで構成され、ユーザー ロール /DVD/APPD_USER を置き換えることを目的としています。
- /DVD/APPD_JAVA
- Java からの RFC コール中(JCo 経由)に使用されるすべての SAP ユーザーおよびテクニカルユーザーを対象としています。
- 以下に示すすべての基本ロールが含まれます
- /DVD/APPD_ABAP
- Java からの RFC コール中(JCo 経由)に関係のない他のすべてのユーザー(非テクニカルおよびテクニカル)を対象としています。
- /DVD/APPD_RFC_JAVA を除くすべての基本ロールが含まれています
特定の領域に必要な権限を提供するために、基本ロールが存在します。複合ロールのいずれかを使用できない場合は、代わりに特定の基本ロールを選択できますが、これにより、特定の方法では ABAP エージェントの機能が制限されます。基本ロールを省略した場合の影響については、[Not assigned] の箇条書きで説明します。
- /DVD/APPD_RFC_ABAP
- Authorization object:RFC アクセスの許可チェック(S_RFC)
- Authorization object:RFC アクセスの許可チェック(S_RFC)
- アクティビティ :実行(16)、実行(88)
- 保護する RFC の名前 :/DVD/*
- 保護する RFC オブジェクトのタイプ :機能グループ(FUGR)
- 目的:割り当てられたユーザーは /DVD/* 汎用グループから RFC 汎用モジュールを呼び出すことができます
- 必要なもの:ABAP エージェント間の RFC 相関
- ユーザーグループ:RFC コール中に使用されるユーザー、または RFC 宛先に割り当てられるユーザー。信頼関係を持つ RFC 宛先が使用される場合のすべてのユーザー
- 未割り当て:ABAP エージェントのビジネストランザクションからの RFC exit コールはランタイムエラーを生成しますが、エンドユーザーには影響しません
- フォールバック:このロールは ABAP エージェントのスムーズな動作に必要ですが、ロールがない場合の影響は、自動一時 RFC 宛先ブラックリスト登録によって軽減されます
- Authorization object:RFC アクセスの許可チェック(S_RFC)
- /DVD/APPD_RFC_JAVA
- Authorization object:RFC アクセスの許可チェック(S_RFC)
- アクティビティ:実行(16)
- 保護対象 RFC の名前:SRFC、SUNI、SYST
- 保護する RFC オブジェクトのタイプ :機能グループ(FUGR)
- 目的:割り当てられたユーザーは、汎用グループ SRFC、SUNI、SYST から RFC 汎用モジュールを呼び出すことができます
- 必要なもの:JCo プラグインを使用する Java エージェントと ABAP エージェント間の RFC 相関
- ユーザーグループ:RFC コール中に使用されるユーザー、または JCo を使用して Java システムから呼び出される RFC 宛先に割り当てられるユーザー
- 未割り当て:Java エージェントのビジネストランザクションからの RFC exit コールはランタイムエラーを生成しますが、エンドユーザーには影響しません
- フォールバック:このロールは JCo プラグインと ABAP エージェントのスムーズな動作に必要ですが、ロールがない場合の影響は、自動一時 RFC 宛先ブラックリスト登録によって軽減されます
- Authorization object:RFC アクセスの許可チェック(S_RFC)
- /DVD/APPD_TRACE_SQL
- 承認オブジェクト: システム承認 (S_ADMI_FCD)
- システム管理機能:トレーススイッチの変更(ST0M)、トレースの分析(ST0R)
- 目的:割り当てられたユーザーは SQL トレースを開始、停止、および処理できます(ST05)
- 必要なもの:ビジネス トランザクション スナップショットの上位 5 つの SQL ステートメント
- ユーザーグループ:すべてのユーザー
- 未割り当て:完全なビジネス トランザクション スナップショットに上位 5 つの SQL ステートメントが含まれていない可能性があります。アプリケーションログのエラーメッセージが書き込まれます
- フォールバック : [Snapshot Settings] の [Include SQL trace into snapshots] チェックボックスをオフにします。プライマリデータベースが HANA の場合は、 [Include SQL trace into snapshots] と [Always use HANA expensive statements] の両方をチェックすることで、ST05 トレースを完全に省略できます。
- 承認オブジェクト: システム承認 (S_ADMI_FCD)
- /DVD/APPD_TRACE_ABAP_AUTO
- 許可オブジェクト:ファイルアクセスの許可(S_DATASET)
- アクティビティ:すべてのアクティビティ
- 物理ファイル名 : *
- 検索ヘルプ付きプログラム名 :CL_ATRA_TRACE_FILE=======
-
認証オブジェクト :ABAP Workbench(S_DEVELOP)
-
アクティビティ :ディスプレイ(03)
-
パッケージ :S_ATRA_API
-
オブジェクト名:*
-
オブジェクトタイプ:*
-
許可グループ ABAP/4 プログラム:*
-
- 目的:割り当てられたユーザーは、ABAP エージェントによって生成された ABAP トレース(SAT)ファイルを削除できます
- 必要なもの:ビジネス トランザクション スナップショットの上位 5 つの ABAP ステートメントまたはコールグラフを収集した後のハウスキーピング
- ユーザーグループ:すべてのユーザー
- 未割り当て:ABAP エージェントによって生成された ABAP トレースファイルは、ビジネストランザクションの終了時に削除されません
- フォールバック:/DVD/APPD_TRACE_AUTO が使用できない場合は、ロール /DVD/APPD_TRACE_ABAP_MANUAL を使用して、ロールの長いテキストに記載されている必要な手動手順を実行します。
- 許可オブジェクト:ファイルアクセスの許可(S_DATASET)
- /DVD/APPD_TRACE_ABAP_MANUAL
- Authorization object:ABAP/4 を介したファイルシステムアクセス(S_PATH)
- アクティビティ:変更(02)、表示(03)、削除(06)、読み取り(33)、書き込み(34)
- ABAP/4 の承認グループ:<お客様が定義します。ロールの説明のガイドを参照してください。>
- 目的:割り当てられたユーザーは、ABAP エージェントによって生成された ABAP トレース(SAT)ファイルを削除できます
- 必要なもの:ビジネス トランザクション スナップショットの上位 5 つの ABAP ステートメントまたはコールグラフを収集した後のハウスキーピング
- ユーザーグループ:すべてのユーザー
- 未割り当て:ABAP エージェントによって生成された ABAP トレースファイルは、ビジネストランザクションの終了時に削除されません
-
フォールバック:/DVD/APPD_TRACE_ABAP_MANUAL が使用できない場合、ABAP エージェントによって生成されたトレースファイルは、ABAP エージェントのハウスキーピングジョブによって毎日自動的に削除されます
注:大規模な SAP システムと ABAP トレースファイル
数百人のアクティブユーザーがいる SAP システムでは大量のトラフィックが生成され、多数の ABAP トレースファイルが生成される可能性があり、毎日のハウスキーピングジョブでは不十分な場合があります。この場合、大規模な SAP システムでこのフォールバック ソリューションに依存することは推奨されません。承認ロール /DVD/APPD_TRACE_ABAP_AUTO または /DVD/APPD_TRACE_MANUAL のいずれかを使用します。これらの要件のいずれも満たせない場合は、ABAP トレース機能を使用しないことをお勧めします。
- Authorization object:ABAP/4 を介したファイルシステムアクセス(S_PATH)
ロールプロファイル
すべての /DVD/APPD* 許可ロールに、現在のロールバージョンのアクティブな生成プロファイルがあることを確認します。これは、[Authorizations] タブの t-code PFCG で確認および調整できます。
カスタム許可拡張スポット
カスタム許可チェックの拡張スポットは、ABAP エージェントバージョン 21.2.0 以降で使用できます。このスポットは、ABAP エージェントの次の領域で使用できます。
- すべての ZDVD_APPD コマンドの SXPG/SM49 OS コマンド許可チェック
- ローカル HTTP SDK のインストールおよびローカルログファイルへのアクセスに使用されるファイルアクセスサービス
- NetWeaver Gateway のインストルメンテーション。「NetWeaver Gateway のインストゥルメント化」を参照してください。
個々の拡張スポットは、拡張スポット /DVD/APPD_EH_BADI_CHECKS の下にグループ化されます。上記の領域で許可チェックを微調整するための拡張スポットを実装します。
実装例:
カスタム許可拡張スポットを実装するには、次の手順を実行します。
- package /DVD/APPD_API にアクセスします。
- Enhancements および Enhancement Spots フォルダを展開します。
- [/DVD/APPD_EH_BADI_CHECKS] をダブルクリックします。
- いずれかの BAdI 定義を右クリックし、[Create BAdI implementation] を選択します。[BAdI Documentation] ボタンをクリックして詳細を表示することもできます。
- カスタムの [Enhancement Implementation] の名前と簡単な説明を入力し、ポップアップを確認します。この開発を保存するパッケージとトランスポート要求を選択します。
- カスタムの [BAdI Implementation] の名前、カスタムの [Implementing Class] の名前、および簡単な説明を入力します。この開発を保存するパッケージとトランスポート要求を選択します。
- カスタムの [BAdI Implementation] ノードを展開し、[Implementing Class] をダブルクリックします。
- 実装するメソッド(...~COMMAND_CHECK)をダブルクリックし、メソッド実装のポップアップを確認します。これにより、カスタムコードを入力できるクラスビルダー UI が開きます。
カスタムコマンドチェックのコード例
/dvd/appd_if_badi_cmd_check~command_check. * Importing parameters: *
IV_PROGRAMNAME TYPE SXPGCOLIST-OPCOMMAND * IV_PARAMETERS TYPE
SXPGCOLIST-PARAMETERS * IV_LONG_PARAMS TYPE CHAR1024 * Exception objects: *
/DVD/CX_APPD_AUTH_CHECK * Restrict access to shell command execution IF
iv_programname = 'sh' OR iv_programname = 'chmod' OR iv_programname = 'mkdir'. *
Allow HTTP SDK start / stop / status commands IF iv_parameters CS
'/opt/appdynamics/appdhttpsdk/runAppdHttpSDK'. RETURN. * Path to HTTP SDK
start-up script is not in parameters -> check failed ELSE. RAISE EXCEPTION
TYPE /dvd/cx_appd_auth_check EXPORTING textid =
/dvd/cx_appd_auth_check=>auth_check_failed. ENDIF. * Prevent execution of any
other command ELSE. RAISE EXCEPTION TYPE /dvd/cx_appd_auth_check EXPORTING
textid = /dvd/cx_appd_auth_check=>auth_check_failed. ENDIF. ENDMETHOD.
特定のアクション処理のコード例
METHOD
/dvd/appd_if_badi_gen_check~action_check. * Importing parameters: * IV_ACTION
TYPE CLIKE * IV_OBJECT TYPE CLIKE * Exception objects: * /DVD/CX_APPD_AUTH_CHECK
* Option to check users * - functionality guarded by this check is intended for
admin users. IF sy-uname <> 'ADMIN_USER'. "This is an example user name
RAISE EXCEPTION TYPE /dvd/cx_appd_auth_check EXPORTING textid =
/dvd/cx_appd_auth_check=>auth_check_failed. ENDIF. * Check based on action
CASE iv_action. * Insterting / removing custom RFC exit-call snippets to program
<IV_OBJECT> WHEN 'INSTRUMENT_PROGRAM' OR 'UNINSTRUMENT_PROGRAM'. * Option
to restrict this functionality to certain namespaces IF iv_object CP 'ZIWFND_*'.
"This is an example namespace prefix pattern RETURN. ENDIF. * Read content of
directory <IV_OBJECT> WHEN 'LIST_FILES'. * Option to restrict access to
certain directories IF iv_object CS 'appdhttpsdk'. "Example directory name * OR
iv_object = 'logs' ... RETURN. ENDIF. * Write to file <IV_OBJECT> WHEN
'WRITE_FILE'. * Option to restrict write access to certain files IF iv_object CP
'/opt/appdynamics/appdhttpsdk*'. "Example file location RETURN. ENDIF. * Read
file <IV_OBJECT> WHEN 'READ_FILE'. * Option to restrict read access to
certain files IF iv_object CP '/opt/appdynamics/appdhttpsdk*'. "Example file
location RETURN. ENDIF. * Create directory <IV_OBJECT> WHEN 'DIR_CREATE'.
* Option to restrict directory creation IF iv_object CP
'/opt/appdynamics/appdhttpsdk*'. "Example file location * AND ( iv_object CS
'logs' OR iv_object CS ... ) "specific allowed directory names RETURN. ENDIF. *
Unsupported action * WHEN OTHERS. ENDCASE. * Auth check failed RAISE EXCEPTION
TYPE /dvd/cx_appd_auth_check EXPORTING textid =
/dvd/cx_appd_auth_check=>auth_check_failed. ENDMETHOD.
トラブルシューティング
-
ユーザーには、/DVD/APPD_ADMIN ロールがあるにもかかわらず、アクション「X」を実行する権限がありません。
-
ロール /DVD/APPD_ADMIN がプロファイルを生成していることを確認します。
-
トランザクション PFCG に移動します
-
ロール /DVD/APPD_ADMIN を入力し、確認します。
-
[Authorizations] タブに移動します
-
[Display Authorization Data] をクリックします。
-
トップメニューで [Generate] をクリックします。
-
-