複数のアプリを作成するようになると、アプリを個人で作成する場合も、チームや組織のメンバーとして作成する場合も、作成するすべてのアプリが適用対象になる制約とガイドラインを設けるのが一般的です。アプリ ガバナンス ポリシーは、そうした制約とガイドラインを表現する手段です。
アプリポリシーは、一般的に以下のような理由で設定されます。
- 設計の整合性
- 企業コンプライアンス
以下のセクションでは、ポリシーを管理する方法について説明します。
- ポリシーとは
- ポリシーを追加できるユーザー
- アプリエディタにポリシーが自動適用されるタイミング
- [Policies] ページにアクセスする
- 事前定義ポリシーを追加する
- カスタム ポリシーを追加する
- ポリシーを構成する
- ポリシーの遵守状況を確認する
- ポリシーを編集する
- ポリシーを削除する
ポリシーとは
ポリシーとは、AppSheet アプリを作成、管理、配布する方法を制限するルールのことです。たとえば、ポリシーで以下のような制限を定義できます。
- すべてのアプリでユーザーのログインを求める
- AppSheet アプリを通じたデータの削除をできなくする
- アプリをデプロイ済みにマークできるユーザーを限定する
- アプリを特定のメールドメインでしか共有できなくする
ポリシーは組織レベル、チームレベル、または個人レベルで適用できます。
ポリシーを構成する際には、以下の 3 つの重要なコンポーネントを定義します。
- Condition: それぞれのアプリでチェックされる制約です。ガバナンス ポリシー向け条件式のリファレンスもご覧ください。
- Severity: [Error] または [Warning] です。条件が満たされなかった場合にどのような処理を行うのかをプラットフォームに伝えます。
- Stage: ポリシーがチェックされるタイミングです。
説明メッセージなど、その他のオプションもいくつかあります。
事前定義ポリシーやカスタム ポリシーも追加できます。事前定義ポリシーのテンプレートもご覧ください。
ポリシーを追加できるユーザー
- 個々の AppSheet ユーザー アカウントには、個別のポリシーを追加する権限があります。
- チームのルート アカウントとチームの管理者アカウントでは、チームのポリシーの作成と管理、組織のポリシーの確認を行うことができます。
- 組織の管理者アカウントでは、組織とチームのポリシーを作成、管理できます。
組織レベルのポリシーはチームレベルのポリシーよりも優先されますが、同じターゲット(コンポーネント)を持つチームのポリシーに対して「and」句のように機能します。AppSheet では常に、同一コンポーネントに対する組織のポリシーとチームのポリシーの条件の組み合わせによって実現する最も制限の厳しいポリシー ステートメントが適用されます。
例:
- 組織のポリシーですべての外部ユーザーが制限されており、チーム A のポリシーで
foo.comの外部ユーザーのみが制限されている場合、組織内のすべてのユーザーに対してすべての外部ユーザーが制限されます。 -
組織のポリシーで
foo.comの外部ユーザーが制限されており、チーム A のポリシーですべての外部ユーザーが制限されている場合は、チーム A のメンバーに対してはすべての外部ユーザーが制限され、他のチーム(B、C など)に対してはfoo.comの外部ユーザーのみが制限されます。
提案:
- ポリシーを追加する際には、重大度の低いもの(Warning など)から定義を始めると、すでにポリシーに違反している可能性のあるユーザーを即座にブロックせずに済みます。これは、作成したアプリの可用性を維持したい場合に重要となります。
- 事前定義ポリシーを試してみましょう。事前定義されていないポリシーを定義する場合には、カスタム ポリシーを使用してみてください。サポートが必要な場合は、AppSheet サポートにお問い合わせください。
アプリエディタにポリシーが自動適用されるタイミング
AppSheet では、[Condition] の設定が [field] = constant というフォーマットを使用して定義されている場合、アプリエディタの読み込み時にポリシーが自動的に適用されます。これには [Condition] の設定に AND 関数で結合された複数の [field] = constant ステートメントが含まれているポリシーも含まれます。
たとえば、Require sign-in ポリシーには以下の条件が設定されています。
[AuthRequired] = true
この条件は自動的にアプリに適用され、アプリエディタの [Require user signin?] 設定がオンになります(この設定は変更できません)。
同様に、Enforce FedRAMP compliance ポリシーには以下の条件が設定されています。
AND(
[EnableFirebase]=false,
[EnableMapsAndGeocoding]=false,
[ScanningServiceName]="System Default: Google MLKit"
)
条件は自動的に適用され、以下の [External service] 設定が構成されます(この設定は変更できません)。
- [Allow Firebase] 設定をオフにしてブランドアプリに Firebase を使用できなくする
- [Allow maps and geocoding] 設定をオフにしてマップとジオコーディングを使用できなくする
- [Barcode/QRcode scanning service] 設定を [System Default] に制限して外部バーコード スキャナを使用できなくする
[Policies] ページにアクセスする
[Polices] ページにアクセスすると、AppSheet アプリエディタを開いて組織、チーム、アカウントで有効になっているポリシーを表示したり管理したりできます。
- 上部のナビゲーションで [Admin] > [Policies] を選択する
- アカウント プロファイルのプルダウンで [Policies] を選択する
さらに AppSheet 管理者は、AppSheet 管理コンソール(プレビュー)の左にあるナビゲーションで [Policies] を選択できます。
[Policies] ページが表示されます。
上の画像に示すように、[Policies] ページでは管理者が以下のことをできます。
事前定義ポリシーを追加する
事前定義ポリシーを追加する手順は以下のとおりです。
- [Policies] ページにアクセスします。
- スコープを [Organization]、[Team]、[Account] から選択します。
- 組織のポリシー、チームのポリシー、アカウント固有のポリシーを追加するには、それぞれ [+ Organization policy]、[+ Team Policy]、[+ Account Policy] をクリックします。
- [Policy Template] プルダウンで [predefined policy template] を選択します。
- [Next] をクリックします。
- ポリシーを構成します。
- ポリシーの遵守状況を確認します。
- [Save] をクリックします。
カスタム ポリシーを追加する
カスタム ポリシー テンプレートを使用することで、AppSheet サービスの特定のコンポーネントに基づいてルールを作成できます。
カスタム ポリシーを作成する手順は以下のとおりです。
- [Policies] ページにアクセスします。
- スコープを [Organization]、[Team]、[Account] から選択します。
- 組織のポリシー、チームのポリシー、アカウント固有のポリシーを追加するには、それぞれ [+ Organization policy]、[+ Team Policy]、[+ Account Policy] をクリックします。
- [Policy Template] プルダウンで [Custom policy] を選択します。
- [Next] をクリックします。
- ポリシーを構成します。
- ポリシーの遵守状況を確認します。
- [Save] をクリックします。
ポリシーを構成する
以下の表に沿ってポリシー設定を構成します。
|
設定 |
説明 |
|
Name |
[Policies] ページに表示されるポリシー名です。 |
|
Component |
カスタム ポリシーのみで必要です。カスタム ポリシーの影響を受ける AppSheet コンポーネントを選択します。アプリ定義のほぼすべての側面をポリシーで管理できます。 |
|
それぞれのアプリでチェックされる制約です。事前定義テンプレートでは、条件は定義済みです。たとえば、Require sign-in ポリシーには、 必要に応じて条件式を変更します。 条件式に含めることのできる列名のリストと条件式でサポートされていない関数のリストについては、ガバナンス ポリシーの条件式リファレンスをご覧ください。
注: 条件の構文は、AppSheet のその他の箇所で使用されている式の構文と同一です。
|
|
|
条件が満たされなかった場合にどのような処理を行うのかを指定するフラグです。有効な値は [Error] または [Warning] です。 |
|
| Target |
ポリシーのターゲットにするアプリです。有効な値は [All Apps]、[Prototype Apps]、[Deployed Apps] のいずれかです。 |
|
ポリシーがチェックされるステージです。有効な値は以下のとおりです。
大半のポリシーは、デフォルトで [Enforce always] に設定されています。ただし一部のポリシーについては、アプリのデプロイ前にアクティビティの完了(アプリへのドキュメントの添付など)を確認できる [Check on Deployment] の方が適している場合もあります。 次の点にご注意ください。
|
|
|
Description |
[Policies] ページに表示されるポリシーの説明です。 |
|
Success Message |
ポリシーが問題なく遵守されている場合に表示されるメッセージです。 |
|
Failure Message |
ポリシーに違反している場合に表示されるメッセージです。 |
ポリシーの遵守状況を確認する
ポリシーを構成する際に、[Define an App Policy] ダイアログの右側のペインでポリシーの遵守状況をレビューすることで、アプリの各バージョン(最新版および安定版)で期待される結果が得られることを確認してからポリシーを保存できます。
例:
画像に示されているように、アプリは 2 つのカテゴリ、Non-compliant と Compliant に分類されます。Non-compliant のアプリの扱いは、ポリシーの [Severity] と [Stage] の設定に応じて変わります。
| ポリシーの重大度 | 説明 |
| Error | アプリのデプロイや編集ができなくなります。[Stage] が [Enforce Always] に設定されている場合には、ユーザーがアプリを利用できなくなる場合もあります。 |
| Warning | アプリをデプロイまたは編集しようとすると警告が表示されます。 |
準拠または非準拠のポリシーに関する詳細をダウンロードするには、ポリシー準拠ヘッダーの横にある [その他] > [CSV にエクスポート] を選択します。
ポリシーを編集する
ポリシーを編集する手順は以下のとおりです。
- [Policies] ページにアクセスします。
- スコープを [Organization]、[Team]、[Account] から選択します。
- 編集するポリシーでその他アイコン
> [Edit] を選択します。
[Define an App Policy] ダイアログが表示されます。 - 必要に応じてポリシー構成を編集します。
- ポリシーの遵守状況を確認します。
- [Save] をクリックします。
ポリシーを削除する
ポリシーを削除する手順は以下のとおりです。
- [Policies] ページにアクセスします。
- スコープを [Organization]、[Team]、[Account] から選択します。
- 削除するポリシーでその他アイコン
> [Delete] を選択します。
[Define an App Policy] ダイアログが表示されます。 - [Delete Policy] をクリックして操作を確定します。