Soracom

Users

ドキュメント
Home ドキュメント グループ設定 Getting Started

グループに所属している IoT SIM を管理する

SIM グループ画面の [所属している SIM] をクリックすると、グループに所属している IoT SIM が表示されます。この画面では、SIM 管理画面とほぼ同じ機能を利用できます。SIM 管理画面について詳しくは、SIM 管理画面で IoT SIM の情報を確認 / 検索する を参照してください。

特定のグループの IoT SIM だけを表示できる SAM ユーザーを作成する

SIM グループ画面の [所属している SIM] タブの IoT SIM の一覧は、Query:searchSimsByGroup API を使用して表示されます。

この API では、グループ ID を API のパスで指定します。そのため、SAM ユーザーのパーミッション構文で pathVariable('group_id') を利用した condition を設定すると、指定したグループに所属する IoT SIM だけを検索および表示できます。

次のパーミッション構文では、以下の権限を設定します。パーミッション構文について詳しくは、パーミッション構文 を参照してください。

  • グループ一覧の表示を許可する
  • 指定したグループの情報と、そのグループに所属する IoT SIM の表示を許可する
  • グループに関係なく、すべての IoT SIM を検索および一覧表示することを禁止する
{
  "statements": [
    {
      "effect": "allow",
      "api": ["Group:listGroups"]
    },
    {
      "effect": "allow",
      "api": ["Group:getGroup", "Query:searchSimsByGroup"],
      "condition": "pathVariable('group_id') == '<グループ ID>'"
    },
    {
      "effect": "deny",
      "api": [
        "Query:searchSims",
        "Sim:listSims",
        "Subscriber:listSubscribers"
      ]
    }
  ]
}
すべての IoT SIM を表示する API の deny を削除しないでください

上記のパーミッション構文では、Query:searchSims APISim:listSims APISubscriber:listSubscribers APIdeny しています。

これらの deny を削除すると、ロール指定や SAM デフォルト権限で API が許可されている場合に、SAM ユーザーがグループに関係なくすべての IoT SIM を検索および一覧表示できるようになります。

IoT SIM に対する操作はグループごとに制限できません

グループ ID を条件として制限できるのは、Group:getGroup API を使用したグループ情報の表示と、Query:searchSimsByGroup API を使用した、そのグループに所属する IoT SIM の検索および表示です。

Sim:getSim APISim:activateSim APISim:terminateSim API など、個別の IoT SIM を操作する API は、グループ ID ではなく IoT SIM の ID をパスで指定します。そのため、グループ ID を条件として操作を制限できません。

これらの API を許可すると、SAM ユーザーは、グループに所属していない IoT SIM の ID を知っている場合に、その IoT SIM を操作できます。

操作できる IoT SIM を制限する場合は、上記のサンプルと同様に condition を設定します。pathVariable() で利用できるプレースホルダーには sim_idimsi などがあり、API ごとに異なります。詳しくは、SORACOM API リファレンス を参照してください。

なお、Napter の一部の API など、対象の IoT SIM の ID がパスに含まれない API には、この方法は使えません。