ソラカメ共有用SAMユーザーの権限設定

# 概要
この記事は[SORACOM Advent Calendar 2022](https://qiita.com/advent-calendar/2022/soracom)の二日目の記事です。
SORACOMさんが提供しているソラカメを使う際の備忘録です。
今回は、ソラカメを複数の人と共有してみる際に用意するSAMユーザーの権限設定について調べました。
この権限設定は、ソラカメをAPI利用する際にも使えます。

# 前提
ここでは、「SoracamWatcher」というSAMユーザーを準備して、
そのユーザーに対してソラカメにアクセスする権限のロールを割り当てることを想定しています。
なお、カメラの一覧や動画の取得といった一連の操作ができる権限をセットします。
ライセンス周りの権限は与えないようにします。

# 手順
### ①SAMユーザー作成
SORACOMのユーザーコンソールにログインしてください。
ログインしたら、右上のアカウントの枠をクリックし、
表示されたメニューから「セキュリティ」を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/146789/f0807293-ac05-3ac0-3ce0-647fa60ba2fa.png)

以下のような画面が表示されるので、左側のメニューから「ユーザー」を選択し、
「SAMユーザー作成」を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/146789/fd71b6f2-e31b-4d08-5f0f-57fee3165d96.png)

以下のよな画面が表示されるので、名前に「SoracamWatcher」と入力し、「作成」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/146789/249261e2-631e-9ac1-1f0c-cd9016da0d78.png)

SAMユーザー一覧に「SoracamWatcher」が追加されているので、そこをクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/146789/79dd3089-8e29-5d2e-75b8-87e8ff6b60e8.png)

認証設定タブを選択し、「コンソール ログイン パスワード」欄の「パスワード設定」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/146789/eea64c5d-fa3d-91ae-b5b1-80380cb4f70e.png)

このSAMユーザー用のログインパスワードを設定してください。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/146789/8a146e6d-3c5a-8e05-f7d3-5b979c8e0c0b.png)


### ②ロールの作成 
次はロール（役割を定義したもの）を作成します。
左側のメニューから「ロール」を選択し、「ロール作成」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/146789/ba849ad9-df4e-da75-e076-6f78917a7c8e.png)

以下のような画面が表示されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/146789/1dc2c931-980b-efae-a7ae-2794500d3258.png)

ロールIDには、任意の文字列を入力してください。
ここでは、「SoracamWatcherRole」としています。
次に、権限設定を行います。
ここでは以下のように入力しています。

``` yml
{
  "statements": [
    {
      "effect": "allow",
      "api": [
        "SoraCam:*Device*",
        "OAuth2:authorize",
        "Auth:*"
      ]
    }
  ]
}
```

記述方法については割愛しますが、上記の記述でソラカメ用のAPIのうち「Device」を含むAPIの利用を許可しています。
※ソラカメ用のAPIは[こちら](https://users.soracom.io/ja-jp/tools/api/reference/#/SoraCam)を参照ください。
　ライセンスパック周りのAPI以外には「Device」という文字列が含まれているので、
　上記のような記述にしています。
なお、ソラカメのAPIは、Auth、OAuth2:authorizeの許可も合わせて必要になります。

入力が終わったら、「作成」をクリックして画面を閉じます。


# SAMユーザーにロールを割り当て
ユーザー一覧から、再度「SoracamWatcher」を選択し、
権限設定タブの一番下にある「ロール指定」欄の「+ ロールをアタッチ」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/146789/2be61abf-905f-1acd-4246-7f09d1ac1450.png)

以下のような画面が表示されるので、「SoracamWatcherRole」にチェックを入れ、
「アタッチ」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/146789/46bec3c8-bc3a-654d-9c2a-384a564ff762.png)

以上で設定は完了です。

# 動作確認
SORACOMのユーザーコンソールで、SAMユーザー用のログイン画面を表示させます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/146789/42d23f1c-44e1-761c-b368-f888d6d29181.png)

SAMユーザーが所属するオペレーターID、SAMユーザー名、パスワードを入力してログインしてください。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/146789/79e0fe7c-e33f-4fdb-fc84-ede48963b7de.png)

ログイン後、左上のハンバーガーメニューをクリックして、
「ソラコムクラウドカメラサービス」の中の「デバイス管理」を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/146789/f617a3ef-885a-4bca-6088-d787e57b5262.png)

そうすると、オペレーターIDに紐づくカメラが一覧で表示されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/146789/21b56fd1-a33f-bda9-7121-f506ac529631.png)

「ソラコムクラウドカメラサービス」の中の「ライセンス管理」を選択すると、
権限がない旨が表示されるはずです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/146789/5480b54a-9279-ef4e-8df5-a36531bdc84a.png)


# AtomアプリにSAMユーザーでログインした際の注意点
[こちら](https://users.soracom.io/ja-jp/guides/soracom-cloud-camera-services/soracom-login-to-atom-app/)に記載の手順で、上記で作成したユーザーでログインできます。

ただし、何故か「カメラのライセンス管理」メニューから、クラウド常時録画の設定が
変更できてしまいます・・・。
⇒サポートに聞いてみます。