#SORACOM で読み取り専用のユーザーを作成する

2016.02.18

ども、大瀧です。
IoTプラットホームサービスSORACOMで、SORACOM APIおよびWebコンソールの操作を制限するSAM(SORACOM Access Management)機能がリリースされました。 今回はSAMの活用で一度は通るであろう、リードオンリーユーザーの設定例をご紹介します。

SORACOMのSAMは、ユーザーコンソールおよびAPIなど管理目的で利用するための仕組みです。Air SIMによるデータ通信やSORACOM Beamなどの各サービスの認証とは関係無く、SIMがあればSAMユーザーの設定なしで各サービスが利用できます。

SAMのパーミッション構文

SAMの権限はJSON形式のパーミッション構文に従い、SORACOM APIの単位で設定します。詳細は以下ドキュメント/リファレンスを参照ください。

SORACOM APIはRESTful APIなので、リードオンリー権限は概ねGETに対応すると考えます。一部まとまったデータをエクスポートするAPIがPOSTなので、それらを補う形がよさそうです。以下のようにしてみました。

{
    "statements":[
        {
            "effect":"allow",
            "api":"*",
            "condition":"httpMethod == 'GET'"
        },
        {
            "effect":"allow",
            "api":[
            	"Billing:exportLatestBilling",
            	"Billing:exportBilling",
            	"Stats:exportAirStats",
            	"Stats:exportBeamStats"
           ]
        }
    ]
}
  • 3-7行目 : 全APIをGETのみ許可
  • 8-16行目 : 4つのAPIはHTTPメソッドを制限せずに許可

注意 : SORACOMのサービス追加やAPIの仕様変更によって、追加するべき権限が増える可能性もあります。

設定手順

公式ドキュメントに沿って進めて行きます。

1. SAMユーザーの作成

まずは設定するSAMユーザーを作成します。SORACOMユーザーコンソールにログインし、メニューから[セキュリティ] - [ユーザー]を選択、[+ ユーザー作成]をクリックします。

soracom-sam-ro01

ユーザーの[名前]、[概要]を入力し、[作成]をクリックします。

soracom-sam-ro02

2. 権限、パスワードの設定

続いて、作成したSAMユーザーに権限とパスワードを設定します。ユーザー一覧から作成したSAMユーザーをクリックし、[権限設定]タブを表示、[直接指定]のテキストボックスにさきほどのJSONテキストをペーストします。

soracom-sam-ro03

直接指定する他に、SAMには複数のユーザーにまとめて権限を設定するロールという仕組みもあるので、メンテナンス性を考慮してロールに権限を設定しても良いでしょう。

続いて、ユーザーコンソールにログインできるよう、パスワードを設定します。[認証設定]タブから[パスワード設定]ボタンをクリックします。

soracom-sam-ro04

パスワード文字列を2回入力し、[設定]をクリックすればOKです。

soracom-sam-ro05

あと、このあとのSAMユーザーの動作確認のために、アカウントのオペレータIDが必要です。画面右上のアカウント名(メールアドレス)をクリックして確認できます。メモしておきましょう。

soracom-sam-ro07

動作検証

それでは、実際にログインして動作を確認してみます。先ほどまで開いていたユーザーコンソールからログアウトするか、別のブラウザからユーザーコンソールのログイン画面にアクセスします。SAMユーザーでのログインは、右上の[SAMユーザーとしてログイン]をクリックするかURLhttps://console.soracom.io/#/sam_loginに直接アクセスします。

soracom-sam-ro06

[オペレータID]と、作成した[ユーザー名]、[パスワード]をそれぞれ入力し、ログインします。

soracom-sma-ro09

正常にログインできること、SIM一覧など一連の情報が表示されることが確認できます。一方で、SIMを選択し[操作] - [休止] - [ステータスを変更する]など、設定変更を実行しようとするとエラーになることがわかります。

soracom-sam-ro08

意図した通り、リードオンリーの権限になっていることがわかりますね。

まとめ

SORACOMの制限ユーザーであるSAMユーザーでリードオンリーの権限を設定する例を紹介しました。 企業/組織などでSORACOMを管理・運用していく際にはSAMを積極的に活用していきましょう!