Soracom

Users

ドキュメント
Home ドキュメント Soracom Cloud Camera Services リファレンス

代表的な SAM パーミッション構文

SORACOM では、アクセス管理 (SORACOM Access Management: SAM) を利用して、権限を制限したアカウント (SAM ユーザー) を作成できます。

ここでは、Soracom Cloud Camera Services を SAM ユーザーで利用する際によく使われる SAM パーミッション構文を紹介します。

SAM パーミッション構文で設定した権限は ATOM アプリには反映されません

SAM で制限した権限は、SORACOM ユーザーコンソールでは有効ですが、ATOM アプリには反映されません。つまり、SAM ユーザーが ATOM アプリを利用すると、ソラカメ対応カメラの映像を確認できます。ATOM アプリを利用した場合も、ソラカメ対応カメラの閲覧を制限するには、別の SORACOM アカウント (オペレーター) を作成し、ソラカメ対応カメラの共有機能を利用してください。詳しくは、ソラカメ対応カメラを共有する を参照してください。

SAM ユーザーの作成や、SAM ユーザーに権限を設定する操作については、以下のページを参照してください。

ソラカメの課金に関係する API の使用を禁止する

{
  "statements": [
    {
      "api": [
        "OAuth2:authorize"
      ],
      "effect": "allow"
    },
    {
      "effect": "allow",
      "api": [
        "SoraCam:*"
      ]
    },
    {
      "effect": "deny",
      "api": [
        "SoraCam:updateSoraCamLicensePackQuantity",
        "SoraCam:updateSoraCamDeviceExportUsageLimitOverride"
      ]
    }
  ]
}

ソラカメに関係する API の使用をすべて許可したうえで、ソラカメの課金に関係する以下の API の使用を禁止しています。

ソラカメの課金に関係する API が増えた場合は、SAM パーミッションを更新してください。

ソラカメに関係するすべての API の使用を許可する

{
  "statements": [
    {
      "api": [
        "OAuth2:authorize"
      ],
      "effect": "allow"
    },
    {
      "effect": "allow",
      "api": [
        "SoraCam:*",
        "Order:*",
        "Gadget:*",
        "ShippingAddress:listShippingAddresses"
      ]
    }
  ]
}

ソラカメに関係する API の使用をすべて許可したうえで、さらに以下の API の使用を許可しています。

Order:* API および Gadget:* API を許可しているため、ソラカメに関係しない機能も利用できます。

固有のソラカメ対応カメラへのアクセスを制限する

指定したデバイス ID のソラカメ対応カメラの詳細画面へのアクセスのみを許可します。

  • 詳細画面の [クラウド録画][デバイス情報][イベント][動画ダウンロード管理][静止画ダウンロード管理] はすべて、ルートユーザーと同様に操作できます。
  • pathVariable('device_id') == 'xxxx'xxxx には、閲覧を許可するソラカメ対応カメラのデバイス ID を指定してください。
  • ほかの演算子も使用できます。たとえば、== 'xxxx' の部分を、!= 'xxxx' にすると、xxxx を除くすべてのソラカメ対応カメラへのアクセスが許可されます。複数のデバイス ID を指定する場合は、orand も見直す必要があります。設定変更後に意図した動作になっていることを確認してください。ルートユーザーの場合は、スイッチユーザー を利用すると比較的簡単に動作を確認できます。
アクセスできない画面について

以下の画面/機能は利用できません。

  • デバイス管理画面、動画ダウンロード管理画面など、複数のソラカメ対応カメラの情報を一覧する画面。

  • 指定したデバイス ID 以外のソラカメ対応カメラの詳細画面。

    あらかじめソラカメ対応カメラの詳細画面 (例: https://console.soracom.io/sora_cam/devices/xxxx?coverage_type=jp) をブックマークしたり、詳細画面の URL をルートユーザーが共有したりしてください。

  • Soracom Cloud Camera Services を除く SORACOM サービスの画面/機能 (例: SORACOM ユーザーコンソールのダッシュボード、SIM 管理画面)

一覧画面の表示を許可するには

デバイス管理画面、動画ダウンロード管理画面など、複数のソラカメ対応カメラの情報を一覧する画面の利用を許可するには、以下のように condition の先頭に pathVariable('device_id') == '' or を追加します。

      "condition": "pathVariable('device_id') == '' or pathVariable('device_id') == 'xxxxx' or pathVariable('device_id') == 'yyyyy' or pathVariable('device_id') == 'zzzzz'"
{
  "statements": [
    {
      "api": [
        "OAuth2:authorize"
      ],
      "effect": "allow"
    },
    {
      "effect": "allow",
      "api": [
        "SoraCam:*"
      ],
      "condition": "pathVariable('device_id') == 'xxxxx' or pathVariable('device_id') == 'yyyyy' or pathVariable('device_id') == 'zzzzz'"
    },
    {
      "effect": "deny",
      "api": [
        "SoraCam:updateSoraCamLicensePackQuantity",
        "SoraCam:updateSoraCamDeviceExportUsageLimitOverride"
      ]
    }
  ]
}

ソラカメ対応カメラを設置する (追加する) 操作だけを許可する

STEP 1: ソラカメ対応カメラを設置する (追加する) の手順を行うための API の使用を許可します。

{
  "statements": [
    {
      "api": [
        "OAuth2:authorize"
      ],
      "effect": "allow"
    },
    {
      "effect": "allow",
      "api": [
        "SoraCam:createSoraCamDeviceAtomCamBindingToken",
        "SoraCam:getSoraCamDeviceAtomCamBindingTokenStatus",
        "SoraCam:listSoraCamLicensePacks",
        "SoraCam:setSoraCamDeviceName",
        "SoraCam:getSoraCamDevice"
      ]
    }
  ]
}