์ด ํ์ด์ง์์๋ ํ๋ก์ ํธ, ํด๋, ์กฐ์ง์ ๋ํด ์ก์ธ์ค๋ฅผ ๋ถ์ฌ, ๋ณ๊ฒฝ, ์ทจ์ํ๋ ๋ฐฉ๋ฒ์ ์ค๋ช ํฉ๋๋ค. ๋ค๋ฅธ ๋ฆฌ์์ค์ ๋ํ ์ก์ธ์ค ๊ด๋ฆฌ ๋ฐฉ๋ฒ์ ์์๋ณด๋ ค๋ฉด ๋ค์ ๊ฐ์ด๋๋ฅผ ์ฐธ์กฐํ์ธ์.
Identity and Access Management(IAM)์์ ์ก์ธ์ค๋ IAM ์ ์ฑ ์ผ๋ก๋ ์๋ ค์ง ํ์ฉ ์ ์ฑ ์ ํตํด ๋ถ์ฌ๋ฉ๋๋ค. ๊ฐ ํ์ฉ ์ ์ฑ ์Google Cloud ๋ฆฌ์์ค์ ์ฐ๊ฒฐ๋ฉ๋๋ค. ํ์ฉ ์ ์ฑ ๋ง๋ค ์ฌ์ฉ์ ๋๋ ์๋น์ค ๊ณ์ ๊ณผ ๊ฐ์ ์ฃผ ๊ตฌ์ฑ์ ํ๋ ์ด์์ IAM ์ญํ ๊ณผ ์ฐ๊ฒฐํ๋ ์ญํ ๋ฐ์ธ๋ฉ ์ปฌ๋ ์ ์ด ํฌํจ๋์ด ์์ต๋๋ค. ์ด๋ฌํ ์ญํ ๋ฐ์ธ๋ฉ์ ํ์ฉ ์ ์ฑ ์ด ์ฐ๊ฒฐ๋ ๋ฆฌ์์ค์ ๋ฆฌ์์ค์ ๋ชจ๋ ํ์ ์์ ๋ชจ๋์์ ์ง์ ๋ ์ญํ ์ ์ฃผ ๊ตฌ์ฑ์์ ๋ถ์ฌํฉ๋๋ค. ํ์ฉ ์ ์ฑ ์ ๋ํ ์์ธํ ๋ด์ฉ์ ํ์ฉ ์ ์ฑ ์ดํด๋ฅผ ์ฐธ์กฐํ์ธ์.
Google Cloud ์ฝ์, Google Cloud CLI, REST API ๋๋ Resource Manager ํด๋ผ์ด์ธํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ์ฌ ํ๋ก์ ํธ, ํด๋, ์กฐ์ง์ ๋ํ ์ก์ธ์ค๋ฅผ ๊ด๋ฆฌํ ์ ์์ต๋๋ค.
์์ํ๊ธฐ ์ ์
Enable the Resource Manager API.
์ธ์ฆ์ ์ค์ ํฉ๋๋ค.
Select the tab for how you plan to use the samples on this page:
Console
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
gcloud
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
C#
๋ก์ปฌ ๊ฐ๋ฐ ํ๊ฒฝ์์ ์ด ํ์ด์ง์ .NET ์ํ์ ์ฌ์ฉํ๋ ค๋ฉด gcloud CLI๋ฅผ ์ค์นํ๊ณ ์ด๊ธฐํํ ํ ์ฌ์ฉ์ ์ธ์ฆ ์ ๋ณด๋ก ์ ํ๋ฆฌ์ผ์ด์ ๊ธฐ๋ณธ ์ฌ์ฉ์ ์ธ์ฆ ์ ๋ณด๋ฅผ ์ค์ ํฉ๋๋ค.
-
Install the Google Cloud CLI.
-
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity.
์์ธํ ๋ด์ฉ์ Google Cloud ์ธ์ฆ ๋ฌธ์์ ๋ก์ปฌ ๊ฐ๋ฐ ํ๊ฒฝ์ ADC ์ค์ ์ ์ฐธ์กฐํ์ธ์.
Java
๋ก์ปฌ ๊ฐ๋ฐ ํ๊ฒฝ์์ ์ด ํ์ด์ง์ Java ์ํ์ ์ฌ์ฉํ๋ ค๋ฉด gcloud CLI๋ฅผ ์ค์นํ๊ณ ์ด๊ธฐํํ ํ ์ฌ์ฉ์ ์ธ์ฆ ์ ๋ณด๋ก ์ ํ๋ฆฌ์ผ์ด์ ๊ธฐ๋ณธ ์ฌ์ฉ์ ์ธ์ฆ ์ ๋ณด๋ฅผ ์ค์ ํฉ๋๋ค.
-
Install the Google Cloud CLI.
-
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity.
์์ธํ ๋ด์ฉ์ Google Cloud ์ธ์ฆ ๋ฌธ์์ ๋ก์ปฌ ๊ฐ๋ฐ ํ๊ฒฝ์ ADC ์ค์ ์ ์ฐธ์กฐํ์ธ์.
Python
๋ก์ปฌ ๊ฐ๋ฐ ํ๊ฒฝ์์ ์ด ํ์ด์ง์ Python ์ํ์ ์ฌ์ฉํ๋ ค๋ฉด gcloud CLI๋ฅผ ์ค์นํ๊ณ ์ด๊ธฐํํ ํ ์ฌ์ฉ์ ์ธ์ฆ ์ ๋ณด๋ก ์ ํ๋ฆฌ์ผ์ด์ ๊ธฐ๋ณธ ์ฌ์ฉ์ ์ธ์ฆ ์ ๋ณด๋ฅผ ์ค์ ํฉ๋๋ค.
-
Install the Google Cloud CLI.
-
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity.
์์ธํ ๋ด์ฉ์ Google Cloud ์ธ์ฆ ๋ฌธ์์ ๋ก์ปฌ ๊ฐ๋ฐ ํ๊ฒฝ์ ADC ์ค์ ์ ์ฐธ์กฐํ์ธ์.
REST
๋ก์ปฌ ๊ฐ๋ฐ ํ๊ฒฝ์์ ์ด ํ์ด์ง์ REST API ์ํ์ ์ฌ์ฉํ๋ ค๋ฉด gcloud CLI์ ์ ๊ณตํ ์ฌ์ฉ์ ์ธ์ฆ ์ ๋ณด๋ฅผ ์ฌ์ฉํฉ๋๋ค.
Install the Google Cloud CLI.
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
์์ธํ ๋ด์ฉ์ Google Cloud ์ธ์ฆ ๋ฌธ์์ REST ์ฌ์ฉ์ ์ํ ์ธ์ฆ์ ์ฐธ์กฐํ์ธ์.
-
ํ์ํ ์ญํ
ํ๋ก์ ํธ, ํด๋ ๋๋ ์กฐ์ง์ ๋ง๋ค๋ฉด ํด๋น ๋ฆฌ์์ค์ ๋ํ ์ก์ธ์ค ๊ถํ์ ๊ด๋ฆฌํ ์ ์๋ ์ญํ ์ด ์๋์ผ๋ก ๋ถ์ฌ๋ฉ๋๋ค. ์์ธํ ๋ด์ฉ์ ๊ธฐ๋ณธ ์ ์ฑ ์ ์ฐธ์กฐํ์ธ์.
ํ๋ก์ ํธ, ํด๋ ๋๋ ์กฐ์ง์ ๋ง๋ค์ง ์์์ผ๋ฉด ํด๋น ๋ฆฌ์์ค์ ๋ํ ์ก์ธ์ค๋ฅผ ๊ด๋ฆฌํ๋ ๋ฐ ํ์ํ ์ญํ ์ด ์๋์ง ํ์ธํฉ๋๋ค.
ํ๋ก์ ํธ, ํด๋ ๋๋ ์กฐ์ง์ ๋ํ ์ก์ธ์ค ๊ถํ์ ๊ด๋ฆฌํ๋ ๋ฐ ํ์ํ ๊ถํ์ ์ป์ผ๋ ค๋ฉด ๊ด๋ฆฌ์์๊ฒ (ํ๋ก์ ํธ, ํด๋ ๋๋ ์กฐ์ง)์ ๋ํ ์ก์ธ์ค ๊ถํ์ ๊ด๋ฆฌํ ๋ฆฌ์์ค์ ๋ํ ๋ค์ IAM ์ญํ ์ ๋ถ์ฌํด ๋ฌ๋ผ๊ณ ์์ฒญํ์ธ์.
-
ํ๋ก์ ํธ์ ๋ํ ์ก์ธ์ค ๊ถํ์ ๊ด๋ฆฌํ๋ ค๋ ๊ฒฝ์ฐ: ํ๋ก์ ํธ IAM ๊ด๋ฆฌ์(
roles/resourcemanager.projectIamAdmin
) -
ํด๋์ ๋ํ ์ก์ธ์ค ๊ถํ์ ๊ด๋ฆฌํ๋ ค๋ ๊ฒฝ์ฐ: ํด๋ ๊ด๋ฆฌ์(
roles/resourcemanager.folderAdmin
) -
ํ๋ก์ ํธ, ํด๋, ์กฐ์ง์ ๋ํ ์ก์ธ์ค ๊ถํ์ ๊ด๋ฆฌํ๋ ค๋ ๊ฒฝ์ฐ: ์กฐ์ง ๊ด๋ฆฌ์(
roles/resourcemanager.organizationAdmin
) -
๊ฑฐ์ ๋ชจ๋ Google Cloud ๋ฆฌ์์ค์ ๋ํ ์ก์ธ์ค ๊ถํ์ ๊ด๋ฆฌํ๋ ค๋ ๊ฒฝ์ฐ: ๋ณด์ ๊ด๋ฆฌ์(
roles/iam.securityAdmin
)
์ด๋ฌํ ์ฌ์ ์ ์๋ ์ญํ ์๋ ํ๋ก์ ํธ, ํด๋ ๋๋ ์กฐ์ง์ ๋ํ ์ก์ธ์ค ๊ถํ์ ๊ด๋ฆฌํ๋ ๋ฐ ํ์ํ ๊ถํ์ด ํฌํจ๋์ด ์์ต๋๋ค. ํ์ํ ์ ํํ ๊ถํ์ ๋ณด๋ ค๋ฉด ํ์ ๊ถํ ์น์ ์ ํผ์น์ธ์.
ํ์ ๊ถํ
ํ๋ก์ ํธ, ํด๋ ๋๋ ์กฐ์ง์ ๋ํ ์ก์ธ์ค ๊ถํ์ ๊ด๋ฆฌํ๋ ค๋ฉด ๋ค์ ๊ถํ์ด ํ์ํฉ๋๋ค.
-
ํ๋ก์ ํธ์ ๋ํ ์ก์ธ์ค ๊ถํ ๊ด๋ฆฌ:
-
resourcemanager.projects.getIamPolicy
-
resourcemanager.projects.setIamPolicy
-
-
ํด๋์ ๋ํ ์ก์ธ์ค ๊ด๋ฆฌ:
-
resourcemanager.folders.getIamPolicy
-
resourcemanager.folders.setIamPolicy
-
-
์กฐ์ง์ ๋ํ ์ก์ธ์ค ๊ถํ ๊ด๋ฆฌ:
-
resourcemanager.organizations.getIamPolicy
-
resourcemanager.organizations.setIamPolicy
-
์ปค์คํ ์ญํ ์ด๋ ๋ค๋ฅธ ์ฌ์ ์ ์๋ ์ญํ ์ ์ฌ์ฉํ์ฌ ์ด ๊ถํ์ ๋ถ์ฌ๋ฐ์ ์๋ ์์ต๋๋ค.
ํ์ฌ ์ก์ธ์ค ๋ณด๊ธฐ
Google Cloud ์ฝ์, gcloud CLI, REST API ๋๋ Resource Manager ํด๋ผ์ด์ธํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ์ฌ ํ๋ก์ ํธ, ํด๋ ๋๋ ์กฐ์ง์ ๋ํ ์ก์ธ์ค ๊ถํ์ด ์๋ ์ฌ์ฉ์๋ฅผ ๋ณผ ์ ์์ต๋๋ค.
์ฝ์
Google Cloud ์ฝ์์์ IAM ํ์ด์ง๋ก ์ด๋ํฉ๋๋ค.
ํ๋ก์ ํธ, ํด๋, ์กฐ์ง์ ์ ํํฉ๋๋ค.
Google Cloud ์ฝ์์ ํ๋ก์ ํธ, ํด๋ ๋๋ ์กฐ์ง์ ๋ํด ์ญํ ์ด ๋ถ์ฌ๋ ๋ชจ๋ ์ฃผ ๊ตฌ์ฑ์์ด ๋์ด๋ฉ๋๋ค. ์ด ๋ชฉ๋ก์๋ ์์ ๋ฆฌ์์ค๋ก๋ถํฐ ๋ฆฌ์์ค์ ๋ํ ์ญํ ์ ์์ํ ์ฃผ ๊ตฌ์ฑ์์ด ํฌํจ๋ฉ๋๋ค. ์ ์ฑ ์์์ ๋ํ ์์ธํ ๋ด์ฉ์ ์ ์ฑ ์์ ๋ฐ ๋ฆฌ์์ค ๊ณ์ธต์ ์ฐธ์กฐํ์ธ์.
์ ํ์ฌํญ: ์๋น์ค ์์ด์ ํธ์ ๋ํ ์ญํ ๋ถ์ฌ๋ฅผ ๋ณด๋ ค๋ฉด Google์ ๊ณต ์ญํ ๋ถ์ฌ ํฌํจ ์ฒดํฌ๋ฐ์ค๋ฅผ ์ ํํฉ๋๋ค.
gcloud
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
-
ํ๋ก์ ํธ, ํด๋, ์กฐ์ง์ ์ก์ธ์คํ ์ ์๋ ์ฌ์ฉ์๋ฅผ ๋ณด๋ ค๋ฉด ๋ฆฌ์์ค์ ๋ํด ํ์ฉ ์ ์ฑ ์ ๊ฐ์ ธ์ต๋๋ค. ํ์ฉ ์ ์ฑ ์ ํด์ํ๋ ๋ฐฉ๋ฒ์ ์์๋ณด๋ ค๋ฉด ํ์ฉ ์ ์ฑ ์ดํด๋ฅผ ์ฐธ์กฐํ์ธ์.
๋ฆฌ์์ค์ ํ์ฉ ์ ์ฑ ์ ๊ฐ์ ธ์ค๋ ค๋ฉด ๋ฆฌ์์ค์ ๋ํด
get-iam-policy
๋ช ๋ น์ด๋ฅผ ์คํํฉ๋๋ค.gcloud RESOURCE_TYPE get-iam-policy RESOURCE_ID --format=FORMAT > PATH
๋ค์ ๊ฐ์ ์ ๊ณตํฉ๋๋ค.
-
RESOURCE_TYPE
: ์ก์ธ์ค๋ฅผ ๋ณด๋ ค๋ ๋ฆฌ์์ค์ ์ ํ.projects
,resource-manager folders
,organizations
๊ฐ ์ค ํ๋๋ฅผ ์ฌ์ฉํฉ๋๋ค. -
RESOURCE_ID
: Google Cloud ํ๋ก์ ํธ, ํด๋, ์กฐ์ง ID์ ๋๋ค. ํ๋ก์ ํธ ID๋my-project
์ ๊ฐ์ ์์ซ์์ ๋๋ค. ํด๋ ๋ฐ ์กฐ์ง ID๋123456789012
์ ๊ฐ์ ์ซ์์ ๋๋ค. -
FORMAT
: ์ ์ฑ ์ ์ฌ์ฉํ๋ ค๋ ํ์.json
๋๋yaml
์ ์ฌ์ฉํฉ๋๋ค. -
PATH
: ์ ์ฑ ์ ๋ํ ์ ์ถ๋ ฅ ํ์ผ์ ๊ฒฝ๋ก
์๋ฅผ ๋ค์ด ๋ค์ ๋ช ๋ น์ด๋
my-project
ํ๋ก์ ํธ์ ์ ์ฑ ์ ๊ฐ์ ธ์ค๊ณ ์ด๋ฅผ JSON ํ์์ผ๋ก ํ ๋๋ ํฐ๋ฆฌ์ ์ ์ฅํฉ๋๋ค.gcloud projects get-iam-policy my-project --format=json > ~/policy.json
-
C#
Resource Manager์ ์ธ์ฆํ๋ ค๋ฉด ์ ํ๋ฆฌ์ผ์ด์ ๊ธฐ๋ณธ ์ฌ์ฉ์ ์ธ์ฆ ์ ๋ณด๋ฅผ ์ค์ ํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ ์์ํ๊ธฐ ์ ์๋ฅผ ์ฐธ์กฐํ์ธ์.
Resource Manager์ ๋ํด ํด๋ผ์ด์ธํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ค์นํ๊ณ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ Resource Manager ํด๋ผ์ด์ธํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฐธ์กฐํ์ธ์.
ํ๋ก์ ํธ, ํด๋, ์กฐ์ง์ ์ก์ธ์คํ ์ ์๋ ์ฌ์ฉ์๋ฅผ ๋ณด๋ ค๋ฉด ๋ฆฌ์์ค์ ๋ํด ํ์ฉ ์ ์ฑ ์ ๊ฐ์ ธ์ต๋๋ค. ํ์ฉ ์ ์ฑ ์ ํด์ํ๋ ๋ฐฉ๋ฒ์ ์์๋ณด๋ ค๋ฉด ํ์ฉ ์ ์ฑ ์ดํด๋ฅผ ์ฐธ์กฐํ์ธ์.
๋ค์ ์์์์๋ ํ๋ก์ ํธ์ ๋ํ ํ์ฉ ์ ์ฑ ์ ๊ฐ์ ธ์ค๋ ๋ฐฉ๋ฒ์ ๋ณด์ฌ์ค๋๋ค. ํด๋ ๋๋ ์กฐ์ง์ ๋ํ ํ์ฉ ์ ์ฑ ์ ๊ฐ์ ธ์ค๋ ๋ฐฉ๋ฒ์ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ Resource Manager ํด๋ผ์ด์ธํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ฌธ์๋ฅผ ์ฐธ์กฐํ์ธ์.
Java
Resource Manager์ ์ธ์ฆํ๋ ค๋ฉด ์ ํ๋ฆฌ์ผ์ด์ ๊ธฐ๋ณธ ์ฌ์ฉ์ ์ธ์ฆ ์ ๋ณด๋ฅผ ์ค์ ํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ ์์ํ๊ธฐ ์ ์๋ฅผ ์ฐธ์กฐํ์ธ์.
Resource Manager์ ๋ํด ํด๋ผ์ด์ธํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ค์นํ๊ณ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ Resource Manager ํด๋ผ์ด์ธํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฐธ์กฐํ์ธ์.
ํ๋ก์ ํธ, ํด๋, ์กฐ์ง์ ์ก์ธ์คํ ์ ์๋ ์ฌ์ฉ์๋ฅผ ๋ณด๋ ค๋ฉด ๋ฆฌ์์ค์ ๋ํด ํ์ฉ ์ ์ฑ ์ ๊ฐ์ ธ์ต๋๋ค. ํ์ฉ ์ ์ฑ ์ ํด์ํ๋ ๋ฐฉ๋ฒ์ ์์๋ณด๋ ค๋ฉด ํ์ฉ ์ ์ฑ ์ดํด๋ฅผ ์ฐธ์กฐํ์ธ์.
๋ค์ ์์์์๋ ํ๋ก์ ํธ์ ๋ํ ํ์ฉ ์ ์ฑ ์ ๊ฐ์ ธ์ค๋ ๋ฐฉ๋ฒ์ ๋ณด์ฌ์ค๋๋ค. ํด๋ ๋๋ ์กฐ์ง์ ๋ํ ํ์ฉ ์ ์ฑ ์ ๊ฐ์ ธ์ค๋ ๋ฐฉ๋ฒ์ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ Resource Manager ํด๋ผ์ด์ธํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ฌธ์๋ฅผ ์ฐธ์กฐํ์ธ์.
Python
Resource Manager์ ์ธ์ฆํ๋ ค๋ฉด ์ ํ๋ฆฌ์ผ์ด์ ๊ธฐ๋ณธ ์ฌ์ฉ์ ์ธ์ฆ ์ ๋ณด๋ฅผ ์ค์ ํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ ์์ํ๊ธฐ ์ ์๋ฅผ ์ฐธ์กฐํ์ธ์.
Resource Manager์ ๋ํด ํด๋ผ์ด์ธํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ค์นํ๊ณ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ Resource Manager ํด๋ผ์ด์ธํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฐธ์กฐํ์ธ์.
ํ๋ก์ ํธ, ํด๋, ์กฐ์ง์ ์ก์ธ์คํ ์ ์๋ ์ฌ์ฉ์๋ฅผ ๋ณด๋ ค๋ฉด ๋ฆฌ์์ค์ ๋ํด ํ์ฉ ์ ์ฑ ์ ๊ฐ์ ธ์ต๋๋ค. ํ์ฉ ์ ์ฑ ์ ํด์ํ๋ ๋ฐฉ๋ฒ์ ์์๋ณด๋ ค๋ฉด ํ์ฉ ์ ์ฑ ์ดํด๋ฅผ ์ฐธ์กฐํ์ธ์.
๋ค์ ์์์์๋ ํ๋ก์ ํธ์ ๋ํ ํ์ฉ ์ ์ฑ ์ ๊ฐ์ ธ์ค๋ ๋ฐฉ๋ฒ์ ๋ณด์ฌ์ค๋๋ค. ํด๋ ๋๋ ์กฐ์ง์ ๋ํ ํ์ฉ ์ ์ฑ ์ ๊ฐ์ ธ์ค๋ ๋ฐฉ๋ฒ์ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ Resource Manager ํด๋ผ์ด์ธํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ฌธ์๋ฅผ ์ฐธ์กฐํ์ธ์.
REST
ํ๋ก์ ํธ, ํด๋, ์กฐ์ง์ ์ก์ธ์คํ ์ ์๋ ์ฌ์ฉ์๋ฅผ ๋ณด๋ ค๋ฉด ๋ฆฌ์์ค์ ๋ํด ํ์ฉ ์ ์ฑ ์ ๊ฐ์ ธ์ต๋๋ค. ํ์ฉ ์ ์ฑ ์ ํด์ํ๋ ๋ฐฉ๋ฒ์ ์์๋ณด๋ ค๋ฉด ํ์ฉ ์ ์ฑ ์ดํด๋ฅผ ์ฐธ์กฐํ์ธ์.
Resource Manager API์ getIamPolicy
๋ฉ์๋๋ ํ๋ก์ ํธ, ํด๋, ์กฐ์ง์ ํ์ฉ ์ ์ฑ
์ ๊ฐ์ ธ์ต๋๋ค.
์์ฒญ ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํ๊ธฐ ์ ์ ๋ค์์ ๋ฐ๊ฟ๋๋ค.
API_VERSION
: ์ฌ์ฉํ API ๋ฒ์ ์ ๋๋ค. ํ๋ก์ ํธ ๋ฐ ์กฐ์ง์v1
์ ์ฌ์ฉํฉ๋๋ค. ํด๋์๋v2
๋ฅผ ์ฌ์ฉํฉ๋๋ค.RESOURCE_TYPE
: ์ ์ฑ ์ ๊ด๋ฆฌํ ๋ฆฌ์์ค ์ ํ.projects
,folders
,organizations
๊ฐ์ ์ฌ์ฉํฉ๋๋ค.RESOURCE_ID
: Google Cloudํ๋ก์ ํธ, ์กฐ์ง, ํด๋ ID์ ๋๋ค. ํ๋ก์ ํธ ID๋my-project
์ ๊ฐ์ ์์ซ์ ๋ฌธ์์ด์ ๋๋ค. ํด๋ ๋ฐ ์กฐ์ง ID๋123456789012
์ ๊ฐ์ ์ซ์์ ๋๋ค.POLICY_VERSION
: ๋ฐํํ ์ ์ฑ ๋ฒ์ ์ ๋๋ค. ์์ฒญ์๋ ์ ์ฑ ๋ฒ์ 3์ธ ์ต์ ์ ์ฑ ๋ฒ์ ์ด ์ง์ ๋์ด์ผ ํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ ์ ์ฑ ์ ๊ฐ์ ธ์ฌ ๋ ์ ์ฑ ๋ฒ์ ์ง์ ์ ์ฐธ์กฐํ์ธ์.
HTTP ๋ฉ์๋ ๋ฐ URL:
POST https://cloudresourcemanager.googleapis.com/API_VERSION/RESOURCE_TYPE/RESOURCE_ID:getIamPolicy
JSON ์์ฒญ ๋ณธ๋ฌธ:
{ "options": { "requestedPolicyVersion": POLICY_VERSION } }
์์ฒญ์ ๋ณด๋ด๋ ค๋ฉด ๋ค์ ์ต์ ์ค ํ๋๋ฅผ ํผ์นฉ๋๋ค.
์๋ต์๋ ๋ฆฌ์์ค์ ํ์ฉ ์ ์ฑ ์ด ํฌํจ๋ฉ๋๋ค. ์๋ฅผ ๋ค๋ฉด ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
{ "version": 1, "etag": "BwWKmjvelug=", "bindings": [ { "role": "roles/owner", "members": [ "user:my-user@example.com" ] } ] }
๋จ์ผ ์ญํ ๋ถ์ฌ ๋๋ ์ทจ์
๋ฆฌ์์ค์ ํ์ฉ ์ ์ฑ ์ ์ง์ ์์ ํ์ง ์๊ณ ๋ Google Cloud ์ฝ์ ๋ฐ gcloud CLI๋ฅผ ์ฌ์ฉํ์ฌ ๋จ์ผ ์ฃผ ๊ตฌ์ฑ์์ ๋ํ ๋จ์ผ ์ญํ ์ ๋น ๋ฅด๊ฒ ๋ถ์ฌํ๊ฑฐ๋ ์ทจ์ํ ์ ์์ต๋๋ค. ์ผ๋ฐ์ ์ธ ์ฃผ ๊ตฌ์ฑ์ ์ ํ์๋ Google ๊ณ์ , ์๋น์ค ๊ณ์ , Google ๊ทธ๋ฃน์ค, ๋๋ฉ์ธ์ด ํฌํจ๋ฉ๋๋ค.๋ชจ๋ ์ฃผ ๊ตฌ์ฑ์ ์ ํ ๋ชฉ๋ก์ ์ฃผ ๊ตฌ์ฑ์ ์ ํ์ ์ฐธ์กฐํ์ธ์.
์ผ๋ฐ์ ์ผ๋ก ์ ์ฑ ๋ณ๊ฒฝ์ฌํญ์ 2๋ถ ์ด๋ด์ ์ ์ฉ๋ฉ๋๋ค. ํ์ง๋ง ๊ฒฝ์ฐ์ ๋ฐ๋ผ ๋ณ๊ฒฝ์ฌํญ์ด ์์คํ ์ ์ฒด์ ์ ํ๋๋ ค๋ฉด 7๋ถ ์ด์ ๊ฑธ๋ฆด ์ ์์ต๋๋ค.
๊ฐ์ฅ ์ ์ ํ ์ฌ์ ์ ์๋ ์ญํ ์ ์ฐพ๋ ๋ฐ ๋์์ด ํ์ํ๋ฉด ์ฌ์ ์ ์๋ ์ญํ ์ ํ์ ์ฐธ์กฐํ์ธ์.
๋จ์ผ ์ญํ ๋ถ์ฌ
์ฃผ ๊ตฌ์ฑ์์ ๋จ์ผ ์ญํ ์ ๋ถ์ฌํ๋ ค๋ฉด ๋ค์์ ์ํํฉ๋๋ค.
์ฝ์
Google Cloud ์ฝ์์์ IAM ํ์ด์ง๋ก ์ด๋ํฉ๋๋ค.
ํ๋ก์ ํธ, ํด๋, ์กฐ์ง์ ์ ํํฉ๋๋ค.
์ญํ ์ ๋ถ์ฌํ ์ฃผ ๊ตฌ์ฑ์์ ์ ํํฉ๋๋ค.
๋ฆฌ์์ค์ ๋ํด ์ด๋ฏธ ๋ค๋ฅธ ์ญํ ์ด ์๋ ์ฃผ ๊ตฌ์ฑ์์๊ฒ ์ญํ ์ ๋ถ์ฌํ๋ ค๋ฉด ์ฃผ ๊ตฌ์ฑ์์ด ํฌํจ๋ ํ์ ์ฐพ์ ํด๋น ํ์์
์ฃผ ๊ตฌ์ฑ์ ์์ ์ ํด๋ฆญํ๊ณ ๋ค๋ฅธ ์ญํ ์ถ๊ฐ๋ฅผ ํด๋ฆญํฉ๋๋ค.์๋น์ค ์์ด์ ํธ์ ์ญํ ์ ๋ถ์ฌํ๋ ค๋ฉด Google์ ๊ณต ์ญํ ๋ถ์ฌ ํฌํจ ์ฒดํฌ๋ฐ์ค๋ฅผ ์ ํํ์ฌ ์ด๋ฉ์ผ ์ฃผ์๋ฅผ ํ์ธํฉ๋๋ค.
๋ฆฌ์์ค์ ๋ํด ๊ธฐ์กด ์ญํ ์ด ์๋ ์ฃผ ๊ตฌ์ฑ์์๊ฒ ์ญํ ์ ๋ถ์ฌํ๋ ค๋ฉด
์ก์ธ์ค ๊ถํ ๋ถ์ฌ๋ฅผ ํด๋ฆญํ ํ ์ฃผ ๊ตฌ์ฑ์์ ์๋ณ์๋ฅผ ์ ๋ ฅํฉ๋๋ค(์:my-user@example.com
).
๋๋กญ๋ค์ด ๋ชฉ๋ก์์ ๋ถ์ฌํ ์ญํ ์ ์ ํํฉ๋๋ค. ๋ณด์ ๊ถ์ฅ์ฌํญ์ ๋ฐ๋ผ ์ฃผ ๊ตฌ์ฑ์์๊ฒ ํ์ํ ๊ถํ๋ง ํฌํจ๋ ์ญํ ์ ์ ํํฉ๋๋ค.
์ ํ์ฌํญ: ์ญํ ์ ์กฐ๊ฑด์ ์ถ๊ฐํฉ๋๋ค.
์ ์ฅ์ ํด๋ฆญํฉ๋๋ค. ์ฃผ ๊ตฌ์ฑ์์๊ฒ ๋ฆฌ์์ค์ ๋ํด ์ญํ ์ด ๋ถ์ฌ๋ฉ๋๋ค.
2๊ฐ ์ด์์ ํ๋ก์ ํธ, ํด๋, ์กฐ์ง์์ ์ฃผ ๊ตฌ์ฑ์์๊ฒ ์ญํ ์ ๋ถ์ฌํ๋ ๋ฐฉ๋ฒ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
Google Cloud ์ฝ์์์ ๋ฆฌ์์ค ๊ด๋ฆฌ ํ์ด์ง๋ก ์ด๋ํฉ๋๋ค.
๊ถํ์ ๋ถ์ฌํ ๋์ ๋ฆฌ์์ค๋ฅผ ๋ชจ๋ ์ ํํฉ๋๋ค.
์ ๋ณด ํจ๋์ด ํ์๋์ง ์์์ผ๋ฉด ์ ๋ณด ํจ๋ ํ์๋ฅผ ํด๋ฆญํฉ๋๋ค. ๊ทธ๋ฐ ํ ๊ถํ์ ํด๋ฆญํฉ๋๋ค.
์ญํ ์ ๋ถ์ฌํ ์ฃผ ๊ตฌ์ฑ์์ ์ ํํฉ๋๋ค.
์ด๋ฏธ ๋ค๋ฅธ ์ญํ ์ด ์๋ ์ฃผ ๊ตฌ์ฑ์์๊ฒ ์ญํ ์ ๋ถ์ฌํ๋ ค๋ฉด ์ฃผ ๊ตฌ์ฑ์์ด ํฌํจ๋ ํ์ ์ฐพ์ ํด๋น ํ์์
์ฃผ ๊ตฌ์ฑ์ ์์ ์ ํด๋ฆญํ๊ณ ๋ค๋ฅธ ์ญํ ์ถ๊ฐ๋ฅผ ํด๋ฆญํฉ๋๋ค.๋ค๋ฅธ ์ญํ ์ด ์์ง ์๋ ์ฃผ ๊ตฌ์ฑ์์๊ฒ ์ญํ ์ ๋ถ์ฌํ๋ ค๋ฉด
์ฃผ ๊ตฌ์ฑ์ ์ถ๊ฐ๋ฅผ ํด๋ฆญํ ํ ์ฃผ ๊ตฌ์ฑ์์ ์๋ณ์๋ฅผ ์ ๋ ฅํฉ๋๋ค(์:my-user@example.com
).
๋๋กญ๋ค์ด ๋ชฉ๋ก์์ ๋ถ์ฌํ ์ญํ ์ ์ ํํฉ๋๋ค.
์ ํ์ฌํญ: ์ญํ ์ ์กฐ๊ฑด์ ์ถ๊ฐํฉ๋๋ค.
์ ์ฅ์ ํด๋ฆญํฉ๋๋ค. ์ ํํ ๊ฐ ๋ฆฌ์์ค์์ ์ฃผ ๊ตฌ์ฑ์์๊ฒ ์ ํํ ์ญํ ์ด ๋ถ์ฌ๋ฉ๋๋ค.
gcloud
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
-
add-iam-policy-binding
๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํ๋ฉด ์ฃผ ๊ตฌ์ฑ์์๊ฒ ์ญํ ์ ๋น ๋ฅด๊ฒ ๋ถ์ฌํ ์ ์์ต๋๋ค.์๋์ ๋ช ๋ น์ด ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํ๊ธฐ ์ ์ ๋ค์์ ๋ฐ๊ฟ๋๋ค.
-
RESOURCE_TYPE
: ์ก์ธ์ค๋ฅผ ๊ด๋ฆฌํ ๋ฆฌ์์ค ์ ํ์ ๋๋ค.projects
,resource-manager folders
,organizations
๋ฅผ ์ฌ์ฉํฉ๋๋ค. -
RESOURCE_ID
: Google Cloud ํ๋ก์ ํธ, ํด๋, ์กฐ์ง ID์ ๋๋ค. ํ๋ก์ ํธ ID๋my-project
์ ๊ฐ์ ์์ซ์์ ๋๋ค. ํด๋ ๋ฐ ์กฐ์ง ID๋123456789012
์ ๊ฐ์ ์ซ์์ ๋๋ค. -
PRINCIPAL
: ์ฃผ ๊ตฌ์ฑ์์ด๋ ๊ตฌ์ฑ์์ ์๋ณ์๋ก, ๋๊ฐPRINCIPAL_TYPE:ID
ํ์์ ๋ฐ๋ฆ ๋๋ค. ์๋ฅผ ๋ค๋ฉดuser:my-user@example.com
์ ๋๋ค.PRINCIPAL
์ ์ง์ ํ ์ ์๋ ์ ์ฒด ๊ฐ ๋ชฉ๋ก์ ์ฃผ ๊ตฌ์ฑ์ ์๋ณ์๋ฅผ ์ฐธ์กฐํ์ธ์.์ฃผ ๊ตฌ์ฑ์ ์ ํ
user
์ ๊ฒฝ์ฐ ์๋ณ์์ ๋๋ฉ์ธ ์ด๋ฆ์ Google Workspace ๋๋ฉ์ธ์ด๋ Cloud ID ๋๋ฉ์ธ์ด์ด์ผ ํฉ๋๋ค. Cloud ID ๋๋ฉ์ธ์ ์ค์ ํ๋ ๋ฐฉ๋ฒ์ Cloud ID ๊ฐ์๋ฅผ ์ฐธ์กฐํ์ธ์. -
ROLE_NAME
: ์ทจ์ํ ์ญํ ์ ์ด๋ฆ์ ๋๋ค. ๋ค์ ํ์ ์ค ํ๋๋ฅผ ์ฌ์ฉํ์ธ์.- ์ฌ์ ์ ์๋ ์ญํ :
roles/SERVICE.IDENTIFIER
- ํ๋ก์ ํธ ์์ค ์ปค์คํ
์ญํ :
projects/PROJECT_ID/roles/IDENTIFIER
- ์กฐ์ง ์์ค ์ปค์คํ
์ญํ :
organizations/ORG_ID/roles/IDENTIFIER
์ฌ์ ์ ์๋ ์ญํ ์ ๋ชฉ๋ก์ ์ญํ ์ดํด๋ฅผ ์ฐธ์กฐํ์ธ์.
- ์ฌ์ ์ ์๋ ์ญํ :
-
CONDITION
: ์ญํ ๋ฐ์ธ๋ฉ์ ์ถ๊ฐํ ์กฐ๊ฑด์ ๋๋ค. ์กฐ๊ฑด์ ์ถ๊ฐํ์ง ์์ผ๋ ค๋ฉดNone
๊ฐ์ ์ฌ์ฉํ์ธ์. ์กฐ๊ฑด์ ๋ํ ์์ธํ ๋ด์ฉ์ ์กฐ๊ฑด ๊ฐ์๋ฅผ ์ฐธ์กฐํ์ธ์.
๋ค์ ๋ช ๋ น์ด๋ฅผ ์คํํฉ๋๋ค.
Linux, macOS ๋๋ Cloud Shell
gcloud RESOURCE_TYPE add-iam-policy-binding RESOURCE_ID \ --member=PRINCIPAL --role=ROLE_NAME \ --condition=CONDITION
Windows(PowerShell)
gcloud RESOURCE_TYPE add-iam-policy-binding RESOURCE_ID ` --member=PRINCIPAL --role=ROLE_NAME ` --condition=CONDITION
Windows(cmd.exe)
gcloud RESOURCE_TYPE add-iam-policy-binding RESOURCE_ID ^ --member=PRINCIPAL --role=ROLE_NAME ^ --condition=CONDITION
์๋ต์๋ ์ ๋ฐ์ดํธ๋ IAM ์ ์ฑ ์ด ํฌํจ๋ฉ๋๋ค.
-
๋จ์ผ ์ญํ ์ทจ์
์ฃผ ๊ตฌ์ฑ์์ ๋จ์ผ ์ญํ ์ ์ทจ์ํ๋ ค๋ฉด ๋ค์์ ์ํํฉ๋๋ค.
์ฝ์
Google Cloud ์ฝ์์์ IAM ํ์ด์ง๋ก ์ด๋ํฉ๋๋ค.
ํ๋ก์ ํธ, ํด๋, ์กฐ์ง์ ์ ํํฉ๋๋ค.
์ก์ธ์ค ๊ถํ์ ์ทจ์ํ๋ ค๋ ์ฃผ ๊ตฌ์ฑ์์ด ํฌํจ๋ ํ์ ์ฐพ์ผ์ธ์. ๊ทธ๋ฐ ๋ค์ ์ด ํ์์
์ฃผ ๊ตฌ์ฑ์ ์์ ์ ํด๋ฆญํฉ๋๋ค.์ทจ์ํ๋ ค๋ ์ญํ ์ ์ญ์
๋ฒํผ์ ํด๋ฆญํ ๋ค์ ์ ์ฅ์ ํด๋ฆญํฉ๋๋ค.
gcloud
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
-
์ฌ์ฉ์์๊ฒ์ ์ญํ ์ ๋น ๋ฅด๊ฒ ์ทจ์ํ๋ ค๋ฉด
remove-iam-policy-binding
๋ช ๋ น์ด๋ฅผ ์คํํฉ๋๋ค.gcloud RESOURCE_TYPE remove-iam-policy-binding RESOURCE_ID
--member=PRINCIPAL --role=ROLE_NAME๋ค์ ๊ฐ์ ์ ๊ณตํฉ๋๋ค.
-
RESOURCE_TYPE
: ์ก์ธ์ค๋ฅผ ๊ด๋ฆฌํ ๋ฆฌ์์ค ์ ํ์ ๋๋ค.projects
,resource-manager folders
,organizations
๋ฅผ ์ฌ์ฉํฉ๋๋ค. -
RESOURCE_ID
: Google Cloud ํ๋ก์ ํธ, ํด๋, ์กฐ์ง ID์ ๋๋ค. ํ๋ก์ ํธ ID๋my-project
์ ๊ฐ์ ์์ซ์์ ๋๋ค. ํด๋ ๋ฐ ์กฐ์ง ID๋123456789012
์ ๊ฐ์ ์ซ์์ ๋๋ค. -
PRINCIPAL
: ์ฃผ ๊ตฌ์ฑ์์ด๋ ๊ตฌ์ฑ์์ ์๋ณ์๋ก, ๋๊ฐPRINCIPAL_TYPE:ID
ํ์์ ๋ฐ๋ฆ ๋๋ค. ์๋ฅผ ๋ค๋ฉด user:my-user@example.com์ ๋๋ค.PRINCIPAL
์ ์ง์ ํ ์ ์๋ ์ ์ฒด ๊ฐ ๋ชฉ๋ก์ ์ฃผ ๊ตฌ์ฑ์ ์๋ณ์๋ฅผ ์ฐธ์กฐํ์ธ์.์ฃผ ๊ตฌ์ฑ์ ์ ํ
user
์ ๊ฒฝ์ฐ ์๋ณ์์ ๋๋ฉ์ธ ์ด๋ฆ์ Google Workspace ๋๋ฉ์ธ์ด๋ Cloud ID ๋๋ฉ์ธ์ด์ด์ผ ํฉ๋๋ค. Cloud ID ๋๋ฉ์ธ์ ์ค์ ํ๋ ๋ฐฉ๋ฒ์ Cloud ID ๊ฐ์๋ฅผ ์ฐธ์กฐํ์ธ์. -
ROLE_NAME
: ์ทจ์ํ ์ญํ ์ ์ด๋ฆ์ ๋๋ค. ๋ค์ ํ์ ์ค ํ๋๋ฅผ ์ฌ์ฉํ์ธ์.- ์ฌ์ ์ ์๋ ์ญํ :
roles/SERVICE.IDENTIFIER
- ํ๋ก์ ํธ ์์ค ์ปค์คํ
์ญํ :
projects/PROJECT_ID/roles/IDENTIFIER
- ์กฐ์ง ์์ค ์ปค์คํ
์ญํ :
organizations/ORG_ID/roles/IDENTIFIER
์ฌ์ ์ ์๋ ์ญํ ์ ๋ชฉ๋ก์ ์ญํ ์ดํด๋ฅผ ์ฐธ์กฐํ์ธ์.
- ์ฌ์ ์ ์๋ ์ญํ :
์๋ฅผ ๋ค์ด
example-project
ํ๋ก์ ํธ์ ๋ํดexample-service-account@example-project.iam.gserviceaccount.com
์๋น์ค ๊ณ์ ์์ ํ๋ก์ ํธ ์์ฑ์ ์ญํ ์ ์ทจ์ํ๋ ค๋ฉด ๋ค์์ ์คํํฉ๋๋ค.gcloud projects remove-iam-policy-binding example-project
--member=serviceAccount:example-service-account@example-project.iam.gserviceaccount.com
--role=roles/resourcemanager.projectCreator -
ํ์ํ ์ญํ ์ ์ทจ์ํ์ง ์๋๋ก ๋ณด์ฅํ๊ธฐ ์ํด ๋ณ๊ฒฝ ์ํ ๊ถ์ฅ์ฌํญ์ ์ฌ์ฉ ์ค์ ํ ์ ์์ต๋๋ค. ๋ณ๊ฒฝ ์ํ ๊ถ์ฅ์ฌํญ์Google Cloud ์์ ์ค์ํ๋ค๊ณ ํ๋จํ ํ๋ก์ ํธ ์์ค ์ญํ ์ ์ทจ์ํ๋ ค๊ณ ์๋ํ ๋ ๊ฒฝ๊ณ ๋ฅผ ์์ฑํฉ๋๋ค.
Google Cloud ์ฝ์์ ์ฌ์ฉํ์ฌ ์ฌ๋ฌ ์ญํ ๋ถ์ฌ ๋๋ ์ทจ์
Google Cloud ์ฝ์์ ์ฌ์ฉํ์ฌ ๋จ์ผ ์ฃผ ๊ตฌ์ฑ์์ ๋ํ ์ฌ๋ฌ ์ญํ ์ ๋ถ์ฌํ๊ณ ์ทจ์ํ ์ ์์ต๋๋ค.
Google Cloud ์ฝ์์์ IAM ํ์ด์ง๋ก ์ด๋ํฉ๋๋ค.
ํ๋ก์ ํธ, ํด๋, ์กฐ์ง์ ์ ํํฉ๋๋ค.
์ญํ ์ ์์ ํ ์ฃผ ๊ตฌ์ฑ์์ ์ ํํฉ๋๋ค.
์ด๋ฏธ ๋ฆฌ์์ค์ ๋ํ ์ญํ ์ด ์๋ ์ฃผ ๊ตฌ์ฑ์์ ์ญํ ์ ์์ ํ๋ ค๋ฉด ์ฃผ ๊ตฌ์ฑ์์ด ํฌํจ๋ ํ์ ์ฐพ์ ํด๋น ํ์์
์ฃผ ๊ตฌ์ฑ์ ์์ ๋ฅผ ํด๋ฆญํ๊ณ ๋ค๋ฅธ ์ญํ ์ถ๊ฐ๋ฅผ ํด๋ฆญํฉ๋๋ค.์๋น์ค ์์ด์ ํธ์ ๋ํ ์ญํ ์ ์์ ํ๋ ค๋ฉด Google์ ๊ณต ์ญํ ๋ถ์ฌ ํฌํจ ์ฒดํฌ๋ฐ์ค๋ฅผ ์ ํํ์ฌ ์ด๋ฉ์ผ ์ฃผ์๋ฅผ ํ์ธํฉ๋๋ค.
๋ฆฌ์์ค์ ๋ํด ์ญํ ์ด ์๋ ์ฃผ ๊ตฌ์ฑ์์๊ฒ ์ญํ ์ ๋ถ์ฌํ๋ ค๋ฉด
์ก์ธ์ค ๊ถํ ๋ถ์ฌ๋ฅผ ํด๋ฆญํ ํ ์ฃผ ๊ตฌ์ฑ์์ ์๋ณ์๋ฅผ ์ ๋ ฅํฉ๋๋ค(์:my-user@example.com
).
์ฃผ ๊ตฌ์ฑ์์ ์ญํ ์ ์์ ํฉ๋๋ค.
- ๋ฆฌ์์ค์ ๋ํ ๊ธฐ์กด ์ญํ ์ด ์๋ ์ฃผ ๊ตฌ์ฑ์์๊ฒ ์ญํ ์ ๋ถ์ฌํ๋ ค๋ฉด ์ญํ ์ ํ์ ํด๋ฆญํ ํ ๋๋กญ๋ค์ด ๋ชฉ๋ก์์ ๋ถ์ฌํ ์ญํ ์ ์ ํํฉ๋๋ค.
- ์ฃผ ๊ตฌ์ฑ์์๊ฒ ์ถ๊ฐ ์ญํ ์ ๋ถ์ฌํ๋ ค๋ฉด ๋ค๋ฅธ ์ญํ ์ถ๊ฐ๋ฅผ ํด๋ฆญํ ํ ๋๋กญ๋ค์ด ๋ชฉ๋ก์์ ๋ถ์ฌํ ์ญํ ์ ์ ํํฉ๋๋ค.
- ์ฃผ ๊ตฌ์ฑ์์ ์ญํ ์ค ํ๋๋ฅผ ๋ค๋ฅธ ์ญํ ๋ก ๋์ฒดํ๋ ค๋ฉด ๊ธฐ์กด ์ญํ ์ ํด๋ฆญํ ๋ค์ ๋๋กญ๋ค์ด ๋ชฉ๋ก์์ ๋ถ์ฌํ ๋ค๋ฅธ ์ญํ ์ ์ ํํฉ๋๋ค.
- ์ฃผ ๊ตฌ์ฑ์ ์ญํ ์ค ํ๋๋ฅผ ์ทจ์ํ๋ ค๋ฉด ์ทจ์ํ๋ ค๋ ๊ฐ ์ญํ ์ ์ญ์ ๋ฒํผ์ ํด๋ฆญํฉ๋๋ค.
์ญํ ์ ์กฐ๊ฑด์ ์ถ๊ฐํ๊ฑฐ๋ ์ญํ ์ ์กฐ๊ฑด์ ์์ ํ๊ฑฐ๋ ์ญํ ์ ์กฐ๊ฑด์ ์ญ์ ํ ์๋ ์์ต๋๋ค.
์ ์ฅ์ ํด๋ฆญํฉ๋๋ค.
ํ๋ก๊ทธ๋๋งคํฑ ๋ฐฉ์์ผ๋ก ์ฌ๋ฌ ์ญํ ๋ถ์ฌ ๋๋ ์ทจ์
์ฌ๋ฌ ์ฃผ ๊ตฌ์ฑ์์ ๋ํ ์ฌ๋ฌ ์ญํ ์ ๋ถ์ฌ ๋ฐ ์ทจ์๊ฐ ํฌํจ๋ ๋๊ท๋ชจ ์ก์ธ์ค ๋ณ๊ฒฝ์ ์ํํ๋ ค๋ฉด ์ฝ๊ธฐ-์์ -์ฐ๊ธฐ ํจํด์ ์ฌ์ฉํ์ฌ ๋ฆฌ์์ค์ ํ์ฉ ์ ์ฑ ์ ์ ๋ฐ์ดํธํฉ๋๋ค.
getIamPolicy()
๋ฅผ ํธ์ถํ์ฌ ํ์ฌ ํ์ฉ ์ ์ฑ ์ ์ฝ์ต๋๋ค.- ํ ์คํธ ํธ์ง๊ธฐ๋ฅผ ์ฌ์ฉํ๊ฑฐ๋ ํ๋ก๊ทธ๋๋งคํฑ ๋ฐฉ์์ผ๋ก ํ์ฉ ์ ์ฑ ์ ์์ ํ์ฌ ์ฃผ ๊ตฌ์ฑ์ ๋๋ ์ญํ ๋ฐ์ธ๋ฉ์ ์ถ๊ฐํ๊ฑฐ๋ ์ญ์ ํฉ๋๋ค.
setIamPolicy()
๋ฅผ ํธ์ถํ์ฌ ์ ๋ฐ์ดํธ๋ ํ์ฉ ์ ์ฑ ์ ์์ฑํฉ๋๋ค.
gcloud CLI, REST API ๋๋ Resource Manager ํด๋ผ์ด์ธํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ์ฌ ํ์ฉ ์ ์ฑ ์ ์ ๋ฐ์ดํธํ ์ ์์ต๋๋ค.
์ผ๋ฐ์ ์ผ๋ก ์ ์ฑ ๋ณ๊ฒฝ์ฌํญ์ 2๋ถ ์ด๋ด์ ์ ์ฉ๋ฉ๋๋ค. ํ์ง๋ง ๊ฒฝ์ฐ์ ๋ฐ๋ผ ๋ณ๊ฒฝ์ฌํญ์ด ์์คํ ์ ์ฒด์ ์ ํ๋๋ ค๋ฉด 7๋ถ ์ด์ ๊ฑธ๋ฆด ์ ์์ต๋๋ค.
ํ์ฌ ํ์ฉ ์ ์ฑ ๊ฐ์ ธ์ค๊ธฐ
gcloud
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
-
๋ฆฌ์์ค์ ํ์ฉ ์ ์ฑ ์ ๊ฐ์ ธ์ค๋ ค๋ฉด ๋ฆฌ์์ค์ ๋ํด
get-iam-policy
๋ช ๋ น์ด๋ฅผ ์คํํฉ๋๋ค.gcloud RESOURCE_TYPE get-iam-policy RESOURCE_ID --format=FORMAT > PATH
๋ค์ ๊ฐ์ ์ ๊ณตํฉ๋๋ค.
-
RESOURCE_TYPE
: ํ์ฉ ์ ์ฑ ์ ๊ฐ์ ธ์ค๋ ค๋ ๋ฆฌ์์ค์ ์ ํ์ ๋๋ค.projects
,resource-manager folders
,organizations
์ค ํ ๊ฐ์ง ๊ฐ์ ์ฌ์ฉํฉ๋๋ค. -
RESOURCE_ID
: Google Cloud ํ๋ก์ ํธ, ํด๋, ์กฐ์ง ID์ ๋๋ค. ํ๋ก์ ํธ ID๋my-project
์ ๊ฐ์ ์์ซ์์ ๋๋ค. ํด๋ ๋ฐ ์กฐ์ง ID๋123456789012
์ ๊ฐ์ ์ซ์์ ๋๋ค. -
FORMAT
: ํ์ฉ ์ ์ฑ ์ ์ฌ์ฉํ๋ ค๋ ํ์์ ๋๋ค.json
๋๋yaml
์ ์ฌ์ฉํฉ๋๋ค. -
PATH
: ํ์ฉ ์ ์ฑ ์ ๋ํ ์ ์ถ๋ ฅ ํ์ผ์ ๊ฒฝ๋ก์ ๋๋ค.
์๋ฅผ ๋ค์ด ๋ค์ ๋ช ๋ น์ด๋
my-project
ํ๋ก์ ํธ์ ํ์ฉ ์ ์ฑ ์ ๊ฐ์ ธ์ค๊ณ ์ด๋ฅผ JSON ํ์์ผ๋ก ํ ๋๋ ํฐ๋ฆฌ์ ์ ์ฅํฉ๋๋ค.gcloud projects get-iam-policy my-project --format json > ~/policy.json
-
C#
Resource Manager์ ์ธ์ฆํ๋ ค๋ฉด ์ ํ๋ฆฌ์ผ์ด์ ๊ธฐ๋ณธ ์ฌ์ฉ์ ์ธ์ฆ ์ ๋ณด๋ฅผ ์ค์ ํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ ์์ํ๊ธฐ ์ ์๋ฅผ ์ฐธ์กฐํ์ธ์.
Resource Manager์ ๋ํด ํด๋ผ์ด์ธํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ค์นํ๊ณ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ Resource Manager ํด๋ผ์ด์ธํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฐธ์กฐํ์ธ์.
๋ค์ ์์์์๋ ํ๋ก์ ํธ์ ๋ํ ํ์ฉ ์ ์ฑ ์ ๊ฐ์ ธ์ค๋ ๋ฐฉ๋ฒ์ ๋ณด์ฌ์ค๋๋ค. ํด๋ ๋๋ ์กฐ์ง์ ํ์ฉ ์ ์ฑ ์ ๊ฐ์ ธ์ค๋ ๋ฐฉ๋ฒ์ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ Resource Manager ํด๋ผ์ด์ธํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ฌธ์๋ฅผ ์ฐธ์กฐํ์ธ์.
Java
Resource Manager์ ์ธ์ฆํ๋ ค๋ฉด ์ ํ๋ฆฌ์ผ์ด์ ๊ธฐ๋ณธ ์ฌ์ฉ์ ์ธ์ฆ ์ ๋ณด๋ฅผ ์ค์ ํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ ์์ํ๊ธฐ ์ ์๋ฅผ ์ฐธ์กฐํ์ธ์.
Resource Manager์ ๋ํด ํด๋ผ์ด์ธํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ค์นํ๊ณ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ Resource Manager ํด๋ผ์ด์ธํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฐธ์กฐํ์ธ์.
๋ค์ ์์์์๋ ํ๋ก์ ํธ์ ๋ํ ํ์ฉ ์ ์ฑ ์ ๊ฐ์ ธ์ค๋ ๋ฐฉ๋ฒ์ ๋ณด์ฌ์ค๋๋ค. ํด๋ ๋๋ ์กฐ์ง์ ํ์ฉ ์ ์ฑ ์ ๊ฐ์ ธ์ค๋ ๋ฐฉ๋ฒ์ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ Resource Manager ํด๋ผ์ด์ธํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ฌธ์๋ฅผ ์ฐธ์กฐํ์ธ์.
Python
Resource Manager์ ์ธ์ฆํ๋ ค๋ฉด ์ ํ๋ฆฌ์ผ์ด์ ๊ธฐ๋ณธ ์ฌ์ฉ์ ์ธ์ฆ ์ ๋ณด๋ฅผ ์ค์ ํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ ์์ํ๊ธฐ ์ ์๋ฅผ ์ฐธ์กฐํ์ธ์.
Resource Manager์ ๋ํด ํด๋ผ์ด์ธํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ค์นํ๊ณ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ Resource Manager ํด๋ผ์ด์ธํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฐธ์กฐํ์ธ์.
๋ค์ ์์์์๋ ํ๋ก์ ํธ์ ๋ํ ํ์ฉ ์ ์ฑ ์ ๊ฐ์ ธ์ค๋ ๋ฐฉ๋ฒ์ ๋ณด์ฌ์ค๋๋ค. ํด๋ ๋๋ ์กฐ์ง์ ํ์ฉ ์ ์ฑ ์ ๊ฐ์ ธ์ค๋ ๋ฐฉ๋ฒ์ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ Resource Manager ํด๋ผ์ด์ธํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ฌธ์๋ฅผ ์ฐธ์กฐํ์ธ์.
REST
Resource Manager API์ getIamPolicy
๋ฉ์๋๋ ํ๋ก์ ํธ, ํด๋, ์กฐ์ง์ ํ์ฉ ์ ์ฑ
์ ๊ฐ์ ธ์ต๋๋ค.
์์ฒญ ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํ๊ธฐ ์ ์ ๋ค์์ ๋ฐ๊ฟ๋๋ค.
API_VERSION
: ์ฌ์ฉํ API ๋ฒ์ ์ ๋๋ค. ํ๋ก์ ํธ ๋ฐ ์กฐ์ง์v1
์ ์ฌ์ฉํฉ๋๋ค. ํด๋์๋v2
๋ฅผ ์ฌ์ฉํฉ๋๋ค.RESOURCE_TYPE
: ์ ์ฑ ์ ๊ด๋ฆฌํ ๋ฆฌ์์ค ์ ํ.projects
,folders
,organizations
๊ฐ์ ์ฌ์ฉํฉ๋๋ค.RESOURCE_ID
: Google Cloudํ๋ก์ ํธ, ์กฐ์ง, ํด๋ ID์ ๋๋ค. ํ๋ก์ ํธ ID๋my-project
์ ๊ฐ์ ์์ซ์ ๋ฌธ์์ด์ ๋๋ค. ํด๋ ๋ฐ ์กฐ์ง ID๋123456789012
์ ๊ฐ์ ์ซ์์ ๋๋ค.POLICY_VERSION
: ๋ฐํํ ์ ์ฑ ๋ฒ์ ์ ๋๋ค. ์์ฒญ์๋ ์ ์ฑ ๋ฒ์ 3์ธ ์ต์ ์ ์ฑ ๋ฒ์ ์ด ์ง์ ๋์ด์ผ ํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ ์ ์ฑ ์ ๊ฐ์ ธ์ฌ ๋ ์ ์ฑ ๋ฒ์ ์ง์ ์ ์ฐธ์กฐํ์ธ์.
HTTP ๋ฉ์๋ ๋ฐ URL:
POST https://cloudresourcemanager.googleapis.com/API_VERSION/RESOURCE_TYPE/RESOURCE_ID:getIamPolicy
JSON ์์ฒญ ๋ณธ๋ฌธ:
{ "options": { "requestedPolicyVersion": POLICY_VERSION } }
์์ฒญ์ ๋ณด๋ด๋ ค๋ฉด ๋ค์ ์ต์ ์ค ํ๋๋ฅผ ํผ์นฉ๋๋ค.
์๋ต์๋ ๋ฆฌ์์ค์ ํ์ฉ ์ ์ฑ ์ด ํฌํจ๋ฉ๋๋ค. ์๋ฅผ ๋ค๋ฉด ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
{ "version": 1, "etag": "BwWKmjvelug=", "bindings": [ { "role": "roles/owner", "members": [ "user:my-user@example.com" ] } ] }
์ ์ ํ ์ ํ์ ํ์ผ๋ก ์๋ต์ ์ ์ฅํฉ๋๋ค(json
๋๋ yaml
).
ํ์ฉ ์ ์ฑ ์์
ํน์ ์ฌ์ฉ์์๊ฒ ์ญํ ์ ๋ถ์ฌํ๊ฑฐ๋ ์ด ์ฌ์ฉ์์ ์ญํ ์ ์ทจ์ํ๋ ค๋ฉด ํ๋ก๊ทธ๋๋งคํฑ ๋ฐฉ์์ผ๋ก ๋๋ ํ ์คํธ ํธ์ง๊ธฐ๋ฅผ ์ฌ์ฉํ์ฌ ๋ฆฌ์์ค ํ์ฉ ์ ์ฑ ์ ๋ก์ปฌ ๋ณต์ฌ๋ณธ์ ์์ ํฉ๋๋ค.
๋ค๋ฅธ ๋ณ๊ฒฝ์ฌํญ์ ๋ฎ์ด์ฐ์ง ์๋๋ก ํ๋ ค๋ฉด ํ์ฉ ์ ์ฑ
์ etag
ํ๋๋ฅผ ์์ ํ๊ฑฐ๋ ์ญ์ ํ์ง ๋ง์ธ์. etag
ํ๋๋ ํ์ฉ ์ ์ฑ
์ ํ์ฌ ์ํ๋ฅผ ์๋ณํฉ๋๋ค. ์
๋ฐ์ดํธ๋ ํ์ฉ ์ ์ฑ
์ ์ค์ ํ๋ฉด IAM์ ์์ฒญ์ ์๋ etag
๊ฐ์ ๊ธฐ์กด etag
์ ๋น๊ตํ๊ณ ๊ฐ์ด ์ผ์นํ๋ ๊ฒฝ์ฐ์๋ง ํ์ฉ ์ ์ฑ
์ ๊ธฐ๋กํฉ๋๋ค.
ํ์ฉ ์ ์ฑ ์ด ๋ถ์ฌํ๋ ์ญํ ์ ์์ ํ๋ ค๋ฉด ํ์ฉ ์ ์ฑ ์์ ์ญํ ๋ฐ์ธ๋ฉ์ ์์ ํด์ผ ํฉ๋๋ค. ์ญํ ๋ฐ์ธ๋ฉ์ ํ์์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
{ "role": "ROLE_NAME", "members": [ "PRINCIPAL_1", "PRINCIPAL_2", ... "PRINCIPAL_N" ], "conditions:" { CONDITIONS } }
์๋ฆฌํ์์์ ๊ฐ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
ROLE_NAME
: ๋ถ์ฌํ ์ญํ ์ ์ด๋ฆ์ ๋๋ค. ๋ค์ ํ์ ์ค ํ๋๋ฅผ ์ฌ์ฉํ์ธ์.- ์ฌ์ ์ ์๋ ์ญํ :
roles/SERVICE.IDENTIFIER
- ํ๋ก์ ํธ ์์ค ์ปค์คํ
์ญํ :
projects/PROJECT_ID/roles/IDENTIFIER
- ์กฐ์ง ์์ค ์ปค์คํ
์ญํ :
organizations/ORG_ID/roles/IDENTIFIER
์ฌ์ ์ ์๋ ์ญํ ์ ๋ชฉ๋ก์ ์ญํ ์ดํด๋ฅผ ์ฐธ์กฐํ์ธ์.
- ์ฌ์ ์ ์๋ ์ญํ :
PRINCIPAL_1
,PRINCIPAL_2
,...PRINCIPAL_N
: ์ญํ ์ ๋ถ์ฌํ ์ฃผ ๊ตฌ์ฑ์์ ์๋ณ์์ ๋๋ค.์ฃผ ๊ตฌ์ฑ์ ์๋ณ์๋ ์ผ๋ฐ์ ์ผ๋ก
PRINCIPAL-TYPE:ID
ํ์์ ๋๋ค. ์๋ฅผ ๋ค๋ฉดuser:my-user@example.com
์ ๋๋ค.PRINCIPAL
์ ์ง์ ํ ์ ์๋ ์ ์ฒด ๊ฐ ๋ชฉ๋ก์ ์ฃผ ๊ตฌ์ฑ์ ์๋ณ์๋ฅผ ์ฐธ์กฐํ์ธ์.์ฃผ ๊ตฌ์ฑ์ ์ ํ
user
์ ๊ฒฝ์ฐ ์๋ณ์์ ๋๋ฉ์ธ ์ด๋ฆ์ Google Workspace ๋๋ฉ์ธ์ด๋ Cloud ID ๋๋ฉ์ธ์ด์ด์ผ ํฉ๋๋ค. Cloud ID ๋๋ฉ์ธ์ ์ค์ ํ๋ ๋ฐฉ๋ฒ์ Cloud ID ๊ฐ์๋ฅผ ์ฐธ์กฐํ์ธ์.CONDITIONS
: ์ ํ์ฌํญ. ์ก์ธ์ค ๊ถํ์ด ๋ถ์ฌ๋๋ ์์ ์ ์ง์ ํ๋ ๋ชจ๋ ์กฐ๊ฑด์ ๋๋ค.
์ญํ ๋ถ์ฌ
์ฃผ ๊ตฌ์ฑ์์๊ฒ ์ญํ ์ ๋ถ์ฌํ๋ ค๋ฉด ํ์ฉ ์ ์ฑ ์์ ์ญํ ๋ฐ์ธ๋ฉ์ ์์ ํฉ๋๋ค. ๋ถ์ฌํ ์ ์๋ ์ญํ ์ ๋ํด ์์๋ณด๋ ค๋ฉด ์ญํ ์ดํด ๋๋ ๋ฆฌ์์ค์ ๋ํ ๋ถ์ฌ ๊ฐ๋ฅํ ์ญํ ๋ณด๊ธฐ๋ฅผ ์ฐธ์กฐํ์ธ์. ๊ฐ์ฅ ์ ํฉํ ์ฌ์ ์ ์๋ ์ญํ ์ ์๋ณํ๋ ๋ฐ ๋์์ด ํ์ํ๋ฉด ์ฌ์ ์ ์๋ ์ญํ ์ ํ์ ์ฐธ์กฐํ์ธ์.
ํ์์ ๋ฐ๋ผ ์กฐ๊ฑด์ ์ฌ์ฉํ์ฌ ํน์ ์๊ตฌ์ฌํญ์ด ์ถฉ์กฑ๋ ๋๋ง ์ญํ ์ ๋ถ์ฌํ ์ ์์ต๋๋ค.
์ด๋ฏธ ํ์ฉ ์ ์ฑ ์ ํฌํจ๋ ์ญํ ์ ๋ถ์ฌํ๋ ค๋ฉด ์ฃผ ๊ตฌ์ฑ์์ ๊ธฐ์กด ์ญํ ๋ฐ์ธ๋ฉ์ ์ถ๊ฐํฉ๋๋ค.
gcloud
์ฃผ ๊ตฌ์ฑ์์ ๊ธฐ์กด ์ญํ ๋ฐ์ธ๋ฉ์ ์ถ๊ฐํ์ฌ ๋ฐํ๋ ํ์ฉ ์ ์ฑ ์ ์์ ํฉ๋๋ค. ์ ๋ฐ์ดํธ๋ ํ์ฉ ์ ์ฑ ์ ์ค์ ํด์ผ๋ง ์ด ๋ณ๊ฒฝ์ฌํญ์ด ์ ์ฉ๋ฉ๋๋ค.
์๋ฅผ ๋ค์ด ํ์ฉ ์ ์ฑ
์ ๋ค์ ์ญํ ๋ฐ์ธ๋ฉ์ด ํฌํจ๋๋ค๊ณ ๊ฐ์ ํด๋ณด์ธ์. ์ด ์ญํ ๋ฐ์ธ๋ฉ์ ๋ณด์ ๊ฒํ ์ ์ญํ (roles/iam.securityReviewer
)์ Kai์ ๋ถ์ฌํฉ๋๋ค.
{
"role": "roles/iam.securityReviewer",
"members": [
"user:kai@example.com"
]
}
๋์ผํ ์ญํ ์ Raha์ ๋ถ์ฌํ๋ ค๋ฉด Raha์ ์ฃผ ๊ตฌ์ฑ์ ์๋ณ์๋ฅผ ๊ธฐ์กด ์ญํ ๋ฐ์ธ๋ฉ์ ์ถ๊ฐํฉ๋๋ค.
{ "role": "roles/iam.securityReviewer", "members": [ "user:kai@example.com", "user:raha@example.com" ] }
C#
Resource Manager์ ์ธ์ฆํ๋ ค๋ฉด ์ ํ๋ฆฌ์ผ์ด์ ๊ธฐ๋ณธ ์ฌ์ฉ์ ์ธ์ฆ ์ ๋ณด๋ฅผ ์ค์ ํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ ์์ํ๊ธฐ ์ ์๋ฅผ ์ฐธ์กฐํ์ธ์.
Resource Manager์ ๋ํด ํด๋ผ์ด์ธํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ค์นํ๊ณ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ Resource Manager ํด๋ผ์ด์ธํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฐธ์กฐํ์ธ์.
Go
Resource Manager์ ์ธ์ฆํ๋ ค๋ฉด ์ ํ๋ฆฌ์ผ์ด์ ๊ธฐ๋ณธ ์ฌ์ฉ์ ์ธ์ฆ ์ ๋ณด๋ฅผ ์ค์ ํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ ์์ํ๊ธฐ ์ ์๋ฅผ ์ฐธ์กฐํ์ธ์.
Resource Manager์ ๋ํด ํด๋ผ์ด์ธํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ค์นํ๊ณ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ Resource Manager ํด๋ผ์ด์ธํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฐธ์กฐํ์ธ์.
Java
Resource Manager์ ์ธ์ฆํ๋ ค๋ฉด ์ ํ๋ฆฌ์ผ์ด์ ๊ธฐ๋ณธ ์ฌ์ฉ์ ์ธ์ฆ ์ ๋ณด๋ฅผ ์ค์ ํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ ์์ํ๊ธฐ ์ ์๋ฅผ ์ฐธ์กฐํ์ธ์.
Resource Manager์ ๋ํด ํด๋ผ์ด์ธํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ค์นํ๊ณ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ Resource Manager ํด๋ผ์ด์ธํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฐธ์กฐํ์ธ์.
Python
Resource Manager์ ์ธ์ฆํ๋ ค๋ฉด ์ ํ๋ฆฌ์ผ์ด์ ๊ธฐ๋ณธ ์ฌ์ฉ์ ์ธ์ฆ ์ ๋ณด๋ฅผ ์ค์ ํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ ์์ํ๊ธฐ ์ ์๋ฅผ ์ฐธ์กฐํ์ธ์.
Resource Manager์ ๋ํด ํด๋ผ์ด์ธํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ค์นํ๊ณ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ Resource Manager ํด๋ผ์ด์ธํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฐธ์กฐํ์ธ์.
REST
์ฃผ ๊ตฌ์ฑ์์ ๊ธฐ์กด ์ญํ ๋ฐ์ธ๋ฉ์ ์ถ๊ฐํ์ฌ ๋ฐํ๋ ํ์ฉ ์ ์ฑ ์ ์์ ํฉ๋๋ค. ์ ๋ฐ์ดํธ๋ ํ์ฉ ์ ์ฑ ์ ์ค์ ํด์ผ๋ง ์ด ๋ณ๊ฒฝ์ฌํญ์ด ์ ์ฉ๋ฉ๋๋ค.
์๋ฅผ ๋ค์ด ํ์ฉ ์ ์ฑ
์ ๋ค์ ์ญํ ๋ฐ์ธ๋ฉ์ด ํฌํจ๋๋ค๊ณ ๊ฐ์ ํด๋ณด์ธ์. ์ด ์ญํ ๋ฐ์ธ๋ฉ์ ๋ณด์ ๊ฒํ ์ ์ญํ (roles/iam.securityReviewer
)์ Kai์ ๋ถ์ฌํฉ๋๋ค.
{
"role": "roles/iam.securityReviewer",
"members": [
"user:kai@example.com"
]
}
๋์ผํ ์ญํ ์ Raha์ ๋ถ์ฌํ๋ ค๋ฉด Raha์ ์ฃผ ๊ตฌ์ฑ์ ์๋ณ์๋ฅผ ๊ธฐ์กด ์ญํ ๋ฐ์ธ๋ฉ์ ์ถ๊ฐํฉ๋๋ค.
{ "role": "roles/iam.securityReviewer", "members": [ "user:kai@example.com", "user:raha@example.com" ] }
์ ์ฑ ์ ์์ง ํฌํจ๋์ง ์์ ์ญํ ์ ๋ถ์ฌํ๋ ค๋ฉด ์ ์ญํ ๋ฐ์ธ๋ฉ์ ์ถ๊ฐํฉ๋๋ค.
gcloud
์ฃผ ๊ตฌ์ฑ์์ ์ญํ ์ ๋ถ์ฌํ๋ ์ ์ญํ ๋ฐ์ธ๋ฉ์ ์ถ๊ฐํ์ฌ ํ์ฉ ์ ์ฑ ์ ์์ ํฉ๋๋ค. ์ ๋ฐ์ดํธ๋ ํ์ฉ ์ ์ฑ ์ ์ค์ ํด์ผ๋ง ์ด ๋ณ๊ฒฝ์ฌํญ์ด ์ ์ฉ๋ฉ๋๋ค.
์๋ฅผ ๋ค์ด Compute ์คํ ๋ฆฌ์ง ๊ด๋ฆฌ์ ์ญํ (roles/compute.storageAdmin
)์ Raha์ ๋ถ์ฌํ๋ ค๋ฉด ๋ค์ ์ญํ ๋ฐ์ธ๋ฉ์ ํด๋น ํ์ฉ ์ ์ฑ
์ bindings
๋ฐฐ์ด์ ์ถ๊ฐํฉ๋๋ค.
{
"role": "roles/compute.storageAdmin",
"members": [
"user:raha@example.com"
]
}
C#
IAM์ฉ ํด๋ผ์ด์ธํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ค์นํ๊ณ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ IAM ํด๋ผ์ด์ธํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฐธ์กฐํ์ธ์. ์์ธํ ๋ด์ฉ์ IAM C# API ์ฐธ๊ณ ๋ฌธ์๋ฅผ ์ฐธ์กฐํ์ธ์.
IAM์ ์ธ์ฆํ๋ ค๋ฉด ์ ํ๋ฆฌ์ผ์ด์ ๊ธฐ๋ณธ ์ฌ์ฉ์ ์ธ์ฆ ์ ๋ณด๋ฅผ ์ค์ ํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ ์์ํ๊ธฐ ์ ์๋ฅผ ์ฐธ์กฐํ์ธ์.
Resource Manager์ ์ธ์ฆํ๋ ค๋ฉด ์ ํ๋ฆฌ์ผ์ด์ ๊ธฐ๋ณธ ์ฌ์ฉ์ ์ธ์ฆ ์ ๋ณด๋ฅผ ์ค์ ํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ ์์ํ๊ธฐ ์ ์๋ฅผ ์ฐธ์กฐํ์ธ์.
Resource Manager์ ๋ํด ํด๋ผ์ด์ธํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ค์นํ๊ณ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ Resource Manager ํด๋ผ์ด์ธํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฐธ์กฐํ์ธ์.
Java
IAM์ฉ ํด๋ผ์ด์ธํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ค์นํ๊ณ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ IAM ํด๋ผ์ด์ธํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฐธ์กฐํ์ธ์. ์์ธํ ๋ด์ฉ์ IAM Java API ์ฐธ๊ณ ๋ฌธ์๋ฅผ ์ฐธ์กฐํ์ธ์.
IAM์ ์ธ์ฆํ๋ ค๋ฉด ์ ํ๋ฆฌ์ผ์ด์ ๊ธฐ๋ณธ ์ฌ์ฉ์ ์ธ์ฆ ์ ๋ณด๋ฅผ ์ค์ ํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ ์์ํ๊ธฐ ์ ์๋ฅผ ์ฐธ์กฐํ์ธ์.
Resource Manager์ ์ธ์ฆํ๋ ค๋ฉด ์ ํ๋ฆฌ์ผ์ด์ ๊ธฐ๋ณธ ์ฌ์ฉ์ ์ธ์ฆ ์ ๋ณด๋ฅผ ์ค์ ํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ ์์ํ๊ธฐ ์ ์๋ฅผ ์ฐธ์กฐํ์ธ์.
Resource Manager์ ๋ํด ํด๋ผ์ด์ธํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ค์นํ๊ณ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ Resource Manager ํด๋ผ์ด์ธํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฐธ์กฐํ์ธ์.
Python
IAM์ฉ ํด๋ผ์ด์ธํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ค์นํ๊ณ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ IAM ํด๋ผ์ด์ธํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฐธ์กฐํ์ธ์. ์์ธํ ๋ด์ฉ์ IAM Python API ์ฐธ๊ณ ๋ฌธ์๋ฅผ ์ฐธ์กฐํ์ธ์.
IAM์ ์ธ์ฆํ๋ ค๋ฉด ์ ํ๋ฆฌ์ผ์ด์ ๊ธฐ๋ณธ ์ฌ์ฉ์ ์ธ์ฆ ์ ๋ณด๋ฅผ ์ค์ ํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ ์์ํ๊ธฐ ์ ์๋ฅผ ์ฐธ์กฐํ์ธ์.
Resource Manager์ ์ธ์ฆํ๋ ค๋ฉด ์ ํ๋ฆฌ์ผ์ด์ ๊ธฐ๋ณธ ์ฌ์ฉ์ ์ธ์ฆ ์ ๋ณด๋ฅผ ์ค์ ํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ ์์ํ๊ธฐ ์ ์๋ฅผ ์ฐธ์กฐํ์ธ์.
Resource Manager์ ๋ํด ํด๋ผ์ด์ธํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ค์นํ๊ณ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ Resource Manager ํด๋ผ์ด์ธํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฐธ์กฐํ์ธ์.
REST
์ฃผ ๊ตฌ์ฑ์์ ์ญํ ์ ๋ถ์ฌํ๋ ์ ์ญํ ๋ฐ์ธ๋ฉ์ ์ถ๊ฐํ์ฌ ํ์ฉ ์ ์ฑ ์ ์์ ํฉ๋๋ค. ์ ๋ฐ์ดํธ๋ ํ์ฉ ์ ์ฑ ์ ์ค์ ํด์ผ๋ง ์ด ๋ณ๊ฒฝ์ฌํญ์ด ์ ์ฉ๋ฉ๋๋ค.
์๋ฅผ ๋ค์ด Compute ์คํ ๋ฆฌ์ง ๊ด๋ฆฌ์ ์ญํ (roles/compute.storageAdmin
)์ Raha์ ๋ถ์ฌํ๋ ค๋ฉด ๋ค์ ์ญํ ๋ฐ์ธ๋ฉ์ ํด๋น ํ์ฉ ์ ์ฑ
์ bindings
๋ฐฐ์ด์ ์ถ๊ฐํฉ๋๋ค.
{
"role": "roles/compute.storageAdmin",
"members": [
"user:raha@example.com"
]
}
ํ์ฑํ๋ API ์๋น์ค์ ๊ด๋ จ๋ ์ญํ ๋ง ๋ถ์ฌํ ์ ์์ต๋๋ค. Compute Engine๊ณผ ๊ฐ์ ์๋น์ค๊ฐ ํ์ฑํ๋์ด ์์ง ์์ ๊ฒฝ์ฐ Compute Engine์๋ง ๊ด๋ จ๋ ์ญํ ์ ๋ถ์ฌํ ์ ์์ต๋๋ค. ์์ธํ ๋ด์ฉ์ API ์ฌ์ฉ ๋ฐ ์ฌ์ฉ ์ค์ง๋ฅผ ์ฐธ์กฐํ์ธ์.
ํ๋ก์ ํธ์ ๊ถํ์ ๋ถ์ฌํ ๋, ํนํ ์์ ์(roles/owner
) ์ญํ ์ ๋ถ์ฌํ ๋ ๊ณ ์ ํ ์ ์ฝ์กฐ๊ฑด์ด ์์ต๋๋ค. ์์ธํ ๋ด์ฉ์ projects.setIamPolicy()
์ฐธ๊ณ ๋ฌธ์๋ฅผ ํ์ธํ์ธ์.
์ญํ ์ทจ์
์ญํ ์ ์ทจ์ํ๋ ค๋ฉด ์ญํ ๋ฐ์ธ๋ฉ์์ ์ฃผ ๊ตฌ์ฑ์์ ์ญ์ ํฉ๋๋ค. ์ญํ ๋ฐ์ธ๋ฉ์ ๋ค๋ฅธ ์ฃผ ๊ตฌ์ฑ์์ด ์์ผ๋ฉด ์ ์ฒด ์ญํ ๋ฐ์ธ๋ฉ์ ์ญ์ ํฉ๋๋ค.
gcloud
get-iam-policy
๋ช
๋ น์ด์์ ๋ฐํ๋ JSON ๋๋ YAML ํ์ฉ ์ ์ฑ
์ ์์ ํด ์ญํ ์ ์ทจ์ํฉ๋๋ค. ์
๋ฐ์ดํธ๋ ํ์ฉ ์ ์ฑ
์ ์ค์ ํด์ผ๋ง ์ด ๋ณ๊ฒฝ์ฌํญ์ด ์ ์ฉ๋ฉ๋๋ค.
์ฃผ ๊ตฌ์ฑ์์ ์ญํ ์ ์ทจ์ํ๋ ค๋ฉด ํ์ฉ ์ ์ฑ
์ bindings
๋ฐฐ์ด์์ ์ฃผ ๊ตฌ์ฑ์์ด๋ ๋ฐ์ธ๋ฉ์ ์ญ์ ํฉ๋๋ค.
C#
IAM์ฉ ํด๋ผ์ด์ธํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ค์นํ๊ณ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ IAM ํด๋ผ์ด์ธํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฐธ์กฐํ์ธ์. ์์ธํ ๋ด์ฉ์ IAM C# API ์ฐธ๊ณ ๋ฌธ์๋ฅผ ์ฐธ์กฐํ์ธ์.
IAM์ ์ธ์ฆํ๋ ค๋ฉด ์ ํ๋ฆฌ์ผ์ด์ ๊ธฐ๋ณธ ์ฌ์ฉ์ ์ธ์ฆ ์ ๋ณด๋ฅผ ์ค์ ํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ ์์ํ๊ธฐ ์ ์๋ฅผ ์ฐธ์กฐํ์ธ์.
Resource Manager์ ์ธ์ฆํ๋ ค๋ฉด ์ ํ๋ฆฌ์ผ์ด์ ๊ธฐ๋ณธ ์ฌ์ฉ์ ์ธ์ฆ ์ ๋ณด๋ฅผ ์ค์ ํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ ์์ํ๊ธฐ ์ ์๋ฅผ ์ฐธ์กฐํ์ธ์.
Resource Manager์ ๋ํด ํด๋ผ์ด์ธํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ค์นํ๊ณ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ Resource Manager ํด๋ผ์ด์ธํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฐธ์กฐํ์ธ์.
Go
IAM์ฉ ํด๋ผ์ด์ธํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ค์นํ๊ณ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ IAM ํด๋ผ์ด์ธํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฐธ์กฐํ์ธ์. ์์ธํ ๋ด์ฉ์ IAM Go API ์ฐธ๊ณ ๋ฌธ์๋ฅผ ์ฐธ์กฐํ์ธ์.
IAM์ ์ธ์ฆํ๋ ค๋ฉด ์ ํ๋ฆฌ์ผ์ด์ ๊ธฐ๋ณธ ์ฌ์ฉ์ ์ธ์ฆ ์ ๋ณด๋ฅผ ์ค์ ํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ ์์ํ๊ธฐ ์ ์๋ฅผ ์ฐธ์กฐํ์ธ์.
Resource Manager์ ์ธ์ฆํ๋ ค๋ฉด ์ ํ๋ฆฌ์ผ์ด์ ๊ธฐ๋ณธ ์ฌ์ฉ์ ์ธ์ฆ ์ ๋ณด๋ฅผ ์ค์ ํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ ์์ํ๊ธฐ ์ ์๋ฅผ ์ฐธ์กฐํ์ธ์.
Resource Manager์ ๋ํด ํด๋ผ์ด์ธํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ค์นํ๊ณ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ Resource Manager ํด๋ผ์ด์ธํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฐธ์กฐํ์ธ์.
Java
IAM์ฉ ํด๋ผ์ด์ธํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ค์นํ๊ณ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ IAM ํด๋ผ์ด์ธํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฐธ์กฐํ์ธ์. ์์ธํ ๋ด์ฉ์ IAM Java API ์ฐธ๊ณ ๋ฌธ์๋ฅผ ์ฐธ์กฐํ์ธ์.
IAM์ ์ธ์ฆํ๋ ค๋ฉด ์ ํ๋ฆฌ์ผ์ด์ ๊ธฐ๋ณธ ์ฌ์ฉ์ ์ธ์ฆ ์ ๋ณด๋ฅผ ์ค์ ํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ ์์ํ๊ธฐ ์ ์๋ฅผ ์ฐธ์กฐํ์ธ์.
Resource Manager์ ์ธ์ฆํ๋ ค๋ฉด ์ ํ๋ฆฌ์ผ์ด์ ๊ธฐ๋ณธ ์ฌ์ฉ์ ์ธ์ฆ ์ ๋ณด๋ฅผ ์ค์ ํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ ์์ํ๊ธฐ ์ ์๋ฅผ ์ฐธ์กฐํ์ธ์.
Resource Manager์ ๋ํด ํด๋ผ์ด์ธํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ค์นํ๊ณ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ Resource Manager ํด๋ผ์ด์ธํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฐธ์กฐํ์ธ์.
Python
IAM์ฉ ํด๋ผ์ด์ธํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ค์นํ๊ณ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ IAM ํด๋ผ์ด์ธํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฐธ์กฐํ์ธ์. ์์ธํ ๋ด์ฉ์ IAM Python API ์ฐธ๊ณ ๋ฌธ์๋ฅผ ์ฐธ์กฐํ์ธ์.
IAM์ ์ธ์ฆํ๋ ค๋ฉด ์ ํ๋ฆฌ์ผ์ด์ ๊ธฐ๋ณธ ์ฌ์ฉ์ ์ธ์ฆ ์ ๋ณด๋ฅผ ์ค์ ํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ ์์ํ๊ธฐ ์ ์๋ฅผ ์ฐธ์กฐํ์ธ์.
Resource Manager์ ์ธ์ฆํ๋ ค๋ฉด ์ ํ๋ฆฌ์ผ์ด์ ๊ธฐ๋ณธ ์ฌ์ฉ์ ์ธ์ฆ ์ ๋ณด๋ฅผ ์ค์ ํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ ์์ํ๊ธฐ ์ ์๋ฅผ ์ฐธ์กฐํ์ธ์.
Resource Manager์ ๋ํด ํด๋ผ์ด์ธํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ค์นํ๊ณ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ Resource Manager ํด๋ผ์ด์ธํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฐธ์กฐํ์ธ์.
REST
get-iam-policy
๋ช
๋ น์ด์์ ๋ฐํ๋ JSON ๋๋ YAML ํ์ฉ ์ ์ฑ
์ ์์ ํด ์ญํ ์ ์ทจ์ํฉ๋๋ค. ์
๋ฐ์ดํธ๋ ํ์ฉ ์ ์ฑ
์ ์ค์ ํด์ผ๋ง ์ด ๋ณ๊ฒฝ์ฌํญ์ด ์ ์ฉ๋ฉ๋๋ค.
์ฃผ ๊ตฌ์ฑ์์ ์ญํ ์ ์ทจ์ํ๋ ค๋ฉด ํ์ฉ ์ ์ฑ
์ bindings
๋ฐฐ์ด์์ ์ฃผ ๊ตฌ์ฑ์์ด๋ ๋ฐ์ธ๋ฉ์ ์ญ์ ํฉ๋๋ค.
ํ์ฉ ์ ์ฑ ์ค์
์ญํ ์ ๋ถ์ฌํ๊ณ ์ทจ์ํ๋๋ก ํ์ฉ ์ ์ฑ
์ ์์ ํ ํ์๋ setIamPolicy()
๋ฅผ ํธ์ถํ์ฌ ์ ์ฑ
์ ์
๋ฐ์ดํธํฉ๋๋ค.
gcloud
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
-
๋ฆฌ์์ค์ ํ์ฉ ์ ์ฑ ์ ์ค์ ํ๋ ค๋ฉด ๋ฆฌ์์ค์ ๋ํด
set-iam-policy
๋ช ๋ น์ด๋ฅผ ์คํํฉ๋๋ค.gcloud RESOURCE_TYPE set-iam-policy RESOURCE_ID PATH
๋ค์ ๊ฐ์ ์ ๊ณตํฉ๋๋ค.
-
RESOURCE_TYPE
: ํ์ฉ ์ ์ฑ ์ ์ค์ ํ๋ ค๋ ๋ฆฌ์์ค ์ ํ์ ๋๋ค.projects
,resource-manager folders
,organizations
์ค ํ ๊ฐ์ง ๊ฐ์ ์ฌ์ฉํฉ๋๋ค. -
RESOURCE_ID
: Google Cloud ํ๋ก์ ํธ, ํด๋, ์กฐ์ง ID์ ๋๋ค. ํ๋ก์ ํธ ID๋my-project
์ ๊ฐ์ ์์ซ์์ ๋๋ค. ํด๋ ๋ฐ ์กฐ์ง ID๋123456789012
์ ๊ฐ์ ์ซ์์ ๋๋ค. -
PATH
: ์ ํ์ฉ ์ ์ฑ ์ด ํฌํจ๋ ํ์ผ์ ๊ฒฝ๋ก์ ๋๋ค.
์๋ต์๋ ์ ๋ฐ์ดํธ๋ ํ์ฉ ์ ์ฑ ์ด ํฌํจ๋ฉ๋๋ค.
์๋ฅผ ๋ค์ด ๋ค์ ๋ช ๋ น์ด๋
policy.json
์ ์ ์ฅ๋ ํ์ฉ ์ ์ฑ ์my-project
ํ๋ก์ ํธ์ ํ์ฉ ์ ์ฑ ์ผ๋ก ์ค์ ํฉ๋๋ค.gcloud projects set-iam-policy my-project ~/policy.json
-
C#
Java
Resource Manager์ ์ธ์ฆํ๋ ค๋ฉด ์ ํ๋ฆฌ์ผ์ด์ ๊ธฐ๋ณธ ์ฌ์ฉ์ ์ธ์ฆ ์ ๋ณด๋ฅผ ์ค์ ํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ ์์ํ๊ธฐ ์ ์๋ฅผ ์ฐธ์กฐํ์ธ์.
Resource Manager์ ๋ํด ํด๋ผ์ด์ธํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ค์นํ๊ณ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ Resource Manager ํด๋ผ์ด์ธํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฐธ์กฐํ์ธ์.
๋ค์ ์์์์๋ ํ๋ก์ ํธ์ ๋ํ ํ์ฉ ์ ์ฑ ์ ์ค์ ํ๋ ๋ฐฉ๋ฒ์ ๋ณด์ฌ์ค๋๋ค. ํด๋ ๋๋ ์กฐ์ง์ ํ์ฉ ์ ์ฑ ์ ์ค์ ํ๋ ๋ฐฉ๋ฒ์ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ Resource Manager ํด๋ผ์ด์ธํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ฌธ์๋ฅผ ์ฐธ์กฐํ์ธ์.
Python
Resource Manager์ ์ธ์ฆํ๋ ค๋ฉด ์ ํ๋ฆฌ์ผ์ด์ ๊ธฐ๋ณธ ์ฌ์ฉ์ ์ธ์ฆ ์ ๋ณด๋ฅผ ์ค์ ํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ ์์ํ๊ธฐ ์ ์๋ฅผ ์ฐธ์กฐํ์ธ์.
Resource Manager์ ๋ํด ํด๋ผ์ด์ธํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ค์นํ๊ณ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ Resource Manager ํด๋ผ์ด์ธํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฐธ์กฐํ์ธ์.
๋ค์ ์์์์๋ ํ๋ก์ ํธ์ ๋ํ ํ์ฉ ์ ์ฑ ์ ์ค์ ํ๋ ๋ฐฉ๋ฒ์ ๋ณด์ฌ์ค๋๋ค. ํด๋ ๋๋ ์กฐ์ง์ ํ์ฉ ์ ์ฑ ์ ์ค์ ํ๋ ๋ฐฉ๋ฒ์ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ Resource Manager ํด๋ผ์ด์ธํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ฌธ์๋ฅผ ์ฐธ์กฐํ์ธ์.
REST
Resource Manager API์ setIamPolicy
๋ฉ์๋๋ ์์ฒญ์ ์ ์ฑ
์ ํ๋ก์ ํธ, ํด๋, ์กฐ์ง์ ์ ํ์ฉ ์ ์ฑ
์ผ๋ก ์ค์ ํฉ๋๋ค.
์์ฒญ ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํ๊ธฐ ์ ์ ๋ค์์ ๋ฐ๊ฟ๋๋ค.
API_VERSION
: ์ฌ์ฉํ API ๋ฒ์ ์ ๋๋ค. ํ๋ก์ ํธ ๋ฐ ์กฐ์ง์v1
์ ์ฌ์ฉํฉ๋๋ค. ํด๋์๋v2
๋ฅผ ์ฌ์ฉํฉ๋๋ค.RESOURCE_TYPE
: ์ ์ฑ ์ ๊ด๋ฆฌํ ๋ฆฌ์์ค ์ ํ.projects
,folders
,organizations
๊ฐ์ ์ฌ์ฉํฉ๋๋ค.RESOURCE_ID
: Google Cloudํ๋ก์ ํธ, ์กฐ์ง, ํด๋ ID์ ๋๋ค. ํ๋ก์ ํธ ID๋my-project
์ ๊ฐ์ ์์ซ์ ๋ฌธ์์ด์ ๋๋ค. ํด๋ ๋ฐ ์กฐ์ง ID๋123456789012
์ ๊ฐ์ ์ซ์์ ๋๋ค.-
POLICY
: ์ค์ ํ๋ ค๋ ์ ์ฑ ์ JSON ํํ์ ๋๋ค. ์ ์ฑ ํ์์ ๋ํ ์์ธํ ๋ด์ฉ์ ์ ์ฑ ์ฐธ์กฐ๋ฅผ ํ์ธํ์ธ์.
HTTP ๋ฉ์๋ ๋ฐ URL:
POST https://cloudresourcemanager.googleapis.com/API_VERSION/RESOURCE_TYPE/RESOURCE_ID:setIamPolicy
JSON ์์ฒญ ๋ณธ๋ฌธ:
{ "policy": POLICY }
์์ฒญ์ ๋ณด๋ด๋ ค๋ฉด ๋ค์ ์ต์ ์ค ํ๋๋ฅผ ํผ์นฉ๋๋ค.
์๋ต์๋ ์ ๋ฐ์ดํธ๋ ํ์ฉ ์ ์ฑ ์ด ํฌํจ๋ฉ๋๋ค.
๋ค์ ๋จ๊ณ
- ์๋น์ค ๊ณ์ ์ ๋ํ ์ก์ธ์ค ๊ด๋ฆฌ ๋ฐฉ๋ฒ ์์๋ณด๊ธฐ
- ๋ค๋ฅธ ๋ฆฌ์์ค์ ๋ํ ์ก์ธ์ค ๊ด๋ฆฌ ์ผ๋ฐ ๋จ๊ณ ์์๋ณด๊ธฐ
- ๊ฐ์ฅ ์ ํฉํ ์ฌ์ ์ ์๋ ์ญํ ์ ํ ๋ฐฉ๋ฒ ์ฐพ์๋ณด๊ธฐ
- ์ ์ฑ ๋ฌธ์ ํด๊ฒฐ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ์ฌ ์ฌ์ฉ์์๊ฒ ๋ฆฌ์์ค์ ๋ํ ์ก์ธ์ค ๊ถํ ๋๋ API ํธ์ถ ๊ถํ์ด ํฌํจ๋๊ฑฐ๋ ํฌํจ๋์ง ์๋ ์ด์ ์์๋ณด๊ธฐ
- ํน์ ๋ฆฌ์์ค์ ๋ํด ๋ถ์ฌํ ์ ์๋ ์ญํ ์ ํ์ธํ๋ ๋ฐฉ๋ฒ ์์๋ณด๊ธฐ
- ์กฐ๊ฑด๋ถ ์ญํ ๋ฐ์ธ๋ฉ์ผ๋ก ์ฃผ ๊ตฌ์ฑ์์ ์ก์ธ์ค ์กฐ๊ฑด ์์ฑ ๋ฐฉ๋ฒ ์์๋ณด๊ธฐ
- IAP(Identity-Aware Proxy)๋ก ์ ํ๋ฆฌ์ผ์ด์ ๋ณด์์ ๊ฐํํ๋ ๋ฐฉ๋ฒ ์์๋ณด๊ธฐ
์ง์ ์ฌ์ฉํด ๋ณด๊ธฐ
Google Cloud๋ฅผ ์ฒ์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ๊ณ์ ์ ๋ง๋ค๊ณ Google ์ ํ์ ์ค์ ์ฑ๋ฅ์ ํ๊ฐํด ๋ณด์ธ์. ์ ๊ท ๊ณ ๊ฐ์๊ฒ๋ ์ํฌ๋ก๋๋ฅผ ์คํ, ํ ์คํธ, ๋ฐฐํฌํ๋ ๋ฐ ์ฌ์ฉํ ์ ์๋ $300์ ๋ฌด๋ฃ ํฌ๋ ๋ง์ด ์ ๊ณต๋ฉ๋๋ค.
๋ฌด๋ฃ๋ก ์์ํ๊ธฐ