アクセス制御
IronFlockは、プロジェクト内のアセットを誰が読み取り、編集し、管理できるかを制御するための、きめ細かい権限システムを使用します。権限はユーザーごと、アセットごとに追跡され、時系列で完全にバージョン管理されます。
アクセス制御の仕組み
所有権
プロジェクトとアプリのみが所有権の概念を持ちます。プロジェクトのオーナーはスーパーユーザーであり、個別のアセット設定に関わらず、プロジェクト内のすべてのアセット(デバイス、グループ、ボード、データバックエンド)を自動的に完全制御できます。他のユーザーがデバイスをプロジェクトに追加した場合でも、プロジェクトオーナーはそれらのデバイスへのスーパーユーザーアクセスを保持します。
アプリのオーナーも同様に、そのアプリのコード、リリース、配布を完全に制御できます。
きめ細かいアセット別権限
プロジェクト内では、4種類のアセットタイプについて、個々のプロジェクトメンバーにきめ細かい権限を付与できます:
| アセットタイプ | 説明 |
|---|---|
| デバイス | 物理または仮想のエッジデバイス |
| デバイスグループ | プロジェクト内のデバイスの論理グループ |
| ユーザーボード | データ可視化ダッシュボード |
| データバックエンド | プロジェクトごとにプロビジョニングされる時系列データベース |
権限は、すでにプロジェクトに招待されているユーザーにのみ割り当てられます。プロジェクト外のユーザーにアセットレベルの権限を付与することはできません。
プロジェクトメンバーのデフォルト権限
プロジェクト内では、各アセットタイプについてすべてのプロジェクトメンバーに適用されるデフォルト権限を定義できます。これにより、たとえば全プロジェクトメンバーにデフォルトですべてのボードへの閲覧アクセスを与えることができ、個別にアクセスを付与する必要がなくなります。
プロジェクト権限
プロジェクトオーナーはプロジェクトとそのすべてのアセットへの完全なスーパーユーザーアクセスを持ちます。他のユーザーには以下のプロジェクトレベルの権限を付与できます:
| 権限 | 説明 |
|---|---|
| デバイスの作成 | プロジェクトに新しいデバイスを追加する |
| グループの作成 | 新しいデバイスグループを作成する |
| 更新 | プロジェクト名、説明、メタデータを編集する |
| 権限の付与 | 他のユーザーの権限を割り当てまたは変更する |
| 削除 | プロジェクト全体を完全に削除する |
デバイスの権限
| 権限 | 説明 |
|---|---|
| 操作 | 制御コマンドを送信してデバイスと対話する |
| 開発 | デバイス上の開発機能とコンテナにアクセスする |
| インストール | デバイスにアプリをインストールまたは削除する |
| 更新 | 名前、説明、その他のメタデータを編集する |
| ネットワーク | ネットワーク設定(Wi-Fi、Ethernet)を構成する |
| メンテナンス | メンテナンス機能、ターミナル、システム診断にアクセスする |
| 削除 | デバイスをプロジェクトから完全に削除する |
| 権限の付与 | このデバイスで他のユーザーの権限を割り当てまたは変更する |
デバイスグループの権限
| 権限 | 説明 |
|---|---|
| 更新 | グループ名、説明、メンバーを編集する |
| 削除 | グループを完全に削除する |
| 権限の付与 | このグループで他のユーザーの権限を割り当てまたは変更する |
アプリの権限
| 権限 | 説明 |
|---|---|
| 閲覧 | アプリ、説明、ダッシュボードを表示する |
| 開発 | ソースコードにアクセスし、アプリを編集し、App Studioを使用する |
| コードの閲覧 | アプリのソースコードへの読み取り専用アクセス |
| 更新 | アプリのメタデータ(名前、説明、画像)を編集する |
| 削除 | アプリを完全に削除する |
| 権限の付与 | このアプリで他のユーザーの権限を割り当てまたは変更する |
| リリース | App Storeに新しいバージョンを公開する |
| 使用 | アプリをプロジェクトにインストールする(プライベートアプリに必要) |
| App Store | App Storeのリスティングと公開設定を管理する |
ボードとデータバックエンドの権限
| 権限 | 説明 |
|---|---|
| 更新 | コンテンツまたは設定を編集する |
| 権限の付与 | 他のユーザーに権限を割り当てる |
| 削除 | ボードまたはデータバックエンドを完全に削除する |
ユーザーの招待
プロジェクト内で別のユーザーに権限を付与するには:
- 任意のアセット(プロジェクト、デバイス、グループ、ボード、データバックエンド)の権限セクションに移動します。
- ユーザーを招待をクリックします。
- メールアドレスでユーザーを検索します。
- 付与する権限を選択します。
- 招待をクリックします。
プロジェクトのメンバーであるユーザーのみが、そのプロジェクト内のアセットレベルの権限を受け取ることができます。
所有権の移転
プロジェクトの移転
プロジェクトオーナーは、所有権を別のIronFlockユーザーに移転できます。新しいオーナーは完全なスーパーユーザーアクセスを受け取り、前のオーナーのアクセスはプロジェクト内で保持している権限に依存します。
プロジェクトの所有権を移転するには、プロジェクト設定を開き、権限タブに移動します。
アプリの移転
アプリオーナーは、所有権を別のIronFlockユーザーに移転できます。所有権の移転により、アプリのコード、リリース、価格設定、配布の完全な制御が新しいオーナーに移ります。
アプリの所有権を移転するには、App StudioでアプリをD開き、権限タブに移動します。
デバイスの移転とクレーム
デバイスを別のプロジェクトに移転する
デバイスをあるプロジェクトから別のプロジェクトに移転できます。これにより、デバイスと設定が送付先プロジェクトに移動します。移転を開始または受け取るには、送付先プロジェクトでデバイスの作成権限が必要です。
クレーム可能なデバイス
デバイスをクレーム可能としてマークできます。デバイスがクレーム可能な場合、そのデバイスIDを知っているIronFlockユーザーは誰でも積極的にクレームできます — デバイスの作成権限を持つプロジェクトに転送します。これは次のような場合に便利です:
- セルフプロビジョニングワークフロー — フィールドテクニシャンが管理者の関与なくデバイスを登録する
- アウト・オブ・ボックス・アクティベーション — エンドカスタマーがデバイスID(QRコードラベルなど)をスキャンして自分のプロジェクトにデバイスを組み込む
クレーム後、デバイスはクレームしたユーザーのプロジェクトに移動し、クレーム不可になります。
アクセス制御の継承
- プロジェクトオーナー — プロジェクト内のすべてのデバイス、グループ、ボード、データバックエンドを自動的に完全制御します。個別のアセット付与は不要です。
- デフォルトメンバー権限 — 個別付与で上書きされない限り、特定のアセットタイプについてすべてのプロジェクトメンバーに適用されます。
- デバイスレベルの権限はグループレベルの権限とは独立しています。グループへの権限付与は個々のデバイス設定には伝播しません。
監査証跡
すべての権限変更は以下を記録します:
- 誰が変更を行ったか(付与者)
- 何が変更されたか(どの権限が追加または削除されたか)
- 誰が影響を受けたか(権限が変更されたユーザー)
- いつ変更が発生したか
この時系列の監査証跡は監査ログセクションで参照でき、コンプライアンスレビューやセキュリティ調査に役立ちます。