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
) が競合した場合の動作について詳しくは、SAM ユーザーの権限設定の適用順序について を参照してください。
関連付けた (アタッチした) ロールを削除するには
関連付けたロールを削除するには、ロール一覧画面で
→ の順にクリックします。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:*" } ] }