GCP: Access Context Manager

Access Context Manager を管理するための Cloud IAM の役割  |  Access Context Manager  |  Google Cloud

CLI

必要な権限

  • Access Context Manager 管理者(roles/accesscontextmanager.policyAdmin)
  • Access Context Manager 編集者(roles/accesscontextmanager.policyEditor)
  • Access Context Manager リーダー(roles/accesscontextmanager.policyReader)

アクセスポリシーを作成する

ORGANIZATION_ID="xxxxxxxx"
POLICY_TITLE="my-policy"

gcloud access-context-manager policies create \
--organization $ORGANIZATION_ID --title $POLICY_TITLE

アクセスポリシーを取得する

ORGANIZATION_ID="xxxxxxxx"

gcloud access-context-manager policies list \
    --organization $ORGANIZATION_ID

アクセスポリシー ID を取得する

gcloud access-context-manager policies list \
    --organization ORGANIZATION_ID

組織 ID を取得する

gcloud organizations list

Ref:
組織を作成、管理する  |  Resource Manager のドキュメント  |  Google Cloud

アクセスレベルを作成する(サービスアカウントによる制限)

NAME="my_access_level"
TITLE="サービスアカウント制約"
POLICY_NAME="415017788368"

gcloud access-context-manager levels create $NAME \
   --title $TITLE \
   --basic-level-spec CONDITIONS.yaml \
   --combine-function=OR \
   --policy=$POLICY_NAME

CONDITIONS.yamlとして作成する。

- members:
    - user:sysadmin@example.com
    - serviceAccount:service@project.iam.gserviceaccount.com

Ref:
アクセスレベルの作成  |  Access Context Manager  |  Google Cloud

ロギング

https://cloud.google.com/logging/docs/audit/?hl=ja#viewing_audit_logs

監査ロギング  |  VPC Service Controls  |  Google Cloud

FAQ

VPC Service Controls 配下の BigQuery に対してbq loadできない

もともと存在するテーブルに対してのbq loadは拒否される。
テーブル作成とインポートを同時にやれば許可される。

# NG
bq mk --table $PROJECT_ID:$DATA_SET.$TABLE_ID schema.json
bq load --source_format=NEWLINE_DELIMITED_JSON $DATA_SET.$TABLE_ID data.json

# OK
bq load --source_format=NEWLINE_DELIMITED_JSON $DATA_SET.$TABLE_ID schema.json