はじめに
SAP Cloud Logging Service(以下、CLS)は、アプリケーションログやメトリクスを一元的に管理できる、OpenSearch ベースのオブザーバビリティサービスです。
CLS が提供する Dashboards では上記のようなアプリケーションデータを閲覧できるため、アクセス制御や認証方式には適切なセキュリティ対策が求められます。
CLS ダッシュボードは Service Key を用いたアクセスも可能ですが、本番環境ではユーザー管理やセキュリティの観点から、IAS を利用した SAML 認証が推奨されています。
そこで、本記事では、CLS ダッシュボードで SAML 認証を利用するために必要な設定手順を解説します。
前提条件
以下の条件を満たしていることを前提とします。
IAS テナントが有効化されていることSAP BTP サブアカウントで CLS が利用可能であることIAS とBTPサブアカウントの管理者権限を持っていること
手順1 : IAS で SAML 2.0 アプリケーションを作成
IAS 管理画面で ‘Applications & Resources’ > ’Applications’ を開き、アプリケーションを作成します。
Display Name : <任意>Protocol Type : SAML 2.0
手順2 : CLSインスタンスの作成と SAML 設定
既存の CLS インスタンスがある場合は、インスタンス作成時と同様にパラメータを更新することで対応可能です。
本記事では、新規インスタンス作成時の設定手順を説明します。
2-1. CLS インスタンスの作成
BTPサブアカウント上でCLSインスタンスを作成します。
Service:Cloud LoggingPlan、Runtime Environment:<用途に応じて選択>Instance Name:<任意>
入力後、「Next」をクリックし、パラメータ設定画面へ進みます。
2-2. SAML パラメータの設定
デフォルトのパラメータが表示されるため、saml セクションを編集します。
デフォルトのパラメータ設定
編集後のパラメータ設定
{
“saml”: {
“enabled”: true,
“admin_group”: “<IAS_ADMIN_GROUP_NAME>”,
“initiated”: true,
“roles_key”: “groups”,
“idp”: {
“metadata_url”: “<IAS_TENANT_URL>/saml2/metadata”,
“entity_id”: “<IAS_IDP_ENTITY_ID>”
},
“sp”: {
“entity_id”: “<CLS_SP_ENTITY_ID>”
}
}
}
samlセクションのテンプレート
各パラメータの説明
admin_group
指定した IAS グループに属するユーザーに管理者権限(all_access)が付与されます。本記事では ‘cls-admin’ と設定します。
idp.metadata_url
CLSが IAS から SAML メタデータを取得するための URL です。IAS テナントのエンドポイントに /saml2/metadata を付与して指定します。例えば、IAS テナントが ‘https://<YOUR-TENANT-NAME>.accounts400.ondemand.com‘の場合、’https://<YOUR-TENANT-NAME>.accounts400.ondemand.com/saml2/metadata’を設定します。
idp.entity_id
上記 metadata_url をブラウザで開き、XML の先頭に記載されている entityID の値を設定します。
sp.entity_id
Service Provider としての CLS を識別する ID で、今回は ‘CLS-Demo’ を使用します。IAS 側の SAML 設定において、同じ値を登録する必要があります。
手順3 : IAS 側の SAML 設定
IAS のアプリケーション設定画面で Configure Manually を選択し、SAML 設定を行います。
Entity ID:<CLSインスタンスの sp.entity_id と同じ値>
SAML 連携において Service Provider(CLS)を一意に識別するためのID です。CLS 側の SAML 設定で指定した SP Entity ID と同じ値 を設定しなければいけませんので、今回は ‘CLS-Demo’ となります。
エンドポイント設定
SSO Endpoint : <Dashboards URL>/_opendistro/_security/saml/acsSingle Logout Endpoint : <Dashboards URL>
動作確認 (認証)
CLS の Dashboards URL にアクセスし、認証が通ることを確認します。
この時点では、ダッシュボードやインデックス一覧を開くとブランクなページが表示されたり、権限不足のエラーが表示されたりします。
Developer Tools でも HTTP 403 (Forbidden) が返却されていることが確認できます。
また、ユーザーアイコンから”View roles and identities”をクリックして付与されているロールを確認すると、付与されているロールは own_index のみであることが確認できます。
これは SAML 認証は成功しているものの、ロール割り当て(認可)が未設定であるために発生しています。
手順4 : IAS アプリケーションの Attributes 設定
CLS 側で IAS のグループ情報をロール割り当てに利用するため、SAML アサーションにグループ情報を含める必要があります。
IAS アプリケーションの Attributes を開き、以下を設定します。
Name : groupsSource : Identity DirectoryValues : All Groups
手順5:グループ作成とユーザー追加
手順2で設定した admin_group と同じ名前のグループを IAS の User Groups に作成します。今回は、’cls-admin’となります。
Name:<CLSインスタンスの admin_group と同じ値>Display Name : <任意>
対象のユーザーを追加します。
動作確認 (認可)
再びダッシュボードページにアクセスすると、ダッシュボード一覧が表示されていることが確認できます。
また、ユーザーに cls-admin 経由で all_access ロールが付与されていることも確認できます。
BTPを使ったアプリケーション開発・運用のお役に立てれば幸いです!
参考
https://docs.opensearch.org/latest/security/authentication-backends/saml/https://help.sap.com/docs/cloud-logging/cloud-logging/prerequisiteshttps://help.sap.com/docs/cloud-logging/cloud-logging/configuration-parameters
はじめにSAP Cloud Logging Service(以下、CLS)は、アプリケーションログやメトリクスを一元的に管理できる、OpenSearch ベースのオブザーバビリティサービスです。CLS が提供する Dashboards では上記のようなアプリケーションデータを閲覧できるため、アクセス制御や認証方式には適切なセキュリティ対策が求められます。CLS ダッシュボードは Service Key を用いたアクセスも可能ですが、本番環境ではユーザー管理やセキュリティの観点から、IAS を利用した SAML 認証が推奨されています。そこで、本記事では、CLS ダッシュボードで SAML 認証を利用するために必要な設定手順を解説します。前提条件以下の条件を満たしていることを前提とします。IAS テナントが有効化されていることSAP BTP サブアカウントで CLS が利用可能であることIAS とBTPサブアカウントの管理者権限を持っていること手順1 : IAS で SAML 2.0 アプリケーションを作成IAS 管理画面で ‘Applications & Resources’ > ’Applications’ を開き、アプリケーションを作成します。Display Name : <任意>Protocol Type : SAML 2.0手順2 : CLSインスタンスの作成と SAML 設定既存の CLS インスタンスがある場合は、インスタンス作成時と同様にパラメータを更新することで対応可能です。本記事では、新規インスタンス作成時の設定手順を説明します。2-1. CLS インスタンスの作成BTPサブアカウント上でCLSインスタンスを作成します。Service:Cloud LoggingPlan、Runtime Environment:<用途に応じて選択>Instance Name:<任意>入力後、「Next」をクリックし、パラメータ設定画面へ進みます。2-2. SAML パラメータの設定デフォルトのパラメータが表示されるため、saml セクションを編集します。デフォルトのパラメータ設定編集後のパラメータ設定{
“saml”: {
“enabled”: true,
“admin_group”: “<IAS_ADMIN_GROUP_NAME>”,
“initiated”: true,
“roles_key”: “groups”,
“idp”: {
“metadata_url”: “<IAS_TENANT_URL>/saml2/metadata”,
“entity_id”: “<IAS_IDP_ENTITY_ID>”
},
“sp”: {
“entity_id”: “<CLS_SP_ENTITY_ID>”
}
}
}samlセクションのテンプレート各パラメータの説明admin_group指定した IAS グループに属するユーザーに管理者権限(all_access)が付与されます。本記事では ‘cls-admin’ と設定します。idp.metadata_urlCLSが IAS から SAML メタデータを取得するための URL です。IAS テナントのエンドポイントに /saml2/metadata を付与して指定します。例えば、IAS テナントが ‘https://<YOUR-TENANT-NAME>.accounts400.ondemand.com’の場合、’https://<YOUR-TENANT-NAME>.accounts400.ondemand.com/saml2/metadata’を設定します。idp.entity_id上記 metadata_url をブラウザで開き、XML の先頭に記載されている entityID の値を設定します。sp.entity_idService Provider としての CLS を識別する ID で、今回は ‘CLS-Demo’ を使用します。IAS 側の SAML 設定において、同じ値を登録する必要があります。手順3 : IAS 側の SAML 設定IAS のアプリケーション設定画面で Configure Manually を選択し、SAML 設定を行います。 Entity ID:<CLSインスタンスの sp.entity_id と同じ値>SAML 連携において Service Provider(CLS)を一意に識別するためのID です。CLS 側の SAML 設定で指定した SP Entity ID と同じ値 を設定しなければいけませんので、今回は ‘CLS-Demo’ となります。エンドポイント設定SSO Endpoint : <Dashboards URL>/_opendistro/_security/saml/acsSingle Logout Endpoint : <Dashboards URL> 動作確認 (認証)CLS の Dashboards URL にアクセスし、認証が通ることを確認します。この時点では、ダッシュボードやインデックス一覧を開くとブランクなページが表示されたり、権限不足のエラーが表示されたりします。Developer Tools でも HTTP 403 (Forbidden) が返却されていることが確認できます。また、ユーザーアイコンから”View roles and identities”をクリックして付与されているロールを確認すると、付与されているロールは own_index のみであることが確認できます。これは SAML 認証は成功しているものの、ロール割り当て(認可)が未設定であるために発生しています。手順4 : IAS アプリケーションの Attributes 設定CLS 側で IAS のグループ情報をロール割り当てに利用するため、SAML アサーションにグループ情報を含める必要があります。IAS アプリケーションの Attributes を開き、以下を設定します。Name : groupsSource : Identity DirectoryValues : All Groups手順5:グループ作成とユーザー追加手順2で設定した admin_group と同じ名前のグループを IAS の User Groups に作成します。今回は、’cls-admin’となります。Name:<CLSインスタンスの admin_group と同じ値>Display Name : <任意>対象のユーザーを追加します。動作確認 (認可)再びダッシュボードページにアクセスすると、ダッシュボード一覧が表示されていることが確認できます。また、ユーザーに cls-admin 経由で all_access ロールが付与されていることも確認できます。BTPを使ったアプリケーション開発・運用のお役に立てれば幸いです!参考https://docs.opensearch.org/latest/security/authentication-backends/saml/https://help.sap.com/docs/cloud-logging/cloud-logging/prerequisiteshttps://help.sap.com/docs/cloud-logging/cloud-logging/configuration-parameters Read More Technology Blog Posts by SAP articles
#SAP
#SAPTechnologyblog