hcp projects iam set-policy
hcp projects iam set-policy
hcp projects iam set-policy 명령어는 프로젝트 ID와 IAM 정책을 담은 JSON 파일을 받아 프로젝트의 IAM 정책을 설정해요. 정책에서 단일 주체(principal)만 추가하거나 제거할 때는 hcp projects iam add-binding과 hcp projects iam delete-binding을 쓰는 편이 더 낫습니다.
정책 파일은 IAM 정책을 담은 JSON 인코딩 파일이에요. 정책 JSON 파일의 형식은 다음과 같은 객체 구조를 가집니다.
{
"bindings": [
{
"role_id": "ROLE_ID",
"members": [
{
"member_id": "PRINCIPAL_ID",
"member_type": "USER" | "GROUP" | "SERVICE_PRINCIPAL"
}
]
}
],
"etag": "ETAG"
}
etag가 설정되어 있으면 그 값이 기존 정책의 etag와 일치해야 해요. 기존 정책과 그 etag를 보려면 hcp projects iam read-policy --format=json을 실행하면 됩니다. etag가 없으면 기존 정책의 etag를 가져와 사용해요.
출처: 문서
본문
명령어 형식은 이렇게 사용해요.
$ hcp projects iam set-policy --policy-file=PATH [Optional Flags]
예시 — 프로젝트의 IAM 정책 설정하기
$ cat >policy.json <<EOF
{
"bindings": [
{
"role_id": "roles/viewer",
"members": [
{
"member_id": "97e2c752-4285-419e-a5cc-bf05ce811d7d",
"member_type": "USER"
},
{
"member_id": "334514c1-4650-4699-891a-a7261fba9607",
"member_type": "GROUP"
}
]
},
{
"role_id": "roles/admin",
"members": [
{
"member_id": "efa07942-17e8-4ef4-ae2d-ec51d32a0767",
"member_type": "SERVICE_PRINCIPAL"
}
]
}
],
"etag": "14124142"
}
EOF
$ hcp projects iam set-policy \
--policy-file=policy.json \
--project=8647ae06-ca65-467a-b72d-edba1f908fc8
필수 플래그 (Required flags)
--policy-file=PATH- IAM 정책 객체가 담긴 파일의 경로예요.
더 알아보기 (Learn more)
- hcp projects iam read-policy — 기존 정책과 etag를 조회하는 방법을 알아보세요.
- hcp projects iam add-binding — 주체 하나를 역할에 바인딩하는 더 간단한 방법을 살펴보세요.
- hcp projects iam — 프로젝트 IAM 명령어 그룹 전체를 확인해 보세요.