์ปค์คํ ์ก์ธ์ค ์์ค์ ๋ง๋ ํ์๋ ๊ธฐ๋ณธ ์ก์ธ์ค ์์ค๊ณผ ๋์ผํ ๋ฐฉ์์ผ๋ก ๊ด๋ฆฌํ ์ ์์ต๋๋ค.
์ปค์คํ ์ก์ธ์ค ์์ค์ Common Expression Language(CEL) ํํ์์ ๋ง๋๋ ๋ฐฉ๋ฒ์ ๋ํ ์์ธํ ๋ด์ฉ์ ์ปค์คํ ์ก์ธ์ค ์์ค ์ฌ์์ ์ฐธ์กฐํ์ธ์.
์ฝ์
์ปค์คํ ์ก์ธ์ค ์์ค์ ๋ง๋ค๋ ค๋ฉด ๋ค์ ๋จ๊ณ๋ฅผ ๋ฐ๋ฅด์ธ์.
Google Cloud ์ฝ์์์ Access Context Manager ํ์ด์ง๋ฅผ ์ฝ๋๋ค.
๋ฉ์์ง๊ฐ ํ์๋๋ฉด ์กฐ์ง์ ์ ํํฉ๋๋ค.
Access Context Manager ํ์ด์ง์ ๋งจ ์์ ์๋ ์ ํญ๋ชฉ์ ๋๋ฆ ๋๋ค.
์ ์ก์ธ์ค ์์ค ์ฐฝ์์ ๋ค์์ ์ํํฉ๋๋ค.
์ก์ธ์ค ์์ค ์ ๋ชฉ ์์์ ์ก์ธ์ค ์์ค์ ์ ๋ชฉ์ ์ ๋ ฅํฉ๋๋ค. ์ ๋ชฉ์ ์ต๋ 50์์ฌ์ผ ํ๊ณ , ๋ฌธ์๋ก ์์ํด์ผ ํ๋ฉฐ ์ซ์, ๋ฌธ์, ๋ฐ์ค, ๊ณต๋ฐฑ๋ง ํฌํจํ ์ ์์ต๋๋ค.
์กฐ๊ฑด ๋ง๋ค๊ธฐ์ ๋ฐ๋ผ ๊ณ ๊ธ ๋ชจ๋๋ฅผ ์ ํํฉ๋๋ค.
์กฐ๊ฑด ์น์ ์์ ์ปค์คํ ์ก์ธ์ค ์์ค์ ํํ์์ ์ ๋ ฅํฉ๋๋ค. ์กฐ๊ฑด์ ๋จ์ผ ๋ถ์ธ ๊ฐ์ผ๋ก ํ๊ฐํด์ผ ํฉ๋๋ค.
Common Expression Language(CEL) ์ง์ ๋ฐ ์ปค์คํ ์ก์ธ์ค ์์ค์ ๋ํ ์์์ ์์ธํ ๋ด์ฉ์ ์ปค์คํ ์ก์ธ์ค ์์ค ์ฌ์์ ์ฐธ์กฐํ์ธ์.
์ ์ฅ์ ํด๋ฆญํฉ๋๋ค.
gcloud
์์ํ๊ธฐ ์ ์
- ์์ง ์์ผ๋ฉด ์กฐ์ง์ ์ก์ธ์ค ์ ์ฑ ์ ๋ง๋ญ๋๋ค.
gcloud
๋ช
๋ น์ค ๋๊ตฌ๋ฅผ ์ฌ์ฉํ์ฌ ์ปค์คํ
์ก์ธ์ค ์์ค์ ๋ง๋ค๋ ค๋ฉด gcloud access-context-manager levels create
๋ช
๋ น์ด๋ฅผ ์ฌ์ฉํฉ๋๋ค.
gcloud access-context-manager levels create LEVEL_NAME \ --title=TITLE \ --custom-level-spec=FILE \ --description=DESCRIPTION \ --policy=POLICY_NAME
๊ฐ ํญ๋ชฉ์ ์๋ฏธ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
LEVEL_NAME์ ์ก์ธ์ค ์์ค์ ๊ณ ์ ํ ์ด๋ฆ์ ๋๋ค. ์ด ์ด๋ฆ์ ๋ฌธ์๋ก ์์ํด์ผ ํ๋ฉฐ ๋ฌธ์, ์ซ์, ๋ฐ์ค๋ง ํฌํจํ ์ ์์ต๋๋ค. ์ด๋ฆ์ ์ต๋ 50์์ ๋๋ค.
TITLE์ ์งง๊ณ ์ฌ๋์ด ์ฝ์ ์ ์๋ ์ก์ธ์ค ์์ค์ ์ ๋ชฉ์ ๋๋ค.
FILE๋ ๋จ์ผ ํค-๊ฐ ์
expression: "CEL_EXPRESSION"
์ผ๋ก ํ์์ด ์ง์ ๋ CEL ํํ์์ ํฌํจํ๋ .yaml ํ์ผ์ ๋๋ค.Common Expression Language(CEL) ์ง์ ๋ฐ ์ปค์คํ ์ก์ธ์ค ์์ค์ ๋ํ ์์์ ์์ธํ ๋ด์ฉ์ ์ปค์คํ ์ก์ธ์ค ์์ค ์ฌ์์ ์ฐธ์กฐํ์ธ์.
DESCRIPTION(์ ํ์ฌํญ)์ ์ฌ๋์ด ์ฝ์ ์ ์๋ ์ก์ธ์ค ์์ค์ ์ค๋ช ์ ๋๋ค.
POLICY_NAME์ ์กฐ์ง์ ์ก์ธ์ค ์ ์ฑ ์ ์ซ์ ์ด๋ฆ์ ๋๋ค.
ํ์ํ ๊ฒฝ์ฐ gcloud
์ ์ญ ํ๋๊ทธ๋ฅผ ํฌํจํ ์ ์์ต๋๋ค.
custom-level-spec
YAML ํ์ผ
gcloud
๋ช
๋ น์ค ๋๊ตฌ๋ฅผ ์ฌ์ฉํ์ฌ ์ปค์คํ
์ก์ธ์ค ์์ค์ ๋ง๋๋ ๊ฒฝ์ฐ custom-level-spec
์ต์
์ .yaml ํ์ผ์ ์ ๊ณตํด์ผ ํฉ๋๋ค. .yaml ํ์ผ์ ๋จ์ผ ๋ถ์ธ ๊ฐ์ผ๋ก ํ๊ฐ๋๋ CEL ํํ์์ ์ ์ํฉ๋๋ค. .yaml ํ์ผ์ expression: "CEL_EXPRESSION"
ํ์์ ๋จ์ผ ํค-๊ฐ ์์ ํฌํจํด์ผ ํฉ๋๋ค. expression
์ ๊ฐ์ ๋ฌธ์์ด์ด์ด์ผ ํฉ๋๋ค.
YAML ํ์ผ ์์
expression: "device.encryption_status == DeviceEncryptionStatus.ENCRYPTED && (origin.region_code in ['US'] || device.is_admin_approved_device)"
๋ช ๋ น์ด ์
gcloud access-context-manager levels create Custom_Trust \
--custom-level-spec=customspec.yaml \
--description="Custom access level for corp." \
--title="Custom Trust Level" \
--policy=1521580097614100
REST
์์ํ๊ธฐ ์ ์
- ์์ง ์์ผ๋ฉด ์กฐ์ง์ ์ก์ธ์ค ์ ์ฑ ์ ๋ง๋ญ๋๋ค.
์ปค์คํ
์ก์ธ์ค ์์ค์ ๋ง๋ค๋ ค๋ฉด accessPolicies.accessLevels.create
๋ฉ์๋๋ฅผ ์ฌ์ฉํฉ๋๋ค.
์์ฒญ ๋ณธ๋ฌธ
ํธ์ถ์ ์์ฒญ ๋ณธ๋ฌธ์ AccessLevel
๊ฐ์ฒด์ ์ธ์คํด์ค๋ฅผ ํฌํจํฉ๋๋ค.
{
"name": string,
"title": string,
"description": string,
"custom": {
"expr": {
"expression": string,
"title": string,
"description": string
}
}
}
custom
ํ๋์ ์ปค์คํ
์ก์ธ์ค ์์ค์ CEL ํํ์์ ํฌํจํ๋ ๊ฐ์ฒด๋ฅผ ๋ง๋ญ๋๋ค. ์ ์ฒด ํํ์์ ๋ถ์ธ ๊ฐ์ผ๋ก ํ๊ฐํด์ผ ํฉ๋๋ค. title
๋ฐ description
ํ๋๋ ์ ํ์ฌํญ์
๋๋ค.
์
{
"name": "example_custom_level",
"title": "Example custom level",
"description": "An example custom access level.",
"custom": {
"expr": {
"expression": "device.is_corp_owned == true || (device.os_type != OsType.OS_UNSPECIFIED && device.is_admin_approved_device == true)",
"title": "Check for known devices",
"description": "Permits requests from corp-owned devices and admin-approved devices with a known OS."
}
}
}
RPC
์์ํ๊ธฐ ์ ์
- ์์ง ์์ผ๋ฉด ์กฐ์ง์ ์ก์ธ์ค ์ ์ฑ ์ ๋ง๋ญ๋๋ค.
์ปค์คํ
์ก์ธ์ค ์์ค์ ๋ง๋ค๋ ค๋ฉด CreateAccessLevel
๋ฅผ ํธ์ถํฉ๋๋ค.
access_level
ํ๋์ AccessLevel
์ ์ธ์คํด์ค๋ฅผ ํฌํจํฉ๋๋ค.
ํ๋ | |||||
---|---|---|---|---|---|
name
|
|
||||
title
|
|
||||
description
|
|
||||
custom
|
|