์ด ํ์ด์ง์์๋ ๊ธฐ์กด ์ํฌ๋ก๋ ์์ด๋ดํฐํฐ ํ ๋ฐ ID ๊ณต๊ธ์ ์ฒด๋ฅผ ๊ด๋ฆฌํ๋ ๋ฐฉ๋ฒ์ ์ค๋ช ํฉ๋๋ค.
Google Cloud ์ฝ์, Google Cloud CLI ๋๋ REST API๋ฅผ ์ฌ์ฉํ์ฌ ํ๊ณผ ์ ๊ณต์ ์ฒด๋ฅผ ๊ด๋ฆฌํ ์ ์์ต๋๋ค.
์์ํ๊ธฐ ์ ์
์ํฌ๋ก๋ ์์ด๋ดํฐํฐ ํ์ ๋ง๋ญ๋๋ค. ์์ธํ ๋ฐฉ๋ฒ์ ๋ค์ ํ์ด์ง ์ค ํ๋๋ฅผ ์ฐธ์กฐํ์ธ์.
- AWS์์ ๋ฆฌ์์ค ์ก์ธ์ค
- Microsoft Azure์์ ๋ฆฌ์์ค ์ก์ธ์ค
- OIDC ID ๊ณต๊ธ์ ์ฒด์์ ๋ฆฌ์์ค ์ก์ธ์ค
- SAML 2.0 ID ๊ณต๊ธ์ ์ฒด์์ ๋ฆฌ์์ค ์ก์ธ์ค
ํ์ํ ์ญํ
์ํฌ๋ก๋ ์์ด๋ดํฐํฐ ํ๊ณผ ์ ๊ณต์ ์ฒด๋ฅผ ๊ด๋ฆฌํ๋ ๋ฐ ํ์ํ ๊ถํ์ ์ป์ผ๋ ค๋ฉด ๊ด๋ฆฌ์์๊ฒ ํ๋ก์ ํธ์ ๋ํ ๋ค์ IAM ์ญํ ์ ๋ถ์ฌํด ๋ฌ๋ผ๊ณ ์์ฒญํ์ธ์.
-
ํ๊ณผ ์ ๊ณต์
์ฒด๋ฅผ ๋ณด๋ ค๋ ๊ฒฝ์ฐ: IAM ์ํฌ๋ก๋ ์์ด๋ดํฐํฐ ํ ๋ทฐ์ด(
roles/iam.workloadIdentityPoolViewer
) -
ํ๊ณผ ์ ๊ณต์
์ฒด๋ฅผ ๋ณด๊ณ ๋ง๋ค๊ณ ์
๋ฐ์ดํธํ๊ณ ์ญ์ ํ๋ ค๋ ๊ฒฝ์ฐ: IAM ์ํฌ๋ก๋ ์์ด๋ดํฐํฐ ํ ๊ด๋ฆฌ์(
roles/iam.workloadIdentityPoolAdmin
)
์ญํ ๋ถ์ฌ์ ๋ํ ์์ธํ ๋ด์ฉ์ ํ๋ก์ ํธ, ํด๋, ์กฐ์ง์ ๋ํ ์ก์ธ์ค ๊ด๋ฆฌ๋ฅผ ์ฐธ์กฐํ์ธ์.
์ด๋ฌํ ์ฌ์ ์ ์๋ ์ญํ ์๋ ์ํฌ๋ก๋ ์์ด๋ดํฐํฐ ํ๊ณผ ์ ๊ณต์ ์ฒด๋ฅผ ๊ด๋ฆฌํ๋ ๋ฐ ํ์ํ ๊ถํ์ด ํฌํจ๋์ด ์์ต๋๋ค. ํ์ํ ์ ํํ ๊ถํ์ ๋ณด๋ ค๋ฉด ํ์ ๊ถํ ์น์ ์ ํผ์น์ธ์.
ํ์ ๊ถํ
์ํฌ๋ก๋ ์์ด๋ดํฐํฐ ํ๊ณผ ์ ๊ณต์ ์ฒด๋ฅผ ๊ด๋ฆฌํ๋ ค๋ฉด ๋ค์ ๊ถํ์ด ํ์ํฉ๋๋ค.
-
์ํฌ๋ก๋ ์์ด๋ดํฐํฐ ํ ๋ฐ ๊ณต๊ธ์
์ฒด ๋ณด๊ธฐ:
-
iam.googleapis.com/workloadIdentityPoolProviders.get
-
iam.googleapis.com/workloadIdentityPoolProviders.list
-
iam.googleapis.com/workloadIdentityPools.get
-
iam.googleapis.com/workloadIdentityPools.list
-
-
-
ํ ๋ฐ ๊ณต๊ธ์
์ฒด ์์ฑ, ์
๋ฐ์ดํธ, ์ญ์ :
-
iam.googleapis.com/workloadIdentityPoolProviders.create
-
iam.googleapis.com/workloadIdentityPoolProviders.delete
-
iam.googleapis.com/workloadIdentityPoolProviders.undelete
-
iam.googleapis.com/workloadIdentityPoolProviders.update
-
iam.googleapis.com/workloadIdentityPools.create
-
iam.googleapis.com/workloadIdentityPools.delete
-
iam.googleapis.com/workloadIdentityPools.undelete
-
iam.googleapis.com/workloadIdentityPools.update
-
-
์ปค์คํ ์ญํ ์ด๋ ๋ค๋ฅธ ์ฌ์ ์ ์๋ ์ญํ ์ ์ฌ์ฉํ์ฌ ์ด ๊ถํ์ ๋ถ์ฌ๋ฐ์ ์๋ ์์ต๋๋ค.
์ํฌ๋ก๋ ์์ด๋ดํฐํฐ ํ ๊ด๋ฆฌ
์ด ์น์ ์์๋ ์ํฌ๋ก๋ ์์ด๋ดํฐํฐ ํ์ ๊ด๋ฆฌํ๋ ๋ฐฉ๋ฒ์ ๋ณด์ฌ์ค๋๋ค.
ํ ๋ง๋ค๊ธฐ
ํ๋ก์ ํธ์ ์ํฌ๋ก๋ ์์ด๋ดํฐํฐ ํ์ ๋ง๋ค๋ ค๋ฉด ๋ค์์ ์ํํฉ๋๋ค.
์ฝ์
Google Cloud ์ฝ์์์ ์ํฌ๋ก๋ ์์ด๋ดํฐํฐ ํ ํ์ด์ง๋ก ์ด๋ํฉ๋๋ค.
gcloud
gcloud iam workload-identity-pools create
๋ช
๋ น์ด๋ฅผ ์คํํฉ๋๋ค.
REST
projects.locations.workloadIdentityPools.create()
๋ฅผ ํธ์ถํฉ๋๋ค.
ํ ๋์ด
ํ๋ก์ ํธ์ ๋ชจ๋ ์ํฌ๋ก๋ ์์ด๋ดํฐํฐ ํ์ ๋์ดํ๋ ค๋ฉด ๋ค์์ ์ํํฉ๋๋ค.
์ฝ์
Google Cloud ์ฝ์์์ ์ํฌ๋ก๋ ์์ด๋ดํฐํฐ ํ ํ์ด์ง๋ก ์ด๋ํฉ๋๋ค.
gcloud
gcloud iam workload-identity-pools list
๋ช
๋ น์ด๋ฅผ ์คํํฉ๋๋ค.
REST
projects.locations.workloadIdentityPools.list()
๋ฅผ ํธ์ถํฉ๋๋ค.
ํ ๊ฐ์ ธ์ค๊ธฐ
ํน์ ์ํฌ๋ก๋ ์์ด๋ดํฐํฐ ํ์ ์ธ๋ถ์ ๋ณด๋ฅผ ๊ฐ์ ธ์ค๋ ค๋ฉด ๋ค์์ ์ํํฉ๋๋ค.
์ฝ์
Google Cloud ์ฝ์์์ ์ํฌ๋ก๋ ์์ด๋ดํฐํฐ ํ ํ์ด์ง๋ก ์ด๋ํฉ๋๋ค.
๋ณด๋ ค๋ ์ํฌ๋ก๋ ์์ด๋ดํฐํฐ ํ์ ์ฐพ์ ํ
์์ ์์ด์ฝ์ ํด๋ฆญํฉ๋๋ค. Google Cloud ์ฝ์์ ์ํฌ๋ก๋ ์์ด๋ดํฐํฐ ํ์ ๋ํ ์ธ๋ถ์ ๋ณด๊ฐ ํ์๋ฉ๋๋ค.
gcloud
gcloud iam workload-identity-pools describe
๋ช
๋ น์ด๋ฅผ ์คํํฉ๋๋ค.
REST
projects.locations.workloadIdentityPools.get()
๋ฅผ ํธ์ถํฉ๋๋ค.
ํ ์ ๋ฐ์ดํธ
์ํฌ๋ก๋ ์์ด๋ดํฐํฐ ํ์ ์ฌ์ฉ ์ค์ ํ๊ฑฐ๋ ์ค์งํ ์ ์์ต๋๋ค. ํ์ ์ด๋ฆ์ด๋ ์ค๋ช ์ ๋ณ๊ฒฝํ ์๋ ์์ต๋๋ค.
๊ธฐ์กด ์ํฌ๋ก๋ ์์ด๋ดํฐํฐ ํ์ ์ ๋ฐ์ดํธํ๋ ค๋ฉด ๋ค์์ ์ํํฉ๋๋ค.
์ฝ์
Google Cloud ์ฝ์์์ ์ํฌ๋ก๋ ์์ด๋ดํฐํฐ ํ ํ์ด์ง๋ก ์ด๋ํฉ๋๋ค.
์์ ํ๋ ค๋ ์ํฌ๋ก๋ ์์ด๋ดํฐํฐ ํ์ ์ฐพ์ ํ
์์ ์์ด์ฝ์ ํด๋ฆญํฉ๋๋ค.์ํฌ๋ก๋ ์์ด๋ดํฐํฐ ํ์ ์ฌ์ฉ ์ค์งํ๊ฑฐ๋ ์ฌ์ฉ ์ค์ ํ๋ ค๋ฉด ์ํ ์ ํ์ ํด๋ฆญํ ๋ค์ ์ฌ์ฉ ์ค์ง ๋๋ ์ฌ์ฉ ์ค์ ์ ํด๋ฆญํฉ๋๋ค.
ํ์ ์ด๋ฆ์ ์์ ํ๋ ค๋ฉด ํ์ ์ด๋ฆ ์์ ์๋
์์ ์ ํด๋ฆญํฉ๋๋ค. ์ด๋ฆ์ ์ ๋ฐ์ดํธํ ํ ์ ์ฅ์ ํด๋ฆญํฉ๋๋ค.์ค๋ช ์ ์์ ํ๋ ค๋ฉด gcloud CLI ๋๋ REST API๋ฅผ ์ฌ์ฉํฉ๋๋ค.
gcloud
gcloud iam workload-identity-pools update
๋ช
๋ น์ด๋ฅผ ์คํํฉ๋๋ค.
REST
projects.locations.workloadIdentityPools.patch()
๋ฅผ ํธ์ถํฉ๋๋ค.
ํ ์ญ์
์ํฌ๋ก๋ ์์ด๋ดํฐํฐ ํ์ ์ญ์ ํ๋ฉด ์ํฌ๋ก๋ ์์ด๋ดํฐํฐ ํ ์ ๊ณต์ ์ฒด๋ ์ญ์ ๋ฉ๋๋ค. ๋ฐ๋ผ์ ํ์ ID์์Google Cloud ๋ฆฌ์์ค์ ์ก์ธ์คํ ์ ์์ต๋๋ค.
์ญ์ ํ ์ต๋ 30์ผ ๋์ ํ ์ญ์ ๋ฅผ ์ทจ์ํ ์ ์์ต๋๋ค. 30์ผ ํ์๋ ์๊ตฌ์ ์ผ๋ก ์ญ์ ๋ฉ๋๋ค. ํ์ด ์๊ตฌ์ ์ผ๋ก ์ญ์ ๋ ๋๊น์ง๋ ์ ์ํฌ๋ก๋ ์์ด๋ดํฐํฐ ํ์ ๋ง๋ค ๋ ํด๋น ์ด๋ฆ์ ๋ค์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
์ํฌ๋ก๋ ์์ด๋ดํฐํฐ ํ ๋ฐ ID ๊ณต๊ธ์ ์ฒด๋ฅผ ์ญ์ ํ๋ ค๋ฉด ๋ค์์ ์ํํฉ๋๋ค.
์ฝ์
Google Cloud ์ฝ์์์ ์ํฌ๋ก๋ ์์ด๋ดํฐํฐ ํ ํ์ด์ง๋ก ์ด๋ํฉ๋๋ค.
์ญ์ ํ๋ ค๋ ์ํฌ๋ก๋ ์์ด๋ดํฐํฐ ํ์ ์ฐพ์ ํ
์์ ์์ด์ฝ์ ํด๋ฆญํฉ๋๋ค.ํ ์ญ์ ๋ฅผ ํด๋ฆญํ ํ ์ญ์ ๋ฅผ ํด๋ฆญํฉ๋๋ค. ์ํฌ๋ก๋ ์์ด๋ดํฐํฐ ํ๊ณผ ID ๊ณต๊ธ์ ์ฒด๊ฐ ์ญ์ ๋ฉ๋๋ค.
gcloud
gcloud iam workload-identity-pools delete
๋ช
๋ น์ด๋ฅผ ์คํํฉ๋๋ค.
REST
projects.locations.workloadIdentityPools.delete()
๋ฅผ ํธ์ถํฉ๋๋ค.
ํ ์ญ์ ์ทจ์
์ญ์ ๋ ์ํฌ๋ก๋ ์์ด๋ดํฐํฐ ํ์ ์ญ์ ํ ์ต๋ 30์ผ ์ด๋ด์ ๋ณต๊ตฌํ ์ ์์ต๋๋ค.
ํ์ ์ญ์ ์ทจ์ํ๋ ค๋ฉด ๋ค์์ ์ํํฉ๋๋ค.
์ฝ์
Google Cloud ์ฝ์์์ ์ํฌ๋ก๋ ์์ด๋ดํฐํฐ ํ ํ์ด์ง๋ก ์ด๋ํฉ๋๋ค.
์ญ์ ๋ ํ ๋ฐ ๊ณต๊ธ์ ์ฒด ํ์ ์ ํ ๋ฒํผ์ ํด๋ฆญํฉ๋๋ค.
์ญ์ ์ทจ์ํ ์ํฌ๋ก๋ ์์ด๋ดํฐํฐ ํ์ ์ฐพ์ ํ
๋ณต์ ์์ด์ฝ์ ํด๋ฆญํฉ๋๋ค.๋ณต์์ ํด๋ฆญํฉ๋๋ค. ํ๊ณผ ํด๋น ๊ณต๊ธ์ ์ฒด๊ฐ ๋ณต์๋ฉ๋๋ค.
gcloud
gcloud iam workload-identity-pools undelete
๋ช
๋ น์ด๋ฅผ ์คํํฉ๋๋ค.
REST
projects.locations.workloadIdentityPools.undelete()
๋ฅผ ํธ์ถํฉ๋๋ค.
์ํฌ๋ก๋ ์์ด๋ดํฐํฐ ํ ์ ๊ณต์ ์ฒด ๊ด๋ฆฌ
์ด ์น์ ์์๋ ์ํฌ๋ก๋ ์์ด๋ดํฐํฐ ํ ์ ๊ณต์ ์ฒด๋ฅผ ๊ด๋ฆฌํ๋ ๋ฐฉ๋ฒ์ ๋ณด์ฌ์ค๋๋ค.
๊ณต๊ธ์ ์ฒด ๋ง๋ค๊ธฐ
๊ธฐ์กด ์ํฌ๋ก๋ ์์ด๋ดํฐํฐ ํ์์ ์ํฌ๋ก๋ ์์ด๋ดํฐํฐ ํ ์ ๊ณต์ ์ฒด๋ฅผ ๋ง๋ค๋ ค๋ฉด ๋ค์์ ์ํํฉ๋๋ค.
์ฝ์
Google Cloud ์ฝ์์์ ์ํฌ๋ก๋ ์์ด๋ดํฐํฐ ํ ํ์ด์ง๋ก ์ด๋ํฉ๋๋ค.
๊ณต๊ธ์ ์ฒด๋ฅผ ์ถ๊ฐํ ์ํฌ๋ก๋ ์์ด๋ดํฐํฐ ํ์ ์ฐพ์ ํ
์์ ์์ด์ฝ์ ํด๋ฆญํฉ๋๋ค.๊ณต๊ธ์ ์ฒด ์ถ๊ฐ๋ฅผ ํด๋ฆญํฉ๋๋ค.
๋ง๋ค๋ ค๋ ๊ณต๊ธ์ ์ฒด ์ ํ์ ์ ํํฉ๋๋ค.
- AWS: Amazon Web Services(AWS) ID ๊ณต๊ธ์ ์ฒด์ ๋๋ค.
- OpenID Connect(OIDC): OIDC ํธํ ID ๊ณต๊ธ์ ์ฒด์ ๋๋ค. ์ฌ๊ธฐ์๋ Microsoft Azure๊ฐ ํฌํจ๋ฉ๋๋ค.
๊ณต๊ธ์ ์ฒด์ ์ด๋ฆ์ ์ ๋ ฅํฉ๋๋ค.
Google Cloud ์ฝ์์์ ์ด ์ด๋ฆ์ ์ฌ์ฉํ์ฌ ๊ณต๊ธ์ ์ฒด ID๋ฅผ ๋ง๋ญ๋๋ค. ๊ณต๊ธ์ ์ฒด ID๋ฅผ ๋ณ๊ฒฝํ๋ ค๋ฉด ์์ ์ ํด๋ฆญํฉ๋๋ค. ๋์ค์ ์ด ๊ณต๊ธ์ ์ฒด ID๋ฅผ ๋ณ๊ฒฝํ ์ ์์ต๋๋ค.
๊ณต๊ธ์ ์ฒด์ ๋๋จธ์ง ํ๋๋ฅผ ์์ฑํฉ๋๋ค.
- AWS: AWS ๊ณ์ ID๋ฅผ ์ ๋ ฅํฉ๋๋ค.
- OIDC: ๋ฐ๊ธ๊ธฐ๊ด URL์ ์
๋ ฅํฉ๋๋ค. Azure์ ๊ฒฝ์ฐ ๋ฐ๊ธ๊ธฐ๊ด URL์
https://sts.windows.net/AZURE_TENANT_ID
ํ์์ ์ฌ์ฉํฉ๋๋ค. ๋ค๋ฅธ ์ ๊ณต์ ์ฒด์ ๊ฒฝ์ฐ ํด๋น ์ ๊ณต์ ์ฒด ๋ฌธ์๋ฅผ ์ฐธ์กฐํ์ธ์.
์๋ฃ๋๋ฉด ๊ณ์์ ํด๋ฆญํฉ๋๋ค.
์์ฑ ๋งคํ์ ๊ตฌ์ฑํ๋ ค๋ฉด ๋งคํ ์์ ์ ํด๋ฆญํฉ๋๋ค. ์์ฑ ๋งคํ์ ์ฌ์ฉํ๋ฉด ์ธ๋ถ ID์ ๋ํ ์ ๋ณด๋ฅผ ์ฌ์ฉํ์ฌ ID์ ํ์ ์งํฉ์ ๋ํ ์ก์ธ์ค ๊ถํ์ ๋ถ์ฌํ ์ ์์ต๋๋ค.
AWS: ์ด ๋จ๊ณ๋ ์ ํ์ฌํญ์ผ๋ก, ๊ธฐ๋ณธ ๋งคํ์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
์์ธํ ๋ด์ฉ์ AWS์ ID ๊ณต๊ธ์ ์ฒด ์ค์ ์ ์ฐธ์กฐํ์ธ์.
OIDC:
google.subject
๋ฅผassertion.sub
์ ๋งคํํ๋ ๊ฒ์ด ์ข์ต๋๋ค. ๋ค๋ฅธ ๋งคํ์ ์ ํ์ฌํญ์ ๋๋ค.์์ธํ ๋ด์ฉ์ Azure์ ID ๊ณต๊ธ์ ์ฒด ์ค์ ๋๋ OIDC์ ID ๊ณต๊ธ์ ์ฒด ์ค์ ์ ์ฐธ์กฐํ์ธ์.
์ ํ์ฌํญ: ์ธ์ฆ ๊ฐ๋ฅํ ID๋ฅผ ์ง์ ํ๋ ์์ฑ ์กฐ๊ฑด์ ์ ๊ณตํ๋ ค๋ฉด ์กฐ๊ฑด ์ถ๊ฐ๋ฅผ ํด๋ฆญํ๊ณ ์ฌ๋ฐ๋ฅธ Common Expression Language(CEL) ํํ์์ ์ ๋ ฅํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ ์์ฑ ์กฐ๊ฑด์ ์ฐธ์กฐํ์ธ์.
์ ์ฅ์ ํด๋ฆญํฉ๋๋ค. ์ํฌ๋ก๋ ์์ด๋ดํฐํฐ ํ ๊ณต๊ธ์ ์ฒด๊ฐ ์์ฑ๋ฉ๋๋ค.
gcloud
gcloud iam workload-identity-pools providers create-aws
๋ช
๋ น์ด๋ฅผ ์คํํ์ฌ AWS ๊ณต๊ธ์
์ฒด๋ฅผ ๋ง๋ญ๋๋ค.
gcloud iam workload-identity-pools providers create-oidc
๋ช
๋ น์ด๋ฅผ ์คํํ์ฌ OIDC ๊ณต๊ธ์
์ฒด๋ฅผ ๋ง๋ญ๋๋ค. ์ฌ๊ธฐ์๋ Microsoft Azure๊ฐ ํฌํจ๋ฉ๋๋ค.
REST
projects.locations.workloadIdentityPools.providers.create()
๋ฅผ ํธ์ถํฉ๋๋ค.
๊ณต๊ธ์ ์ฒด ๋์ด
ํ๋ก์ ํธ์ ์ํฌ๋ก๋ ์์ด๋ดํฐํฐ ํ ๊ณต๊ธ์ ์ฒด๋ฅผ ๋์ดํ๋ ค๋ฉด ๋ค์์ ์ํํฉ๋๋ค.
์ฝ์
Google Cloud ์ฝ์์์ ์ํฌ๋ก๋ ์์ด๋ดํฐํฐ ํ ํ์ด์ง๋ก ์ด๋ํฉ๋๋ค.
์ํฌ๋ก๋ ์์ด๋ดํฐํฐ ํ์ ๊ณต๊ธ์ ์ฒด๋ฅผ ๋ณด๋ ค๋ฉด ํ์
๋ ธ๋ ํ์ฅ ์์ด์ฝ์ ํด๋ฆญํฉ๋๋ค.
gcloud
gcloud iam workload-identity-pools providers list
๋ช
๋ น์ด๋ฅผ ์คํํฉ๋๋ค.
REST
projects.locations.workloadIdentityPools.providers.list()
๋ฅผ ํธ์ถํฉ๋๋ค.
๊ณต๊ธ์ ์ฒด ๊ฐ์ ธ์ค๊ธฐ
ํน์ ์ํฌ๋ก๋ ์์ด๋ดํฐํฐ ํ ์ ๊ณต์ ์ฒด์ ์ธ๋ถ์ ๋ณด๋ฅผ ๊ฐ์ ธ์ค๋ ค๋ฉด ๋ค์์ ์ํํฉ๋๋ค.
์ฝ์
Google Cloud ์ฝ์์์ ์ํฌ๋ก๋ ์์ด๋ดํฐํฐ ํ ํ์ด์ง๋ก ์ด๋ํฉ๋๋ค.
๊ณต๊ธ์ ์ฒด๊ฐ ํฌํจ๋ ์ํฌ๋ก๋ ์์ด๋ดํฐํฐ ํ์ ์ฐพ์ ํ ํ์
๋ ธ๋ ํ์ฅ ์์ด์ฝ์ ํด๋ฆญํฉ๋๋ค.๋ณด๋ ค๋ ์ํฌ๋ก๋ ์์ด๋ดํฐํฐ ํ ๊ณต๊ธ์ ์ฒด๋ฅผ ์ฐพ๊ณ
์์ ์์ด์ฝ์ ํด๋ฆญํฉ๋๋ค. Google Cloud ์ฝ์์ ๊ณต๊ธ์ ์ฒด์ ๋ํ ์์ธํ ์ ๋ณด๊ฐ ํ์๋ฉ๋๋ค.
gcloud
gcloud iam workload-identity-pools providers describe
๋ช
๋ น์ด๋ฅผ ์คํํฉ๋๋ค.
REST
projects.locations.workloadIdentityPools.providers.get()
๋ฅผ ํธ์ถํฉ๋๋ค.
๊ณต๊ธ์ ์ฒด ์ ๋ฐ์ดํธ
์ํฌ๋ก๋ ์์ด๋ดํฐํฐ ํ ์ ๊ณต์ ์ฒด๋ฅผ ์ฌ์ฉ ์ค์ ํ๊ฑฐ๋ ์ค์งํ ์ ์์ต๋๋ค. ๊ณ์ ์ ๋ณด, ์์ฑ ๋งคํ, ํ์ ์ด๋ฆ ๋ฐ ์ค๋ช ์ ์ ๋ฐ์ดํธํ ์๋ ์์ต๋๋ค.
๊ธฐ์กด ์ํฌ๋ก๋ ์์ด๋ดํฐํฐ ํ ์ ๊ณต์ ์ฒด๋ฅผ ์ ๋ฐ์ดํธํ๋ ค๋ฉด ๋ค์์ ์ํํฉ๋๋ค.
์ฝ์
Google Cloud ์ฝ์์์ ์ํฌ๋ก๋ ์์ด๋ดํฐํฐ ํ ํ์ด์ง๋ก ์ด๋ํฉ๋๋ค.
๊ณต๊ธ์ ์ฒด๊ฐ ํฌํจ๋ ์ํฌ๋ก๋ ์์ด๋ดํฐํฐ ํ์ ์ฐพ์ ํ ํ์
๋ ธ๋ ํ์ฅ ์์ด์ฝ์ ํด๋ฆญํฉ๋๋ค.์์ ํ๋ ค๋ ์ํฌ๋ก๋ ์์ด๋ดํฐํฐ ํ ๊ณต๊ธ์ ์ฒด๋ฅผ ์ฐพ์ ํ
์์ ์์ด์ฝ์ ํด๋ฆญํฉ๋๋ค.๊ณต๊ธ์ ์ฒด์ ์ ๋ณด๋ฅผ ์์ ํ ๋ค์ ์ ์ฅ์ ํด๋ฆญํฉ๋๋ค.
gcloud
gcloud iam workload-identity-pools providers update-aws
๋ช
๋ น์ด๋ฅผ ์คํํ์ฌ AWS ๊ณต๊ธ์
์ฒด๋ฅผ ์
๋ฐ์ดํธํฉ๋๋ค.
gcloud iam workload-identity-pools providers update-oidc
๋ช
๋ น์ด๋ฅผ ์คํํ์ฌ OIDC ๊ณต๊ธ์
์ฒด๋ฅผ ์
๋ฐ์ดํธํฉ๋๋ค. ์ฌ๊ธฐ์๋ Microsoft Azure๊ฐ ํฌํจ๋ฉ๋๋ค.
REST
projects.locations.workloadIdentityPools.providers.patch()
๋ฅผ ํธ์ถํฉ๋๋ค.
๊ณต๊ธ์ ์ฒด ์ญ์
์ํฌ๋ก๋ ์์ด๋ดํฐํฐ ํ ๊ณต๊ธ์ ์ฒด๋ฅผ ์ญ์ ํ๋ฉด ๊ณต๊ธ์ ์ฒด์ ID์์ Google Cloud ๋ฆฌ์์ค์ ๋ ์ด์ ์ก์ธ์คํ ์ ์์ต๋๋ค.
์ญ์ ํ ์ต๋ 30์ผ ๋์ ๊ณต๊ธ์ ์ฒด ์ญ์ ๋ฅผ ์ทจ์ํ ์ ์์ต๋๋ค. 30์ผ ํ์๋ ์๊ตฌ์ ์ผ๋ก ์ญ์ ๋ฉ๋๋ค. ๊ณต๊ธ์ ์ฒด๊ฐ ์๊ตฌ์ ์ผ๋ก ์ญ์ ๋ ๋๊น์ง๋ ์ ๊ณต๊ธ์ ์ฒด๋ฅผ ๋ง๋ค ๋ ํด๋น ์ด๋ฆ์ ์ฌ์ฌ์ฉํ ์ ์์ต๋๋ค.
์ํฌ๋ก๋ ์์ด๋ดํฐํฐ ํ ๊ณต๊ธ์ ์ฒด๋ฅผ ์ญ์ ํ๋ ค๋ฉด ๋ค์์ ์ํํฉ๋๋ค.
์ฝ์
Google Cloud ์ฝ์์์ ์ํฌ๋ก๋ ์์ด๋ดํฐํฐ ํ ํ์ด์ง๋ก ์ด๋ํฉ๋๋ค.
๊ณต๊ธ์ ์ฒด๊ฐ ํฌํจ๋ ์ํฌ๋ก๋ ์์ด๋ดํฐํฐ ํ์ ์ฐพ์ ํ ํด๋น
์์ ์์ด์ฝ์ ํด๋ฆญํฉ๋๋ค.๊ณต๊ธ์ ์ฒด ์ฐฝ์์ ์ญ์ ํ ๊ณต๊ธ์ ์ฒด๋ฅผ ์ฐพ์ ๋ค์
์ญ์ ์์ด์ฝ์ ํด๋ฆญํฉ๋๋ค.์ญ์ ๋ฅผ ํด๋ฆญํ์ฌ ๊ณต๊ธ์ ์ฒด๋ฅผ ์ญ์ ํฉ๋๋ค.
gcloud
gcloud iam workload-identity-pools providers delete
๋ช
๋ น์ด๋ฅผ ์คํํฉ๋๋ค.
REST
projects.locations.workloadIdentityPools.providers.delete()
๋ฅผ ํธ์ถํฉ๋๋ค.
๊ณต๊ธ์ ์ฒด ์ญ์ ์ทจ์
์ญ์ ๋ ์ํฌ๋ก๋ ์์ด๋ดํฐํฐ ํ ์ ๊ณต์ ์ฒด๋ฅผ ์ญ์ ํ ์ต๋ 30์ผ ์ด๋ด์ ๋ณต๊ตฌํ ์ ์์ต๋๋ค. ๊ณต๊ธ์ ์ฒด ์ญ์ ๋ฅผ ์ทจ์ํ๋ ค๋ฉด ๋ค์ ์๋ด๋ฅผ ๋ฐ๋ฅด์ธ์.
์ฝ์
Google Cloud ์ฝ์์์ ์ํฌ๋ก๋ ์์ด๋ดํฐํฐ ํ ํ์ด์ง๋ก ์ด๋ํฉ๋๋ค.
์ญ์ ๋ ํ ๋ฐ ๊ณต๊ธ์ ์ฒด ํ์ ์ ํ ๋ฒํผ์ ํด๋ฆญํฉ๋๋ค.
๊ณต๊ธ์ ์ฒด๊ฐ ํฌํจ๋ ์ํฌ๋ก๋ ์์ด๋ดํฐํฐ ํ์ ์ฐพ์ ํ ํ์
๋ ธ๋ ํ์ฅ ์์ด์ฝ์ ํด๋ฆญํฉ๋๋ค.์ญ์ ์ทจ์ํ ๊ณต๊ธ์ ์ฒด๋ฅผ ์ฐพ์ ํ
๋ณต์ ์์ด์ฝ์ ํด๋ฆญํฉ๋๋ค.๋ณต์์ ํด๋ฆญํฉ๋๋ค. ๊ณต๊ธ์ ์ฒด๊ฐ ๋ณต์๋ฉ๋๋ค.
gcloud
gcloud iam workload-identity-pools providers undelete
๋ช
๋ น์ด๋ฅผ ์คํํฉ๋๋ค.
REST
projects.locations.workloadIdentityPools.providers.undelete()
๋ฅผ ํธ์ถํฉ๋๋ค.
์ํฌ๋ก๋ ์์ด๋ดํฐํฐ ์ ํด ์ ์ฝ ์กฐ๊ฑด ๊ด๋ฆฌ
์กฐ์ง ์ ์ฑ ์ ์ฝ์กฐ๊ฑด์ ์ฌ์ฉํ์ฌ Google Cloud ์กฐ์ง์ ๋ฆฌ์์ค ์ฌ์ฉ ๋ฐฉ๋ฒ์ ์ ํํ ์ ์์ต๋๋ค.
์ด ์น์ ์์๋ ์ํฌ๋ก๋ ์์ด๋ดํฐํฐ ์ ํด๋ฅผ ์ฌ์ฉํ ๋ ๊ถ์ฅ๋๋ ์ ์ฝ ์กฐ๊ฑด์ ์ค๋ช ํฉ๋๋ค.
ID ๊ณต๊ธ์ ์ฒด ๊ตฌ์ฑ ์ ํ
์กฐ์ง ๊ด๋ฆฌ์๋ ์กฐ์ง์์ ์ ํดํ ์ ์๋ ID ๊ณต๊ธ์ ์ฒด๋ฅผ ๊ฒฐ์ ํ ์ ์์ต๋๋ค.
ํ์ฉ๋๋ ID ๊ณต๊ธ์
์ฒด๋ฅผ ๊ด๋ฆฌํ๋ ค๋ฉด ์กฐ์ง์ ์กฐ์ง ์ ์ฑ
์์ constraints/iam.workloadIdentityPoolProviders
๋ชฉ๋ก ์ ์ฝ์ ์ฌ์ฉ ์ค์ ํ์ธ์. ์ด ์ ์ฝ์ ํ์ฉ๋ ์ ๊ณต์
์ฒด์ ๋ฐ๊ธ๊ธฐ๊ด URI๋ฅผ ์ง์ ํฉ๋๋ค. Google Cloud ์ฝ์ ๋๋ Google Cloud CLI๋ฅผ ์ฌ์ฉํ์ฌ ์ด ์ ์ฝ์กฐ๊ฑด์ ์ฌ์ฉ ์ค์ ํ ์ ์์ต๋๋ค.
AWS์์์ ์ ํด๋ง ํ์ฉํ๋ ค๋ฉด URI https://sts.amazonaws.com
์ผ๋ก ๋จ์ผ ์ ์ฝ์กฐ๊ฑด์ ๋ง๋ญ๋๋ค. ๋ค์ ์์์์๋ gcloud CLI๋ฅผ ์ฌ์ฉํ์ฌ ์ด ์ ์ฝ์กฐ๊ฑด์ ๋ง๋๋ ๋ฐฉ๋ฒ์ ๋ณด์ฌ์ค๋๋ค.
gcloud resource-manager org-policies allow constraints/iam.workloadIdentityPoolProviders \ https://sts.amazonaws.com --organization=ORGANIZATION_NUMBER
Google Cloud ๋ฆฌ์์ค์ ์ก์ธ์คํ ์ ์๋ AWS ๊ณ์ ID๋ฅผ ์ง์ ํ ์๋ ์์ต๋๋ค. ๊ณ์ ID๋ฅผ ์ง์ ํ๋ ค๋ฉด constraints/iam.workloadIdentityPoolAwsAccounts
๋ชฉ๋ก ์ ์ฝ์กฐ๊ฑด์ ์ฌ์ฉํฉ๋๋ค.
gcloud resource-manager org-policies allow constraints/iam.workloadIdentityPoolAwsAccounts \ ACCOUNT_ID --organization=ORGANIZATION_NUMBER
ํ๋์ OIDC ๊ณต๊ธ์
์ฒด์ ์ ํด๋ง ํ์ฉํ๋ ค๋ฉด ํ์ฉ๋๋ ๊ณต๊ธ์
์ฒด์ issuer_uri
๋ฅผ ์ฌ์ฉํ์ฌ ๋จ์ผ ์ ์ฝ์กฐ๊ฑด์ ๋ง๋ญ๋๋ค. ์๋ฅผ ๋ค์ด ๋ค์์ ํน์ Azure ํ
๋ํธ์ ์ ํด๋ง ํ์ฉํฉ๋๋ค.
gcloud resource-manager org-policies allow constraints/iam.workloadIdentityPoolProviders \ https://sts.windows.net/AZURE_TENANT_ID --organization=ORGANIZATION_NUMBER
SAML ID ๊ณต๊ธ์ ์ฒด์ ์ ํด๋ ํน๋ณํ ๊ฒฝ์ฐ์ ๋๋ค. ์ด์ค์ ์ ํจ์ฑ์ ๊ฒ์ฌํ๋ ๋ฐ ์ฌ์ฉ๋๋ ๊ณต๊ฐ ํค๊ฐ ID ๊ณต๊ธ์ ์ฒด์์ ์ง์ ๊ฐ์ ธ์ค๋ ๋์ ๊ตฌ์ฑ ์๊ฐ์ ์ ๊ณต๋๊ธฐ ๋๋ฌธ์ ๋๋ค. ๋ฐ๋ผ์ ์ ์์ ์ธ ์ฌ์ฉ์๊ฐ ์กฐ์ง์ ID ๊ณต๊ธ์ ์ฒด์ ํญ๋ชฉ ID์ ๋น๊ณต๊ฐ ํค์ ๋ํ ์ก์ธ์ค ๊ถํ์ด ์๋ ๊ณต๊ฐ ํค๋ฅผ ์ฌ์ฉํ์ฌ SAML ๋ฉํ๋ฐ์ดํฐ ๋ฌธ์๋ฅผ ์ ๋ก๋ํ๋ ค๊ณ ํ ์ ์์ต๋๋ค. ์ด ์๋๋ฆฌ์ค์์ ์ ํด๋ฅผ ํญ๋ชฉ ID๋ณ๋ก ์ ํํ๋ฉด ๋ณด์์ด ์ทจ์ฝํ ๊ฒ์ ๋๋ค. ๋ฐ๋ผ์ ์กฐ์ง์ด ์ค์์์ ๊ด๋ฆฌํ๋ Google Cloud ํ๋ก์ ํธ์์ SAML ์ ํด๋ฅผ ํ์ฉํ๋ ์ํฌ๋ก๋ ์์ด๋ดํฐํฐ ํ ์์ฑ๋ง ํ์ฉํ๋ ๊ฒ์ด ์ข์ต๋๋ค. ๊ทธ๋ฐ ๋ค์ ํด๋น ์ํฌ๋ก๋ ์์ด๋ดํฐํฐ ํ์ ์ธ๋ถ ID์ ์กฐ์ง ์ ์ฒด์ ๋ฆฌ์์ค์ ๋ํ ์ก์ธ์ค ๊ถํ์ ๋ถ์ฌํ ์ ์์ต๋๋ค.
SAML ID ๊ณต๊ธ์
์ฒด์์ ์ ํด๋ฅผ ํ์ฉํ๋ ค๋ฉด ํน์ ํค์๋ KEY_UPLOAD
๋ฅผ ํ์ฉํ๋ ์ ์ฝ์กฐ๊ฑด์ ๋ง๋ญ๋๋ค.
gcloud resource-manager org-policies allow constraints/iam.workloadIdentityPoolProviders \ KEY_UPLOAD --organization=ORGANIZATION_NUMBER
์ด ๋ช ๋ น์ด๋ฅผ ๋ฐ๋ณตํ์ฌ ๋ค๋ฅธ ๊ณต๊ธ์ ์ฒด์ ์ ํด๋ฅผ ํ์ฉํ ์ ์์ต๋๋ค.
๋ชจ๋ ๊ณต๊ธ์ ์ฒด์์ ์ ํด๋ฅผ ์ฐจ๋จํ๋ ค๋ฉด ๋ค์ ์๋ด๋ฅผ ๋ฐ๋ฅด์ธ์.
๋ค์์ ํฌํจํ๋ YAML ํ์ผ์ ๋ง๋ญ๋๋ค.
constraint: constraints/iam.workloadIdentityPoolProviders listPolicy: allValues: DENY
ํ์ผ์
gcloud resource-manager org-policies set-policy
๋ช ๋ น์ด์ ์ ๋ฌํฉ๋๋ค.gcloud resource-manager org-policies set-policy FILE_NAME.yaml \ --organization=ORGANIZATION_NUMBER
์๋น์ค ๊ณ์ ํค ์์ฑ ์ ํ
์ํฌ๋ก๋ ์์ด๋ดํฐํฐ ์ ํด๋ฅผ ์ฌ์ฉํ๋ฉด ์๋น์ค ๊ณ์ ํค๋ฅผ ์ฌ์ฉํ์ง ์๊ณ ๋ Google Cloud ์ธ๋ถ์์ Google Cloud ๋ฆฌ์์ค์ ์ก์ธ์คํ ์ ์์ต๋๋ค. ์๋น์ค ๊ณ์ ํค๋ฅผ ์ฌ์ฉํ์ฌ ์ธ์ฆํ์ง ์๋ ๊ฒฝ์ฐ ํค ์์ฑ์ ์ค์งํ์ฌ ์ํ์ ์ค์ผ ์ ์์ต๋๋ค.
์๋น์ค ๊ณ์ ํค ์์ฑ์ ์ค์งํ๋ ค๋ฉด ์กฐ์ง์ ์กฐ์ง ์ ์ฑ
์ iam.disableServiceAccountKeyCreation
๋ถ๋ฆฌ์ธ ์ ์ฝ์ ์ ์ฉํฉ๋๋ค. ๋ํ iam.disableServiceAccountKeyUpload
๋ถ์ธ ์ ์ฝ์ ์ ์ฉํ์ฌ ์๋น์ค ๊ณ์ ์ ๋ํ ๊ณต๊ฐ ํค ์
๋ก๋๋ฅผ ์ฌ์ฉ ์ค์งํ ์๋ ์์ต๋๋ค.
Google Cloud ์ฝ์ ๋๋ gcloud CLI๋ฅผ ์ฌ์ฉํ์ฌ ์ด๋ฌํ ์ ์ฝ์กฐ๊ฑด์ ์ฌ์ฉ ์ค์ ํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด ๋ค์ gcloud CLI ๋ช ๋ น์ด๋ ๋ ์ ์ฝ์กฐ๊ฑด์ ๋ชจ๋ ์ฌ์ฉ ์ค์ ํฉ๋๋ค.
gcloud resource-manager org-policies enable-enforce \ constraints/iam.disableServiceAccountKeyCreation \ --organization=ORGANIZATION_NUMBER gcloud resource-manager org-policies enable-enforce \ constraints/iam.disableServiceAccountKeyUpload \ --organization=ORGANIZATION_NUMBER
์ํฌ๋ก๋ ์์ด๋ดํฐํฐ ์ ํด ๋ชจ๋ํฐ๋ง
Cloud Monitoring ์ธก์ ํญ๋ชฉ์ ์ฌ์ฉํ์ฌ ์ํฌ๋ก๋ ์์ด๋ดํฐํฐ ํ๊ณผ ์ ๊ณต์ ์ฒด์ ์ธ์ฆ ์ด๋ฒคํธ๋ฅผ ๋ชจ๋ํฐ๋งํ ์ ์์ต๋๋ค. ์ฌ์ฉ ๊ฐ๋ฅํ ์ธก์ ํญ๋ชฉ ๋ชฉ๋ก์ IAM ์ธก์ ํญ๋ชฉ์ ์ฐธ์กฐํ์ธ์.
๋ค์ ๋จ๊ณ
์ํฌ๋ก๋ ์์ด๋ดํฐํฐ ์ ํด ์์ธํ ์์๋ณด๊ธฐ