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)