SORACOM Blog

ソラコムの最新情報をお届けします

新機能:SORACOM Access Management(SAM) が利用可能に

SORACOM では、デバイスや通信のセキュリティを向上させるための機能をリリースしていますが、SORACOM のご利用者の皆様から、SORACOM のコンソールや API を利用する際の権限を詳細に設定したい、つまり管理側のセキュリティも強化したいというお声を、特に SPS パートナー様から多く頂いていました。

例えば、経理担当の方がユーザーコンソールを利用して料金を把握する際、SIM の個別の情報にはアクセスする必要がありませんし、悪意を持って SIM の解約を行われたりするケースは、可能な限り防ぐ必要があります。

従来では、SORACOM のアカウントを作成した際に作成される “オペレーター” と呼ばれるアカウントのみが利用でき、メールとパスワードを使った全権限を持ったログインしか行うことができなかったため、システム的に上記のような問題を防ぐことは出来ませんでした。

今回リリースされた SORACOM Access Managament(SAM) を利用することで、このような制御が可能となりました。

SAM の全体をまとめると、次のようなイメージとなります。

SAM

各要素について、説明をしていきましょう。

SAMユーザー

ユーザーコンソールの"セキュリティ"タブから、「SAM ユーザー」というユーザーを作成できます。

SAM

SAMユーザーはそれぞれに名前(SAM ユーザー名)を持っています。

コンソールログインを行わせたい場合は、SAM ユーザーに対してコンソールログインパスワードを設定することが可能です。 SAM ユーザーは、「オペレーター ID」「SAM ユーザー名」「コンソールログインパスワード」の3つで、コンソールにログインすることが可能です。

SAM ログイン

認証キー

プログラムやバッチ処理など、SORACOM API を呼び出す場合に使用できる「認証キー」が新しい認証方式として加わりました。 これはオペレーターおよび SAM ユーザーごとに設定することができる、認証用のキーペアです。

認証キーは、認証キー ID と認証キーシークレットの2つのキーで構成されています。

オペレーターはコンソール右上のプルダウンメニューから、SAM ユーザーは、セキュリティタブの SAM ユーザー設定画面の認証設定より生成できます。

AuthKey

コンソールで生成したキーは同一の認証キー IDでは再発行できないため、安全な場所に保管しておくことを推奨します。

取得した認証キーは、認証 API のパラメータとして渡すことで、認証トークンを取得することができ、各種 API へアクセスすることができます。

認証キーは最大2つづつ割り当てることができるため、認証キーのローテーションが可能です。このため、プログラムやバッチ処理に使用する場合は、従来のメール/パスワードに変えて、この認証キーを利用することを推奨します。

権限設定

SAM ユーザーは、作成しただけでは各種コンソール機能/API にアクセスすることはできません。SAM ユーザーに対して、アクセスを許可するために権限を付与することができます。

権限は、SAM ユーザーに直接付与することもできますし、"ロール"と呼ばれる権限設定のためのグループに権限を付与して、そのロールを SAM ユーザーを関連付けることでも付与することができます。

権限は、パーミッション構文という構文に従って記述することができます。

パーミッション構文は非常に柔軟で、API に対するアクセス可否だけでなく、IP アドレスや日付などを条件にした権限設定をすることも可能です。

Permission

SAM ユーザーに利用させたい API を指定することで、API とコンソールの操作を制限することが可能になり、単にセキュリティを向上させるだけでなく、操作ミスやオペレーション時のエラーを防ぐことも可能となります。

まとめ

SAM を利用することにより、SORACOM での運用における権限制御を詳細に行うことが可能となりました。

SAM はすでにご利用できる状態となっております。SAM の利用料金は無料ですので、ぜひ積極的にお使いいただき、より安心な SORACOM の運用にご活用下さい。

また SAM への機能追加のご要望がありましたら、ぜひお聞かせ下さい。

Getting Started: https://dev.soracom.io/jp/start/sam パーミッション構文詳細: https://dev.soracom.io/jp/docs/sam_permission

ソラコム 片山 (Twitter: @c9katayama)