6. API権限管理機能

6.1. SDPFで提供するAPI権限管理

Smart Data Platform(以下SDPF)では、各種APIの実行権限を制御する機能を提供します。
本機能を利用することで、ユーザーのAPI実行権限をさまざまな条件で制御できます。
条件の例:
・特定のAPIのみ実行可能(Read Onlyに制限など)
・特定のリソースに対してのみ実行可能
・特定の送信元グローバルIPアドレスからのみ実行可能など

注釈

SDPFで提供するGUIは、内部的には画面上の操作をその操作に該当するAPIを実行することで実現しています。 そのため、このAPI権限管理機能を利用することで、GUI上の実行権限も同様に制限できます。


以下のような、ユーザー、IAM(Identity and Access Management)グループ、IAMロールという3つの要素によって、権限の制御を実現します。

表 6.1.1 API権限の要素
項目 説明
1.ユーザー SDPF契約に属する個々のユーザー(管理ユーザー、または一般ユーザー)
2.IAMグループ
IAMロールをグルーピングしたもの
ユーザーとIAMロールとの紐付ける役割を果たす
3.IAMロール
利用を許可するAPIやAPIを実行する条件をホワイトリスト形式で定義したもの
1つのIAMロールの中には複数の許可APIを設定できる

以下の図のように、ユーザーは複数のIAMグループに所属でき、IAMグループは1つまたは複数のIAMロールによって定義されます。

User/Group/Role

図 6.1.1 ユーザーとIAMグループ・IAMロールの関係


6.2. IAMロールの権限定義

IAMロールは主に以下の要素によって定義されます。
下記以外にも各APIで保持する情報も任意の要素として指定することも可能で、値としてアスタリスク(*)を指定することでワイルドカードを指定できます。

GUIでは、典型的なロールの設定例をテンプレートとして提供しているため、このテンプレートを選択して設定できます。

表 6.2.1 IAMロールの設定要素
項目 説明
ipAddress 利用を許可するアクセス元グローバル IP アドレス
basePath 利用を許可する API 名
path 利用を許可する API リソース名
verb 利用を許可する Method 名

以下は、読み取り専用(Read Only)の権限を設定する場合のロールの設定例です。

IAM_Role #1

図 6.2.1 読み取り専用の設定


6.3. デフォルトIAMグループ、デフォルトIAMロール

SDPF契約の作成時点では、デフォルトIAMグループとデフォルトIAMロールがシステムにより作成されており、作成直後のすべてのユーザーはデフォルトIAMグループに紐付けられています。
また、デフォルトIAMロールではAPIの実行許可が定義されておりません。初期状態ではすべてのユーザーはAPIの実行権限を持たないため、APIを実行する場合は新たにIAMグループを作成する必要があります。

デフォルトのIAMグループ、デフォルトのIAMロールは削除できません。
また、契約代表ユーザーは、デフォルトIAMグループから外れることはできません。

6.4. API利用可否設定

ユーザー情報画面にてAPI利用可否を設定します。
詳細は API利用可否設定 をご確認ください。

6.5. 権限の判定

1ユーザーが複数の権限設定に紐付く場合は、以下の判定方法にもとづき、権限を判定します。

注釈

API権限管理による権限設定は、ユーザー種別による権限(管理ユーザー、または一般ユーザー)と、ワークスペースアクセス権による権限と合わせて評価されます。 たとえば、ワークスペース作成の操作は管理ユーザー権限が必要なため、一般ユーザーに対してAPI権限管理機能で権限を付与したとしても実行できません。また、ワークスペースアクセス権を持たないワークスペース内のテナントに属するリソースに対する操作も、設定は可能ですが実行はできません。 ユーザー種別については「ユーザー管理」を、ワークスペースアクセス権については「ワークスペース管理」の章をご参照ください。


1.IAMロールが複数の権限定義で構成される場合 → パーミッション A or B

pattern_1

図 6.5.1 IAMロールが複数の権限定義で構成される場合


以下の例では、このグループに紐付くユーザーは、「 サーバーインスタンスの作成(POST)、または編集(PUT)が可能」という設定となります。

pattern_1_config

図 6.5.2 POSTまたはPUTの実行権限を持つIAMグループの設定


2.ユーザーが1つのIAMグループに属し、IAMグループが複数のIAMロールで定義される場合 → パーミッション A and B

pattern_2

図 6.5.3 ユーザーが1つのIAMグループに属し、IAMグループが複数のIAMロールで定義される場合


以下の例では、IAM Role #2-1で指定した権限を実行可能ですが、IAM Role #2-2によって、「テナントIDが”1234567890”の場合」という条件をAND条件で設定できます。

pattern_2_config

図 6.5.4 テナントID"1234567890"の時にPOSTとPUTの実行権限を持つIAMグループの設定


3.ユーザーが複数のIAMグループに属する場合 → パーミッション A or B

pattern_3

図 6.5.5 ユーザーが複数のIAMグループに属する場合


以下の例では、IAM Group #1で契約全体に対して読み取り専用の権限を付与した上で、Group #2によってテナントID 1234567890に属するサーバーインスタンスの作成と編集を許可する設定となります。

pattern_3_config

図 6.5.6 契約全体の読み取り権限とテナントID"1234567890"のサーバーインスタンス作成と編集の権限を許可する設定

6.6. ご利用条件

・本機能は管理ユーザーのみ設定でき、一般ユーザーの権限では設定はできません。
・本機能で管理ユーザーしか実行できない機能の実行権限を一般ユーザーへ付与はできません。
・IAMロールとして制御可能な内容は、APIリクエストの実行権限であり、APIリクエストの実行結果(レスポンス)を制限はできません。
・以下のメニューについては、本機能をご利用いただけません。
セキュリティメニュー(Managed Anti-Virus、Managed Virtual Patch、Managed Host-based Security Package、Managed Firewall、Managed UTM、Managed WAF)
ミドルウェア/ライセンスのメニュー
・セキュリティ関連のメニューについては、ユーザー単位でGUI上でのメニューの表示/非表示を制御できます。初期設定(デフォルト)は表示となります。詳細は こちら をご参照ください。
・DNSではIAMロールでのゾーン/レコード毎の操作権限の設定は不可となります。

注釈

詳細な設定方法は API権限管理機能のご利用方法 をご確認ください。