Skip to content

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)。 ロール名だけでは対象が分からないため、どの種類に対するロールなのかを常に含めています。 どの対象にどのロールが使われるかは、各イベントページのサンプルを参照してください。

ワークスペースのカスタムロールは workspace.custom とし、どのカスタムロールかを role_uid(識別子)と role_name(名前)で表します。

拒否されたときの値 ​

result.status が deny のイベントでは、実際には反映されていない「試みられた内容」が入ります。 権限を与えようとして拒否された場合も、誰に何を与えようとしたのかが分かるようにするためです。 相手の識別子がまだ無い場合(招待オブジェクトが作成される前など)は grantee.uid を省略し、email_addr を残します。

実効権限は計算されない ​

監査ログは起きた事実を1件ずつ記録するもので、ある時点の実効権限を表すものではありません。

たとえばグループ経由で権限を持つユーザーの場合、「グループに権限を与えた」イベントと 「ユーザーをグループに追加した」イベントは別々に記録されます。 そのユーザーが最終的にどの権限を持つかを知るには、両方のイベントを組み合わせて判断します。

現在の権限を確認する用途には、監査ログではなく Codatum の権限設定画面を使ってください。

Objects ​

Grantee ​

権限を得る、または失う側を、種類(type)と識別子(uid)で指します。 あわせて、ログを読むときの手がかりとして表示名(user / invitation の場合は email_addr、 service_account / group / workspace の場合は name)を持ちます。

workspace は、特定の相手ではなくワークスペースの全メンバーへ開放したことを表します。 この場合、以後メンバーが増減しても新たな grant は記録されません。

招待がまだ作成されていない拒否では uid を省略します。 user / service_account / group / workspace は既存のリソースなので、uid は必須です。

grant の grantee でのみ使います。 権限の対象(target)や、操作対象以外の関連リソースは Reference です。

名前型必須説明
typeGranteeType必須権限を得る、または失う側の種類
uidstring条件付き権限を得る側の識別子。
招待がまだ作成されていない拒否など、識別子が存在しないときは省略します。
type が invitation 以外のときに入ります。
namestring任意イベント発生時点の表示名。type が service_account / group / workspace のときに使います。
sensitivity: pii
email_addrstring任意メールアドレス。type が user / invitation のときに使います。
sensitivity: pii

Grant ​

「誰が(grantee)」「何に対して(target)」「どのロールを(role)」得た、または失ったのかを表します。

target は操作対象そのものではないため、階層を持たない Reference で表します。 grantee は権限を得る側専用の Grantee です。

名前型必須説明
targetReference必須権限が効く対象のリソース
granteeGrantee必須権限を得る、または失う側(ユーザー・サービスアカウント・グループ・招待)
roleRoleChange必須変更前後のロール
role_uidstring任意カスタムロールの識別子。role に workspace.custom が入るときに使います。
ロールを付与・変更したイベントでは変更後のロールを、剥奪したイベントでは剥奪したロールを指します。
role_namestring任意イベント発生時点のカスタムロールの名前。role_uid と同じロールを指します。

RoleChange ​

ロールの変更前後です。どちらのフィールドが入っているかで、付与・剥奪・変更を読み分けます。

入っているフィールド意味
new のみロールを付与した
old のみロールを剥奪した
両方ロールを変更した

記録の規約は ChangedField の値モードと同じです。

名前型必須説明
oldstring任意変更前のロール。ロールを付与したイベントでは入りません。
newstring任意変更後のロール。ロールを剥奪したイベントでは入りません。

Enums ​

GranteeType ​

権限を得る、または失う側の種類です。

値説明
userユーザー
service_accountサービスアカウント
groupグループ
invitation招待
workspaceワークスペースの全メンバー

Codatum Audit Events 監査ログイベントカタログ