こんばんは。torippy1024です。
Splunk CloudではAPIを実行してサーチなどを行うことが可能ですが、SaaSでありインターネット上からアクセスできるため、デフォルトではアクセスが許可されていません。
そこで、APIアクセスするための初期手順を作成しました。
APIアクセスを許可するための初期手順
Splunk CloudへのAPIアクセスを許可するための方法は大きく3つあるようです。
どの方法をとっても、結局は同じ設定をするだけなので、好きな方法をとれば良いです。
(SearchHead APIのIP許可リストへの追加を行うだけ)
(1)Splunk Web上で設定する方法
(2)ACS(Admin Config Service)を使って設定する方法
(3)Splunkサポートに設定してもらう方法
APIアクセスを許可するにあたっては、アクセス可能なIPアドレス範囲を指定する必要があります。
0.0.0.0/0を指定することで全体公開させることもできますが、当然セキュリティ面でよろしくないため、リスクを踏まえて設定する必要があります。
(1)Splunk Web上で設定する方法
おそらく、一番早くてわかりやすい方法がこちらとなります。
Splunk Webに管理者権限(sc_admin)でログインできればGUIで設定を行うことが可能です。
Splunk Web画面より「設定」-「サーバー設定」を選択します。
「IP Allow List Managemenr」画面が表示されます。
この画面名は日本語化されていないことは突っ込ないでおきます。
いくつかタブが表示されており、これはSplunk CloudもつIP許可リストの種類を示しています。
このタブが機能(Feature)を表しており、この機能(Feature)単位でSplunk CloudはIP許可リストを持っているようです。
今回はAPIアクセス許可を設定したいため、「Search head API access」タブを選択します。
何もレコードが表示されていない場合、アクセス許可がない状態です。
「Add IP subnet」を選択し、アクセス許可をするIPを指定して、「保存」を選択しすれば設定は完了です。
(2)ACS(Admin Config Service)を使って設定する方法
(1)とやることはほとんど同じですが、これをCLIを使って設定することも可能です。
これはACS(Admin Config Service)と呼ばれる機能を使います。
最初に、ACSを使うためのトークンを作成します。
Splunk Webにログインし、「設定」-「トークン」を選択し、トークン画面で「新規トークン」を選択します。
トークンの設定項目を入力します。
今回はとりあえず以下を指定します。
項目名 | 値 |
---|---|
ユーザー | sc_admin |
オーディエンス | api-access(任意の値でよい) |
有効期限 | +1d(一日で期限切れとする) |
以降 | (即座に有効にしたいため空白) |
コマンドライン上で以下を実行します。
ここで、< stack name>はSplunk CloudへのアクセスURLの一部に使われているスタック名、< token>は先ほど取得したトークン値です。
ちなみに、以下のURIのsearch-apiがFeatureで、この部分を変更することで他のFeature(Search Head UIアクセスなど)のIP許可リストも変更可能のようです。
https://help.splunk.com/en/splunk-cloud-platform/administer/admin-config-service-manual/9.3.2411/administer-splunk-cloud-platform-using-the-admin-config-service-acs-api/configure-ip-allow-lists-for-splunk-cloud-platform#ariaid-title3
curl https://admin.splunk.com/<stack name>/adminconfig/v2/access/search-api/ipallowlists --header 'Authorization: Bearer <token>'
結果
{"subnets":[]}
サブネットが空の状態で返ってきます。つまりIP許可リストには何も登録がないのでアクセスできないということですね。
IP許可リストへの追加には以下を実行します。以下の例では推奨されていない"0.0.0.0/0"を追加してしまっていますが、適切なIPレンジに変更して追加してください。
curl https://admin.splunk.com/<stack name>/adminconfig/v2/access/search-api/ipallowlists --header 'Authorization: Bearer <token>’ --data '{
subnets: [
"0.0.0.0/0"
]
}'
結果
{"warnings":["IP allow list subnets creation request submitted successfully. Note that it can take several minutes for the subnet update to be applied to your Splunk Cloud Platform stack."]}
再度ACSを実行し、IP許可リストが更新されていれば成功です。
(結果の反映に数分かかると記載があり、実際に反映するまでは多少のタイムラグが発生するかもしれません)
curl https://admin.splunk.com/<stack name>/adminconfig/v2/access/search-api/ipallowlists --header 'Authorization: Bearer <token>'
結果
{"subnets":["0.0.0.0/0"]}
(3)Splunkサポートに設定してもらう方法
こちらは単純です。
Splunkサポートポータルより、REST APIを公開したいとケースを起票するだけです。
おそらく、この際にIP許可リストに追加するIPアドレス範囲を教えてくれと言われると思いますので、最初からケースにそれを書いておくとスムーズだと思います。
https://www.splunk.com/en_us/customer-success/support-programs.html
参考リンク
公式ドキュメントへの参考リンクは以下です。
Access requirements and limitations for the Splunk Cloud Platform REST API
https://docs.splunk.com/Documentation/SplunkCloud/latest/RESTTUT/RESTandCloud
Configure IP allow lists for Splunk Cloud Platform
https://help.splunk.com/en/splunk-cloud-platform/administer/admin-config-service-manual/9.3.2411/administer-splunk-cloud-platform-using-the-admin-config-service-acs-api/configure-ip-allow-lists-for-splunk-cloud-platform
以上です。