Appearance
Grant
Envelope の grant は、「誰が」「何に対して」「どのロールを」得た、または失ったのかを記録します。 ワークスペースへのユーザー追加、グループへのユーザー追加、コネクションの権限付与などがこれに当たります。
grant は3つのフィールドで1つの事実を表します。
target… 権限が効く対象(例: ワークスペース、コネクション)grantee… 権限を得る、または失う側(例: ユーザー、グループ、招待)role… 変更前後のロール
イベント固有情報のフィールドの使い分けは Envelope を参照してください。
同じロールの変更を change と grant の両方に記録することはありません。 なお、特定の相手に与える権限ではなく、リソース自体の設定として公開範囲を変える操作は、 grant ではなく change に入ります。
対象と権限を得る側
target は Reference です。 権限が効く既存のリソースを指すため、識別子(uid)は必須です。
grantee は Grantee です。ユーザー・グループのほか、招待や、 ワークスペースの全メンバーへの開放などがあります。 招待がまだ作成されていない拒否では uid を省略し、email_addr を残します。
ロールの表記
role の値は、必ず {対象の種類}.{ロール名} の形式です(例: workspace.owner、connection.viewer)。 ロール名だけでは対象が分からないため、どの種類に対するロールなのかを常に含めています。 どの対象にどのロールが使われるかは、各イベントページのサンプルを参照してください。
拒否されたときの値
result.status が deny のイベントでは、実際には反映されていない「試みられた内容」が入ります。 権限を与えようとして拒否された場合も、誰に何を与えようとしたのかが分かるようにするためです。 相手の識別子がまだ無い場合(招待オブジェクトが作成される前など)は grantee.uid を省略し、email_addr を残します。
実効権限は計算されない
監査ログは起きた事実を1件ずつ記録するもので、ある時点の実効権限を表すものではありません。
たとえばグループ経由で権限を持つユーザーの場合、「グループに権限を与えた」イベントと 「ユーザーをグループに追加した」イベントは別々に記録されます。 そのユーザーが最終的にどの権限を持つかを知るには、両方のイベントを組み合わせて判断します。
現在の権限を確認する用途には、監査ログではなく Codatum の権限設定画面を使ってください。
Objects
Grantee
権限を得る、または失う側を、種類(type)と識別子(uid)で指します。 あわせて、ログを読むときの手がかりとして表示名(user / invitation の場合は email_addr、 group / workspace の場合は name)を持ちます。
workspace は、特定の相手ではなくワークスペースの全メンバーへ開放したことを表します。 この場合、以後メンバーが増減しても新たな grant は記録されません。
招待がまだ作成されていない拒否では uid を省略します。 user / group / workspace は既存のリソースなので、uid は必須です。
grant の grantee でのみ使います。 権限の対象(target)や、操作対象以外の関連リソースは Reference です。
| 名前 | 型 | 必須 | 説明 |
|---|---|---|---|
type | GranteeType | 必須 | 権限を得る、または失う側の種類 |
uid | string | 条件付き | 権限を得る側の識別子。 招待がまだ作成されていない拒否など、識別子が存在しないときは省略します。 type が invitation 以外のときに入ります。 |
name | string | 任意 | イベント発生時点の表示名。type が group / workspace のときに使います。sensitivity: pii |
email_addr | string | 任意 | メールアドレス。type が user / invitation のときに使います。sensitivity: pii |
Grant
「誰が(grantee)」「何に対して(target)」「どのロールを(role)」得た、または失ったのかを表します。
target は操作対象そのものではないため、階層を持たない Reference で表します。 grantee は権限を得る側専用の Grantee です。
| 名前 | 型 | 必須 | 説明 |
|---|---|---|---|
target | Reference | 必須 | 権限が効く対象のリソース |
grantee | Grantee | 必須 | 権限を得る、または失う側(ユーザー・グループ・招待) |
role | RoleChange | 必須 | 変更前後のロール |
RoleChange
ロールの変更前後です。どちらのフィールドが入っているかで、付与・剥奪・変更を読み分けます。
| 入っているフィールド | 意味 |
|---|---|
new のみ | ロールを付与した |
old のみ | ロールを剥奪した |
| 両方 | ロールを変更した |
記録の規約は ChangedField の値モードと同じです。
| 名前 | 型 | 必須 | 説明 |
|---|---|---|---|
old | string | 任意 | 変更前のロール。ロールを付与したイベントでは入りません。 |
new | string | 任意 | 変更後のロール。ロールを剥奪したイベントでは入りません。 |
Enums
GranteeType
権限を得る、または失う側の種類です。
| 値 | 説明 |
|---|---|
user | ユーザー |
group | グループ |
invitation | 招待 |
workspace | ワークスペースの全メンバー |