SAM ユーザーを作成する
ルートユーザーとは別の「SAM ユーザー」を作成し、SAM ユーザーごとに権限を細かく管理します。利用できる API や利用可能期間などを SAM ユーザーごとに設定できるため、不要なアクセスや操作ミスによる損失を未然に防ぐことが期待できます。
SORACOM ユーザーコンソール にログインし、右上のユーザー名が表示されているボタンをクリックして、 をクリックします。
SAM ユーザー一覧画面が表示されます。
をクリックし、 をクリックします。
と を入力し、 をクリックします。
項目 説明 名前 SAM ユーザーの名前です。SORACOM ユーザーコンソールに、SAM ユーザーとしてログインするときに使います。パスワードの設定方法は、SORACOM ユーザーコンソールのログインパスワードの設定 を参照してください。 概要 SAM ユーザーを識別するための任意の文字列です。
認証設定と権限設定が必要です
SAM ユーザーの認証設定
作成した SAM ユーザーの認証キーを生成したり、パスワードを設定したりします。
SORACOM CLI や SORACOM API を利用するには、認証キーを生成することを推奨します。また、SORACOM ユーザーコンソールにログインするためには、パスワードを設定してください。
SAM ユーザー一覧画面で、パスワードの設定または認証キーの生成を行う SAM ユーザーをクリックします。
をクリックします。
SAM ユーザーの認証設定画面が表示されます。
この SAM ユーザーが、SORACOM CLI や SORACOM API を利用する場合は、認証キーを生成します。
この SAM ユーザーが、SORACOM ユーザーコンソールにログインする場合は、パスワードを設定します。
認証キーの生成
SAM ユーザーが SORACOM CLI や SORACOM API を利用する場合は、認証キーを生成することを推奨します。
生成した認証キーは、SORACOM プラットフォーム内に保存されます。ダウンロードできません。
SAM ユーザーの認証設定画面で
をクリックします。「認証キー ID」 と 「認証キーシークレット」 が表示されます。
をクリックします。
「SAM ユーザー名」(user)、「認証キー ID」(authKeyId)、「認証キーシークレット」(authKeySecret) が、以下の書式でクリップボードにコピーされます。なお、1 行目はヘッダーです。2 行目に記載された情報を利用してください。
user,authKeyId,authKeySecret my-user,keyId-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx,secret-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
「認証キー ID」(authKeyId)、「認証キーシークレット」(authKeySecret) の 2 つを使って
Auth:auth API
を呼び出すと、SAM ユーザーとして SORACOM API を使用するための API キーと API トークンが発行されます。詳しくは、API キーと API トークンを発行する を参照してください。
認証キーシークレットは安全な状態で保管してください
発行済みの「認証キーシークレット」(authKeySecret) は、再確認できません。安全な状態で保管してください。
認証キー ID と認証キーシークレットは、SAM ユーザーが SORACOM CLI や SORACOM API を利用できることを証明するための情報です。漏洩した可能性がある場合は、速やかに認証キーを削除してください。
認証キーを削除する場合は、SAM ユーザーの認証設定画面で
をクリックします。認証キーを削除すると、対応する認証キー ID と認証キーシークレットを利用しても、API キーと API トークンが発行できなくなります。ただし、すでに発行された API キーと API トークンは引き続き利用できます。
最大 2 件の認証キーを作成できます
- 同じ SAM ユーザーの権限で動作する複数のプログラムを作成する場合に、2 件の認証キーを使い分けることを推奨します。仮に一方の認証キーが漏洩した場合は、その認証キーは速やかに削除します。このとき、削除した認証キーを使用していたプログラムは、SORACOM CLI や SORACOM API を利用できなくなります。このとき、もう一方の漏洩していない認証キーを使用しているプログラムには影響がありません。
- 認証キーごとに異なる権限を設定することはできません。
SORACOM ユーザーコンソールのログインパスワードの設定
SAM ユーザーで SORACOM ユーザーコンソールにログインする場合は、ログインパスワードを設定します。
SAM ユーザーの認証設定画面で
をクリックします。および に、画面に表示された条件を満たす同一のパスワードを入力して、 をクリックします。
ログイン URL が発行されます。ログイン URL を SAM ユーザーに共有すると、SAM ユーザーとしてログインする ときに、オペレーター ID の入力を省略できます。
ログインパスワードを更新/削除するには
SAM ユーザーの認証設定画面で
または をクリックし、画面の指示に従って操作します。なお、パスワードを削除すると、この SAM ユーザーでは SORACOM ユーザーコンソールにログインできなくなります。
多要素認証に対応しています
ログイン URL にはカバレッジタイプも含まれています
SAM ユーザーが日本カバレッジのサービスを利用することが多い場合は、日本カバレッジ用のログイン URL を共有すると便利です。ログイン URL に含まれるカバレッジタイプは、SORACOM ユーザーコンソールで表示するカバレッジタイプ と同一です。
SAM ユーザーの権限設定
SAM ユーザーが SORACOM API を呼び出す場合は、呼び出す API にあわせて SAM ユーザーごとに権限を設定します。
権限を設定する方法には、直接指定、ロール指定、SAM デフォルト権限設定の 3 種類があります。1 ユーザーに対して、すべての方法で権限を設定した場合の適用順序については、SAM ユーザーの権限設定の適用順序について を参照してください。
設定方法 | 説明 |
---|---|
SAM ユーザーごとに、個別の権限を設定します。詳しくは、直接指定 を参照してください | |
あらかじめロールを作成し、ロールを SAM ユーザーに関連付け (アタッチ) します。詳しくは、ロール指定 を参照してください。 | |
SAM デフォルト権限設定 | SAM デフォルト権限は、すべての SAM ユーザーに適用される権限です。詳しくは、SAM デフォルト権限設定 を参照してください。 |
SORACOM ユーザーコンソールおよび SORACOM CLI のほとんどの機能は権限設定の影響を受けます
SORACOM ユーザーコンソールおよび SORACOM CLI のほとんどの機能は、SORACOM API を利用しています。したがって、必要な権限が SAM ユーザーに設定されていない場合は、エラーメッセージが表示されたり、説明どおりに操作できなかったりします。
SORACOM ユーザーコンソールの主な機能と必要な権限設定については、SORACOM ユーザーコンソールの主な機能と必要な権限設定について を参照してください。
なお、SIM 管理画面の一覧 に表示する項目を設定する操作など、権限設定が不要な機能もあります。
SAM ユーザーの権限設定を変更したときは新しい API キーと API トークンを発行してください
SAM ユーザーの権限設定に関する情報は、API キーと API トークンに含まれています。したがって、API キーと API トークンを発行後に SAM ユーザーの権限設定を変更したときは、以下の方法で新しい API キーと API トークンを発行してください。
- SORACOM API および SORACOM CLI を利用する場合は、API キーと API トークンを発行する の手順に従って API キーと API トークンを発行してください。
- SAM ユーザーが SORACOM ユーザーコンソールにログインしている場合は、一度ログアウトしてログインし直してください。ログインし直したときに、新しい API キーと API トークンが発行されます。
SAM ユーザーに権限設定を許可しないでください
技術的には、SAM ユーザーに権限設定 (User:updateUserPermission API
) を許可すると、SAM ユーザーが自分ですべての機能の利用を許可できるようになります。権限設定を許可しないことを強く推奨します。
ルートユーザーには権限を設定できません
Query:searchSims
を許可した場合は、すべての IoT SIM に対して SIM グループも含めた検索/一覧取得を行う権限が与えられます。
たとえば、IoT SIM の一覧取得の権限のみを付与する場合は、Sim:listSims
を許可してください。直接指定
SAM ユーザーごとに、個別の権限を設定します。
SAM ユーザー一覧画面で、権限を設定する SAM ユーザーをクリックします。
をクリックします。
パーミッション構文に従った JSON を
に入力します。たとえば、ある SAM ユーザーに、IoT SIM の一覧を表示する権限のみを付与する場合は、以下のように入力します。
{ "statements": [ { "effect": "allow", "api": [ "Sim:listSims" ] } ] }
パーミッション構文については、権限設定のためのパーミッション構文 を参照してください。
テンプレート (良く使われる定型的な設定) や作成済みのロールを参考にできます
良く使われる定型的な権限設定を「テンプレート」という名前で用意しています。
ロール) を選択して、 に入力する内容の参考にできます。 をクリックすると、 に表示されている内容をクリップボードにコピーできます。
で目的に合った権限設定 (テンプレート、またはをクリックします。
ロール指定 (関連付け)
あらかじめ ロールを作成 しておくと、ロールを SAM ユーザーに関連付ける (アタッチする) だけで、SAM ユーザーの権限を設定できます。
SAM ユーザー一覧画面で、権限を設定する SAM ユーザーをクリックします。
をクリックします。
の をクリックします。
関連付ける (アタッチする) ロールにチェックを入れて、
をクリックします。ロール一覧画面が表示されます。
複数のロールを指定した場合の動作について
直接指定とロール指定に優先順位はありません。直接指定およびロール指定で設定した権限はすべて同じ優先順位で評価されます。許可設定 (allow
) と拒否設定 (deny
) が競合した場合の動作について詳しくは、effect (必須) : API 実行の許可または拒否 を参照してください。
関連付けた (アタッチした) ロールを削除するには
関連付けたロールを削除するには、ロール一覧画面で
→ の順にクリックします。SORACOM ユーザーコンソールの主な機能と権限設定について
適切な権限を設定していない SAM ユーザーが SORACOM ユーザーコンソールにログインすると、SIM 管理画面が表示されないなど説明通りに操作できない場合があります。これは、SORACOM ユーザーコンソールの一部の機能が、SORACOM API を利用しているためです。
SORACOM ユーザーコンソールの主な機能と、その機能を利用するために必要な権限の関係は、以下のとおりです。
必要な機能を利用できないときは
上記の表に記載されている機能に限らず、ほとんどすべての機能は適切な権限を設定する必要があります。
必要な機能を利用できないときは、機能に対応する権限を SAM ユーザーに設定してください。すべての権限は、SORACOM API リファレンス で調べられます。
SAM ユーザーの権限設定の適用順序について
SAM ユーザーに対して権限を設定する方法には、直接指定、ロール指定、SAM デフォルト権限設定 の 3 種類があります。ある SAM ユーザーに対して、複数の方法で権限を設定した場合は、以下のルールで権限が適用されます。
直接指定、ロール指定 (複数指定可能)、SAM デフォルト権限設定の 3 種類の権限設定を、すべて同じ優先順位で組み合わせます。その結果、同じ API に対して、許可 (allow) と 禁止 (deny) を設定した場合は、API の呼び出しは 禁止 (deny) されます。
なお、具体例は以下のとおりです。
例 1:
Billing:bills | Billing:bills を除く Billing:* | |
---|---|---|
権限設定 A | allow + | 指定なし + |
権限設定 B | deny ↓ | deny ↓ |
結果 | deny | deny |
権限設定 A :
Billing:bills
だけが allow{ "statements": [ { "effect": "allow", "api": "Billing:bills" } ] }
権限設定 B :
Billing:*
が deny (Billing:bills
も deny){ "statements": [ { "effect": "deny", "api": "Billing:*" } ] }
例 2:
Billing:bills | Billing:bills を除く Billing:* | |
---|---|---|
権限設定 A | deny + | 指定なし + |
権限設定 B | allow ↓ | allow ↓ |
結果 | deny | allow |
権限設定 A :
Billing:bills
が deny の権限設定{ "statements": [ { "effect": "deny", "api": "Billing:bills" } ] }
権限設定 B :
Billing:*
が allow の権限設定 (Billing:bills
も allow){ "statements": [ { "effect": "allow", "api": "Billing:*" } ] }