์•ก์„ธ์Šค ์ˆ˜์ค€ ๊ด€๋ฆฌ

์ด ํŽ˜์ด์ง€์—์„œ๋Š” ๊ธฐ์กด ์•ก์„ธ์Šค ์ˆ˜์ค€์„ ๊ด€๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ž‘์—…์„ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์‹œ์ž‘ํ•˜๊ธฐ ์ „์—

  • gcloud ๋ช…๋ น์ค„ ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•œ ๊ธฐ๋ณธ ์•ก์„ธ์Šค ์ •์ฑ…์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

    -๋˜๋Š”-

    ์ •์ฑ… ์ด๋ฆ„์„ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค. ์ •์ฑ… ์ด๋ฆ„์—๋Š” gcloud ๋ช…๋ น์ค„ ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  API๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ๋ช…๋ น์–ด๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ ์•ก์„ธ์Šค ์ •์ฑ…์„ ์„ค์ •ํ•˜๋Š” ๊ฒฝ์šฐ gcloud ๋ช…๋ น์ค„ ๋„๊ตฌ์— ์ •์ฑ…์„ ์ง€์ •ํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

  • ์กฐ์ง ์ˆ˜์ค€์—์„œ ์•ก์„ธ์Šค ์ˆ˜์ค€์„ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” Identity and Access Management(IAM) ์—ญํ• ์ด ์žˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ๊ด€๋ฆฌ์ž์—๊ฒŒ ๋‹ค์Œ ์—ญํ•  ์ค‘ ํ•˜๋‚˜ ๋˜๋Š” ๋™์ผํ•œ ๊ถŒํ•œ์„ ๊ฐ–๋Š” ์ปค์Šคํ…€ ์—ญํ• ์„ ๋ถ€์—ฌํ•˜๋„๋ก ์š”์ฒญํ•ฉ๋‹ˆ๋‹ค.

์•ก์„ธ์Šค ์ˆ˜์ค€ ๋‚˜์—ด

์ฝ˜์†”

๋ชจ๋“  ์•ก์„ธ์Šค ์ˆ˜์ค€์„ ๋‚˜์—ดํ•˜๋ ค๋ฉด Google Cloud ์ฝ˜์†”์—์„œ Access Context Manager ํŽ˜์ด์ง€๋ฅผ ์—ด๊ณ  ๋ฉ”์‹œ์ง€๊ฐ€ ํ‘œ์‹œ๋˜๋ฉด ์กฐ์ง์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค. ์กฐ์ง์˜ ์•ก์„ธ์Šค ์ˆ˜์ค€์ด ๊ฐ ์•ก์„ธ์Šค ์ˆ˜์ค€์˜ ๊ตฌ์„ฑ ์„ธ๋ถ€์ •๋ณด์™€ ํ•จ๊ป˜ ํŽ˜์ด์ง€์˜ ๊ทธ๋ฆฌ๋“œ์— ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

Access Context Manager ํŽ˜์ด์ง€ ์—ด๊ธฐ

gcloud

list ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ชจ๋“  ์•ก์„ธ์Šค ์ˆ˜์ค€์„ ๋‚˜์—ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

gcloud access-context-manager levels list \
  [--policy=POLICY_NAME]

๊ฐ ํ•ญ๋ชฉ์˜ ์˜๋ฏธ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • POLICY_NAME์€ ์กฐ์ง์˜ ์•ก์„ธ์Šค ์ •์ฑ… ์ด๋ฆ„์ž…๋‹ˆ๋‹ค. ์ด ๊ฐ’์€ ๊ธฐ๋ณธ ์•ก์„ธ์Šค ์ •์ฑ…์„ ์„ค์ •ํ•˜์ง€ ์•Š์€ ๊ฒฝ์šฐ์—๋งŒ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

์ถœ๋ ฅ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

NAME             TITLE                  LEVEL_TYPE
Device_Trust     Device_Trust Extended  Basic
Service_Group_A  Service_Group_A        Basic

API

์ •์ฑ…์˜ ๋ชจ๋“  ์•ก์„ธ์Šค ์ˆ˜์ค€์„ ๋‚˜์—ดํ•˜๋ ค๋ฉด accessLevels.list๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค.

GET https://accesscontextmanager.googleapis.com/v1alpha/accessPolicies/POLICY_NAME/accessLevels

๊ฐ ํ•ญ๋ชฉ์˜ ์˜๋ฏธ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • POLICY_NAME์€ ์กฐ์ง์˜ ์•ก์„ธ์Šค ์ •์ฑ… ์ด๋ฆ„์ž…๋‹ˆ๋‹ค.

์š”์ฒญ ๋ณธ๋ฌธ

์š”์ฒญ ๋ณธ๋ฌธ์€ ๋น„์–ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์„ ํƒ์  ๋งค๊ฐœ๋ณ€์ˆ˜

์„ ํƒ์ ์œผ๋กœ ๋‹ค์Œ ์ฟผ๋ฆฌ ๋งค๊ฐœ๋ณ€์ˆ˜ ์ค‘ ํ•˜๋‚˜ ์ด์ƒ์„ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค.

๋งค๊ฐœ๋ณ€์ˆ˜
pageSize

number

๊ธฐ๋ณธ์ ์œผ๋กœ accessLevels.list์—์„œ ๋ฐ˜ํ™˜ํ•˜๋Š” ์•ก์„ธ์Šค ์ˆ˜์ค€ ๋ชฉ๋ก์€ ํŽ˜์ด์ง€๋กœ ๋‚˜๋ˆ ์ง‘๋‹ˆ๋‹ค. ๊ฐ ํŽ˜์ด์ง€๋Š” ์ตœ๋Œ€ 100๊ฐœ์˜ ์•ก์„ธ์Šค ์ˆ˜์ค€์œผ๋กœ ์ œํ•œ๋ฉ๋‹ˆ๋‹ค.

์ด ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ํŽ˜์ด์ง€๋ณ„๋กœ ๋ฐ˜ํ™˜๋˜๋Š” ์•ก์„ธ์Šค ์ˆ˜์ค€์˜ ์ˆ˜๋ฅผ ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

pageToken

string

ํ˜ธ์ถœ๋กœ ๋ฐ˜ํ™˜๋œ ์•ก์„ธ์Šค ์ˆ˜์ค€์˜ ์ˆ˜๊ฐ€ ํŽ˜์ด์ง€ ํฌ๊ธฐ๋ฅผ ์ดˆ๊ณผํ•˜๋ฉด ์‘๋‹ต ๋ณธ๋ฌธ์— ํŽ˜์ด์ง€ ํ† ํฐ์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.

ํ›„์† ํ˜ธ์ถœ์—์„œ ์ด ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๊ฒฐ๊ณผ์˜ ๋‹ค์Œ ํŽ˜์ด์ง€๋ฅผ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

accessLevelFormat

enum(LevelFormat)

์ผ๋ฐ˜์ ์œผ๋กœ ์•ก์„ธ์Šค ์ˆ˜์ค€์€ BasicLevel ๋˜๋Š” CustomLevel ์ค‘ ํ•˜๋‚˜๋กœ ์ •์˜๋œ ๋Œ€๋กœ ๋ฐ˜ํ™˜๋ฉ๋‹ˆ๋‹ค.

์ด ๋งค๊ฐœ๋ณ€์ˆ˜ ๊ฐ’์„ CEL๋กœ ์ง€์ •ํ•˜๋ฉด Cloud Common Expression Language์—์„œ BasicLevels๋ฅผ CustomLevels๋กœ ๋ฐ˜ํ™˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์‘๋‹ต ๋ณธ๋ฌธ

ํ˜ธ์ถœ์ด ์„ฑ๊ณตํ•˜๋ฉด ํ˜ธ์ถœ์˜ ์‘๋‹ต ๋ณธ๋ฌธ์— ์•ก์„ธ์Šค ์ˆ˜์ค€์„ ๋‚˜์—ดํ•˜๋Š” AccessLevels ๊ฐ์ฒด์™€ nextPageToken ๋ฌธ์ž์—ด์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. nextPageToken์€ ๋ฐ˜ํ™˜๋œ ์•ก์„ธ์Šค ์ˆ˜์ค€ ์ˆ˜๊ฐ€ ํŽ˜์ด์ง€ ํฌ๊ธฐ๋ฅผ ์ดˆ๊ณผํ•œ ๊ฒฝ์šฐ์—๋งŒ ๊ฐ’์„ ๊ฐ–์Šต๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด nextPageToken์€ ๋นˆ ๋ฌธ์ž์—ด๋กœ ๋ฐ˜ํ™˜๋ฉ๋‹ˆ๋‹ค.

์•ก์„ธ์Šค ์ˆ˜์ค€ ๋‚˜์—ด(ํ˜•์‹ ์ง€์ •๋จ)

gcloud ๋ช…๋ น์ค„ ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ YAML ๋˜๋Š” JSON ํ˜•์‹์˜ ์•ก์„ธ์Šค ์ˆ˜์ค€ ๋ชฉ๋ก์„ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ˜•์‹์ด ์ง€์ •๋œ ์•ก์„ธ์Šค ์ˆ˜์ค€ ๋ชฉ๋ก์„ ๊ฐ€์ ธ์˜ค๋ ค๋ฉด list ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

gcloud access-context-manager levels list \
  --format=FORMAT \
  [--policy=POLICY_NAME]

๊ฐ ํ•ญ๋ชฉ์˜ ์˜๋ฏธ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • FORMAT๋Š” ๋‹ค์Œ ๊ฐ’ ์ค‘ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค.

    • list(YAML ํ˜•์‹)

    • json(JSON ํ˜•์‹)

  • POLICY_NAME์€ ์กฐ์ง์˜ ์•ก์„ธ์Šค ์ •์ฑ… ์ด๋ฆ„์ž…๋‹ˆ๋‹ค. ์ด ๊ฐ’์€ ๊ธฐ๋ณธ ์•ก์„ธ์Šค ์ •์ฑ…์„ ์„ค์ •ํ•˜์ง€ ์•Š์€ ๊ฒฝ์šฐ์—๋งŒ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

YAML ์ถœ๋ ฅ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

- basic: {'conditions': [{'ipSubnetworks': ['8.8.0/24']}]}
  description: Level for corp access.
  name: accessPolicies/165717541651/accessLevels/corp_level
  title: Corp Level
- basic: {'combiningFunction': 'OR', 'conditions': [{'ipSubnetworks': ['8.8.0/24']}]}
  description: Level for net access.
  name: accessPolicies/165717541651/accessLevels/net_level
  title: Net Level

JSON ์ถœ๋ ฅ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

[
  {
    "basic": {
      "conditions": [
        {
          "ipSubnetworks": [
            "8.8.0/24"
          ]
        }
      ]
    },
    "description": "Level for corp access.",
    "name": "accessPolicies/165717541651/accessLevels/corp_level",
    "title": "Corp Level"
  },
  {
    "basic": {
      "combiningFunction": "OR",
      "conditions": [
        {
          "ipSubnetworks": [
            "8.8.0/24"
          ]
        }
      ]
    },
    "description": "Level for net access.",
    "name": "accessPolicies/165717541651/accessLevels/net_level",
    "title": "Net Level"
  }
]

์•ก์„ธ์Šค ์ˆ˜์ค€ ์„ค๋ช…

์ฝ˜์†”

Google Cloud ์ฝ˜์†”์„ ์‚ฌ์šฉํ•˜์—ฌ ์•ก์„ธ์Šค ์ˆ˜์ค€์„ ๋‚˜์—ดํ•˜๋Š” ๋‹จ๊ณ„๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”. ์•ก์„ธ์Šค ์ˆ˜์ค€์„ ๋‚˜์—ดํ•˜๋ฉด ๋‚˜ํƒ€๋‚˜๋Š” ๊ทธ๋ฆฌ๋“œ์—์„œ ์„ธ๋ถ€์ •๋ณด๊ฐ€ ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค.

gcloud

์•ก์„ธ์Šค ์ˆ˜์ค€์„ ๋‚˜์—ดํ•˜๋ฉด ํ•ด๋‹น ์ด๋ฆ„, ์ œ๋ชฉ, ์ˆ˜์ค€ ์œ ํ˜•๋งŒ ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค. ํŠน์ • ์ˆ˜์ค€์˜ ๊ธฐ๋Šฅ์ด ๋ฌด์—‡์ธ์ง€ ์ž์„ธํžˆ ์•Œ์•„๋ณด๋ ค๋ฉด describe ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

gcloud access-context-manager levels describe LEVEL_NAME \
    [--policy=POLICY_NAME]

๊ฐ ํ•ญ๋ชฉ์˜ ์˜๋ฏธ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • LEVEL_NAME์€ ์„ค๋ช…ํ•˜๋ ค๋Š” ์•ก์„ธ์Šค ์ˆ˜์ค€์˜ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค.

  • POLICY_NAME์€ ์กฐ์ง์˜ ์•ก์„ธ์Šค ์ •์ฑ… ์ด๋ฆ„์ž…๋‹ˆ๋‹ค. ์ด ๊ฐ’์€ ๊ธฐ๋ณธ ์•ก์„ธ์Šค ์ •์ฑ…์„ ์„ค์ •ํ•˜์ง€ ์•Š์€ ๊ฒฝ์šฐ์—๋งŒ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

์ด ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•˜๋ฉด ์ˆ˜์ค€์— ๋Œ€ํ•œ ์ •๋ณด๊ฐ€ YAML ํ˜•์‹์œผ๋กœ ์ธ์‡„๋ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ํ•ด๋‹น ์ˆ˜์ค€์—์„œ ์•ก์„ธ์Šค๋ฅผ ํŠน์ • ์šด์˜์ฒด์ œ ๋ฒ„์ „์œผ๋กœ ์ œํ•œํ•˜๋ฉด ์ถœ๋ ฅ์ด ๋‹ค์Œ๊ณผ ๊ฐ™์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

basic:
  conditions:
  - devicePolicy:
      allowedEncryptionStatuses:
      - ENCRYPTED
      osConstraints:
      - minimumVersion: 10.13.6
        osType: DESKTOP_MAC
      - minimumVersion: 10.0.18219
        osType: DESKTOP_WINDOWS
      - minimumVersion: 68.0.3440
        osType: DESKTOP_CHROME_OS
      requireScreenlock: true
name: accessPolicies/330193482019/accessLevels/Device_Trust
title: Device_Trust Extended

API

์•ก์„ธ์Šค ์ˆ˜์ค€์„ ๋‚˜์—ดํ•˜๋ฉด ์ˆ˜์ค€์˜ ์ด๋ฆ„, ์ œ๋ชฉ, ์œ ํ˜•๋งŒ ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค. ์•ก์„ธ์Šค ์ˆ˜์ค€์— ๋Œ€ํ•ด ์ž์„ธํžˆ ์•Œ์•„๋ณด๋ ค๋ฉด accessLevels.get์„ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค.

GET https://accesscontextmanager.googleapis.com/v1alpha/accessPolicies/POLICY_NAME/accessLevels/LEVEL_NAME

๊ฐ ํ•ญ๋ชฉ์˜ ์˜๋ฏธ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • POLICY_NAME์€ ์กฐ์ง์˜ ์•ก์„ธ์Šค ์ •์ฑ… ์ด๋ฆ„์ž…๋‹ˆ๋‹ค.

  • LEVEL_NAME์€ ์„ค๋ช…ํ•˜๋ ค๋Š” ์•ก์„ธ์Šค ์ˆ˜์ค€์˜ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค.

์š”์ฒญ ๋ณธ๋ฌธ

์š”์ฒญ ๋ณธ๋ฌธ์€ ๋น„์–ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์„ ํƒ์  ๋งค๊ฐœ๋ณ€์ˆ˜

์›ํ•˜๋Š” ๊ฒฝ์šฐ accessLevelFormat ์ฟผ๋ฆฌ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ์•ก์„ธ์Šค ์ˆ˜์ค€์€ BasicLevel ๋˜๋Š” CustomLevel ์ค‘ ํ•˜๋‚˜๋กœ ์ •์˜๋œ ๋Œ€๋กœ ๋ฐ˜ํ™˜๋ฉ๋‹ˆ๋‹ค.

์ด ๋งค๊ฐœ๋ณ€์ˆ˜ ๊ฐ’์„ CEL๋กœ ์ง€์ •ํ•˜๋ฉด Cloud Common Expression Language์—์„œ BasicLevels๋ฅผ CustomLevels๋กœ ๋ฐ˜ํ™˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์‘๋‹ต ๋ณธ๋ฌธ

ํ˜ธ์ถœ์ด ์„ฑ๊ณตํ•˜๋ฉด ํ˜ธ์ถœ์˜ ์‘๋‹ต ๋ณธ๋ฌธ์— ์•ก์„ธ์Šค ์ˆ˜์ค€์˜ ๊ธฐ๋Šฅ, ๋งˆ์ง€๋ง‰์œผ๋กœ ์ˆ˜์ค€์ด ์—…๋ฐ์ดํŠธ๋œ ์‹œ๊ฐ„ ๋“ฑ์— ๋Œ€ํ•œ ์„ธ๋ถ€์ •๋ณด๊ฐ€ ์žˆ๋Š” AccessLevel ๋ฆฌ์†Œ์Šค๊ฐ€ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.

์•ก์„ธ์Šค ์ˆ˜์ค€ ์—…๋ฐ์ดํŠธ

์ด ์„น์…˜์—์„œ๋Š” ๊ฐœ๋ณ„ ์•ก์„ธ์Šค ์ˆ˜์ค€์„ ์—…๋ฐ์ดํŠธํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. ํ•œ ๋ฒˆ์˜ ์ž‘์—…์œผ๋กœ ๋ชจ๋“  ์กฐ์ง์˜ ์•ก์„ธ์Šค ์ˆ˜์ค€์„ ์—…๋ฐ์ดํŠธํ•˜๋ ค๋ฉด ์•ก์„ธ์Šค ์ˆ˜์ค€ ์ผ๊ด„ ๋ณ€๊ฒฝ์„ ์ฐธ์กฐํ•˜์„ธ์š”.

์ฝ˜์†”

์•ก์„ธ์Šค ์ˆ˜์ค€์„ ์—…๋ฐ์ดํŠธํ•˜๋ ค๋ฉด ๋‹ค์Œ ๋‹จ๊ณ„๋ฅผ ๋”ฐ๋ฅด์„ธ์š”.

  1. Google Cloud ์ฝ˜์†”์—์„œ Access Context Manager ํŽ˜์ด์ง€๋ฅผ ์—ฝ๋‹ˆ๋‹ค.

    Access Context Manager ํŽ˜์ด์ง€ ์—ด๊ธฐ

  2. ๋ฉ”์‹œ์ง€๊ฐ€ ํ‘œ์‹œ๋˜๋ฉด ์กฐ์ง์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

  3. ๊ทธ๋ฆฌ๋“œ์—์„œ ์—…๋ฐ์ดํŠธํ•  ์•ก์„ธ์Šค ์ˆ˜์ค€ ์ด๋ฆ„์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

  4. ์•ก์„ธ์Šค ์ˆ˜์ค€ ํŽธ์ง‘ ์ฐฝ์—์„œ ์•ก์„ธ์Šค ์ˆ˜์ค€์„ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค.

    ์ถ”๊ฐ€ ๋˜๋Š” ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ๋Š” ์†์„ฑ์˜ ์ „์ฒด ๋ชฉ๋ก์€ ์•ก์„ธ์Šค ์ˆ˜์ค€ ์†์„ฑ์„ ์ฐธ์กฐํ•˜์„ธ์š”.

  5. ์ €์žฅ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

    ๊ธฐ์กด ์กฐ๊ฑด ์—…๋ฐ์ดํŠธ ๋˜๋Š” ์ˆ˜์ • ์ด์™ธ์—๋„ ์ƒˆ ์กฐ๊ฑด์„ ์ถ”๊ฐ€ํ•˜๊ณ  ๊ธฐ์กด ์กฐ๊ฑด์— ์ƒˆ ์†์„ฑ์„ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

gcloud

update ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์•ก์„ธ์Šค ์ˆ˜์ค€์„ ์—…๋ฐ์ดํŠธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ธฐ๋ณธ ์•ก์„ธ์Šค ์ˆ˜์ค€:

gcloud access-context-manager levels update LEVEL_NAME \
    --basic-level-spec=FILE \
    [--policy=POLICY_NAME]

์ปค์Šคํ…€ ์•ก์„ธ์Šค ์ˆ˜์ค€:

gcloud access-context-manager levels update LEVEL_NAME \
    --custom-level-spec=FILE \
    [--policy=POLICY_NAME]

๊ฐ ํ•ญ๋ชฉ์˜ ์˜๋ฏธ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • LEVEL_NAME์€ ์—…๋ฐ์ดํŠธํ•˜๋ ค๋Š” ์•ก์„ธ์Šค ์ˆ˜์ค€์˜ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค.

  • FILE๋Š” ์•ก์„ธ์Šค ์ˆ˜์ค€ ์กฐ๊ฑด(๊ธฐ๋ณธ ์•ก์„ธ์Šค ์ˆ˜์ค€์˜ ๊ฒฝ์šฐ) ๋˜๋Š” ๋‹จ์ผ ๋ถ€์šธ ๊ฐ’(์ปค์Šคํ…€ ์•ก์„ธ์Šค ์ˆ˜์ค€์˜ ๊ฒฝ์šฐ)์œผ๋กœ ํ‰๊ฐ€๋˜๋Š” CEL ํ‘œํ˜„์‹์„ ์ •์˜ํ•˜๋Š” .yaml ํŒŒ์ผ์˜ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค.

    ๊ธฐ๋ณธ ์•ก์„ธ์Šค ์ˆ˜์ค€ ์กฐ๊ฑด์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์†์„ฑ์˜ ์ „์ฒด ๋ชฉ๋ก์€ ์•ก์„ธ์Šค ์ˆ˜์ค€ ์†์„ฑ์„ ์ฐธ์กฐํ•˜์„ธ์š”.

  • POLICY_NAME์€ ์กฐ์ง์˜ ์•ก์„ธ์Šค ์ •์ฑ… ์ด๋ฆ„์ž…๋‹ˆ๋‹ค. ์ด ๊ฐ’์€ ๊ธฐ๋ณธ ์•ก์„ธ์Šค ์ •์ฑ…์„ ์„ค์ •ํ•˜์ง€ ์•Š์€ ๊ฒฝ์šฐ์—๋งŒ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

  • ๋‹ค์Œ ์˜ต์…˜ ์ค‘ ํ•˜๋‚˜ ์ด์ƒ์„ ํฌํ•จํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    ์˜ต์…˜
    combine-function

    ์ด ์˜ต์…˜์€ ๊ธฐ๋ณธ ์•ก์„ธ์Šค ์ˆ˜์ค€์—๋งŒ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

    ์กฐ๊ฑด ๊ฒฐํ•ฉ ๋ฐฉ๋ฒ•์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

    ์œ ํšจํ•œ ๊ฐ’: AND, OR

    description

    ๊ธด ํ˜•์‹์œผ๋กœ ๋œ ์•ก์„ธ์Šค ์ˆ˜์ค€์˜ ์„ค๋ช…์ž…๋‹ˆ๋‹ค.

    title

    ์งง์€ ํ˜•์‹์œผ๋กœ ๋œ ์•ก์„ธ์Šค ์ˆ˜์ค€ ์ œ๋ชฉ์ž…๋‹ˆ๋‹ค. ์•ก์„ธ์Šค ์ˆ˜์ค€ ์ œ๋ชฉ์ด Google Cloud ์ฝ˜์†”์— ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

    gcloud-wide ํ”Œ๋ž˜๊ทธ๋ฅผ ํฌํ•จํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ช…๋ น์–ด ์˜ˆ

gcloud access-context-manager levels update Device_Trust \
    --basic-level-spec=corpdevspec.yaml \
    --combine-function=OR \
    --description='Access level that conforms to updated corporate spec.' \
    --title='Device_Trust Extended' \
    --policy=1034095178592

API

์•ก์„ธ์Šค ์ˆ˜์ค€์„ ์—…๋ฐ์ดํŠธํ•˜๋ ค๋ฉด accessLevels.patch๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค.

PATCH https://accesscontextmanager.googleapis.com/v1/accessPolicies/POLICY_NAME/accessLevels/LEVEL_NAME?updateMask=FIELDS

๊ฐ ํ•ญ๋ชฉ์˜ ์˜๋ฏธ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • POLICY_NAME์€ ์กฐ์ง์˜ ์•ก์„ธ์Šค ์ •์ฑ… ์ด๋ฆ„์ž…๋‹ˆ๋‹ค.

  • LEVEL_NAME์€ ์„ค๋ช…ํ•˜๋ ค๋Š” ์•ก์„ธ์Šค ์ˆ˜์ค€์˜ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค.

  • FIELDS๋Š” ์—…๋ฐ์ดํŠธํ•  ์ •๊ทœํ™”๋œ ํ•„๋“œ ์ด๋ฆ„์„ ์‰ผํ‘œ๋กœ ๊ตฌ๋ถ„ํ•œ ๋ชฉ๋ก์ž…๋‹ˆ๋‹ค.

์š”์ฒญ ๋ณธ๋ฌธ

์š”์ฒญ ๋ณธ๋ฌธ์—๋Š” ์•ก์„ธ์Šค ์ˆ˜์ค€์— ์ ์šฉํ•  ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ์ง€์ •ํ•˜๋Š” AccessLevel ๋ฆฌ์†Œ์Šค๊ฐ€ ํฌํ•จ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์‘๋‹ต ๋ณธ๋ฌธ

ํ˜ธ์ถœ์ด ์„ฑ๊ณตํ•˜๋ฉด ํ˜ธ์ถœ์˜ ์‘๋‹ต ๋ณธ๋ฌธ์— ํŒจ์น˜ ์ž‘์—…์— ๋Œ€ํ•œ ์„ธ๋ถ€์ •๋ณด๋ฅผ ์ œ๊ณตํ•˜๋Š” Operation ๋ฆฌ์†Œ์Šค๊ฐ€ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.

์•ก์„ธ์Šค ์ˆ˜์ค€ ์‚ญ์ œ

์ฝ˜์†”

์•ก์„ธ์Šค ์ˆ˜์ค€์„ ์‚ญ์ œํ•˜๋ ค๋ฉด ๋‹ค์Œ ๋‹จ๊ณ„๋ฅผ ๋”ฐ๋ฅด์„ธ์š”.

  1. Google Cloud ์ฝ˜์†”์—์„œ Access Context Manager ํŽ˜์ด์ง€๋ฅผ ์—ฝ๋‹ˆ๋‹ค.

    Access Context Manager ํŽ˜์ด์ง€ ์—ด๊ธฐ

  2. ๋ฉ”์‹œ์ง€๊ฐ€ ํ‘œ์‹œ๋˜๋ฉด ์กฐ์ง์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

  3. ๊ทธ๋ฆฌ๋“œ์—์„œ ์‚ญ์ œํ•  ์•ก์„ธ์Šค ์ˆ˜์ค€์˜ ํ–‰์— ์žˆ๋Š” ๋ฒ„ํŠผ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

  4. ์‚ญ์ œ๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

  5. ๋Œ€ํ™”์ƒ์ž๊ฐ€ ๋‚˜ํƒ€๋‚˜๋ฉด ์•ก์„ธ์Šค ์ˆ˜์ค€์„ ์‚ญ์ œํ• ์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

gcloud

์•ก์„ธ์Šค ์ˆ˜์ค€์„ ์‚ญ์ œํ•˜๋ ค๋ฉด ๋‹ค์Œ ๋‹จ๊ณ„๋ฅผ ๋”ฐ๋ฅด์„ธ์š”.

  1. delete ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์•ก์„ธ์Šค ์ˆ˜์ค€์„ ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค.

    gcloud access-context-manager levels delete LEVEL_NAME \
        [--policy=POLICY_NAME]

    ๊ฐ ํ•ญ๋ชฉ์˜ ์˜๋ฏธ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

    • LEVEL_NAME์€ ์‚ญ์ œํ•˜๋ ค๋Š” ์•ก์„ธ์Šค ์ˆ˜์ค€์˜ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค.

    • POLICY_NAME์€ ์กฐ์ง์˜ ์•ก์„ธ์Šค ์ •์ฑ… ์ด๋ฆ„์ž…๋‹ˆ๋‹ค. ์ด ๊ฐ’์€ ๊ธฐ๋ณธ ์•ก์„ธ์Šค ์ •์ฑ…์„ ์„ค์ •ํ•˜์ง€ ์•Š์€ ๊ฒฝ์šฐ์—๋งŒ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

  2. ์•ก์„ธ์Šค ์ˆ˜์ค€์„ ์‚ญ์ œํ• ์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

    ์˜ˆ๋ฅผ ๋“ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

    You are about to delete level Device_Trust
    
    Do you want to continue (Y/n)?
    
    You should see output similar to the following:
    
    
    Waiting for operation [accessPolicies/330193482019/accessLevels/Device_Trust/delete/1531171874311645] to complete...done.
    Deleted level [Device_Trust].
    

API

์•ก์„ธ์Šค ์ˆ˜์ค€์„ ์‚ญ์ œํ•˜๋ ค๋ฉด accessLevels.delete๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค.

DELETE https://accesscontextmanager.googleapis.com/v1alpha/accessPolicies/POLICY_NAME/accessLevels/LEVEL_NAME

๊ฐ ํ•ญ๋ชฉ์˜ ์˜๋ฏธ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • POLICY_NAME์€ ์กฐ์ง์˜ ์•ก์„ธ์Šค ์ •์ฑ… ์ด๋ฆ„์ž…๋‹ˆ๋‹ค.

  • LEVEL_NAME์€ ์„ค๋ช…ํ•˜๋ ค๋Š” ์•ก์„ธ์Šค ์ˆ˜์ค€์˜ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค.

์š”์ฒญ ๋ณธ๋ฌธ

์š”์ฒญ ๋ณธ๋ฌธ์€ ๋น„์–ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์‘๋‹ต ๋ณธ๋ฌธ

ํ˜ธ์ถœ์ด ์„ฑ๊ณตํ•˜๋ฉด ํ˜ธ์ถœ์˜ ์‘๋‹ต ๋ณธ๋ฌธ์— ์‚ญ์ œ ์ž‘์—…์— ๋Œ€ํ•œ ์„ธ๋ถ€์ •๋ณด๋ฅผ ์ œ๊ณตํ•˜๋Š” Operation ๋ฆฌ์†Œ์Šค๊ฐ€ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.