워크로드 아이덴티티 풀 및 공급업체 관리

이 페이지에서는 기존 워크로드 아이덴티티 풀 및 ID 공급업체를 관리하는 방법을 설명합니다.

Google Cloud Console, Google Cloud CLI 또는 REST API를 사용하여 풀과 제공업체를 관리할 수 있습니다.

시작하기 전에

워크로드 아이덴티티 풀을 만듭니다. 자세한 방법은 다음 페이지 중 하나를 참조하세요.

필요한 역할

워크로드 아이덴티티 풀과 제공업체를 관리하는 데 필요한 권한을 얻으려면 관리자에게 프로젝트에 대한 다음 IAM 역할을 부여해 달라고 요청하세요.

역할 부여에 대한 자세한 내용은 프로젝트, 폴더, 조직에 대한 액세스 관리를 참조하세요.

이러한 사전 정의된 역할에는 워크로드 아이덴티티 풀과 제공업체를 관리하는 데 필요한 권한이 포함되어 있습니다. 필요한 정확한 권한을 보려면 필수 권한 섹션을 펼치세요.

필수 권한

워크로드 아이덴티티 풀과 제공업체를 관리하려면 다음 권한이 필요합니다.

  • 워크로드 아이덴티티 풀 및 공급업체 보기:
    • 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 Console에서 워크로드 아이덴티티 풀 페이지로 이동합니다.

워크로드 아이덴티티 풀로 이동

gcloud

gcloud iam workload-identity-pools create 명령어를 실행합니다.

REST

projects.locations.workloadIdentityPools.create()를 호출합니다.

풀 나열

프로젝트의 모든 워크로드 아이덴티티 풀을 나열하려면 다음을 수행합니다.

콘솔

Google Cloud Console에서 워크로드 아이덴티티 풀 페이지로 이동합니다.

워크로드 아이덴티티 풀로 이동

gcloud

gcloud iam workload-identity-pools list 명령어를 실행합니다.

REST

projects.locations.workloadIdentityPools.list()를 호출합니다.

풀 가져오기

특정 워크로드 아이덴티티 풀의 세부정보를 가져오려면 다음을 수행합니다.

콘솔

  1. Google Cloud Console에서 워크로드 아이덴티티 풀 페이지로 이동합니다.

    워크로드 아이덴티티 풀로 이동

  2. 보려는 워크로드 아이덴티티 풀을 찾은 후 수정 아이콘을 클릭합니다. Google Cloud Console에 워크로드 아이덴티티 풀에 대한 세부정보가 표시됩니다.

gcloud

gcloud iam workload-identity-pools describe 명령어를 실행합니다.

REST

projects.locations.workloadIdentityPools.get()를 호출합니다.

풀 업데이트

워크로드 아이덴티티 풀을 사용 설정하거나 중지할 수 있습니다. 표시 이름이나 설명을 변경할 수도 있습니다.

기존 워크로드 아이덴티티 풀을 업데이트하려면 다음을 수행합니다.

콘솔

  1. Google Cloud Console에서 워크로드 아이덴티티 풀 페이지로 이동합니다.

    워크로드 아이덴티티 풀로 이동

  2. 수정하려는 워크로드 아이덴티티 풀을 찾은 후 수정 아이콘을 클릭합니다.

    워크로드 아이덴티티 풀을 사용 중지하거나 사용 설정하려면 상태 전환을 클릭한 다음 사용 중지 또는 사용 설정을 클릭합니다.

    표시 이름을 수정하려면 표시 이름 옆에 있는 수정을 클릭합니다. 이름을 업데이트한 후 저장을 클릭합니다.

    설명을 수정하려면 gcloud CLI 또는 REST API를 사용합니다.

gcloud

gcloud iam workload-identity-pools update 명령어를 실행합니다.

REST

projects.locations.workloadIdentityPools.patch()를 호출합니다.

풀 삭제

워크로드 아이덴티티 풀을 삭제하면 워크로드 아이덴티티 풀 제공업체도 삭제됩니다. 따라서 풀의 ID에서 Google Cloud 리소스에 액세스할 수 없습니다.

삭제 후 최대 30일 동안 풀 삭제를 취소할 수 있습니다. 30일 후에는 영구적으로 삭제됩니다. 풀이 영구적으로 삭제될 때까지는 새 워크로드 아이덴티티 풀을 만들 때 해당 이름을 다시 사용할 수 없습니다.

워크로드 아이덴티티 풀 및 ID 공급업체를 삭제하려면 다음을 수행합니다.

콘솔

  1. Google Cloud Console에서 워크로드 아이덴티티 풀 페이지로 이동합니다.

    워크로드 아이덴티티 풀로 이동

  2. 삭제하려는 워크로드 아이덴티티 풀을 찾은 후 수정 아이콘을 클릭합니다.

  3. 풀 삭제를 클릭한 후 삭제를 클릭합니다. 워크로드 아이덴티티 풀과 ID 공급업체가 삭제됩니다.

gcloud

gcloud iam workload-identity-pools delete 명령어를 실행합니다.

REST

projects.locations.workloadIdentityPools.delete()를 호출합니다.

풀 삭제 취소

삭제된 워크로드 아이덴티티 풀은 삭제 후 최대 30일 이내에 복구할 수 있습니다.

풀을 삭제 취소하려면 다음을 수행합니다.

콘솔

  1. Google Cloud Console에서 워크로드 아이덴티티 풀 페이지로 이동합니다.

    워크로드 아이덴티티 풀로 이동

  2. 삭제된 풀 및 공급업체 표시 전환 버튼을 클릭합니다.

  3. 삭제 취소할 워크로드 아이덴티티 풀을 찾은 후 복원 아이콘을 클릭합니다.

  4. 복원을 클릭합니다. 풀과 해당 공급업체가 복원됩니다.

gcloud

gcloud iam workload-identity-pools undelete 명령어를 실행합니다.

REST

projects.locations.workloadIdentityPools.undelete()를 호출합니다.

워크로드 아이덴티티 풀 제공업체 관리

이 섹션에서는 워크로드 아이덴티티 풀 제공업체를 관리하는 방법을 보여줍니다.

공급업체 만들기

기존 워크로드 아이덴티티 풀에서 워크로드 아이덴티티 풀 제공업체를 만들려면 다음을 수행합니다.

콘솔

  1. Google Cloud Console에서 워크로드 아이덴티티 풀 페이지로 이동합니다.

    워크로드 아이덴티티 풀로 이동

  2. 공급업체를 추가할 워크로드 아이덴티티 풀을 찾은 후 수정 아이콘을 클릭합니다.

  3. 공급업체 추가를 클릭합니다.

  4. 만들려는 공급업체 유형을 선택합니다.

    • AWS: Amazon Web Services(AWS) ID 공급업체입니다.
    • OpenID Connect(OIDC): OIDC 호환 ID 공급업체입니다. 여기에는 Microsoft Azure가 포함됩니다.
  5. 공급업체의 이름을 입력합니다.

    Google Cloud Console에서 이 이름을 사용하여 공급업체 ID를 만듭니다. 공급업체 ID를 변경하려면 수정을 클릭합니다. 나중에 이 공급업체 ID를 변경할 수 없습니다.

  6. 공급업체의 나머지 필드를 작성합니다.

    • AWS: AWS 계정 ID를 입력합니다.
    • OIDC: 발급기관 URL을 입력합니다. Azure의 경우 발급기관 URL은 https://sts.windows.net/AZURE_TENANT_ID 형식을 사용합니다. 다른 제공업체의 경우 해당 제공업체 문서를 참조하세요.

    완료되면 계속을 클릭합니다.

  7. 속성 매핑을 구성하려면 매핑 수정을 클릭합니다. 속성 매핑을 사용하면 외부 ID에 대한 정보를 사용하여 ID의 하위 집합에 대한 액세스 권한을 부여할 수 있습니다.

  8. 선택사항: 인증 가능한 ID를 지정하는 속성 조건을 제공하려면 조건 추가를 클릭하고 올바른 Common Expression Language(CEL) 표현식을 입력합니다. 자세한 내용은 속성 조건을 참조하세요.

  9. 저장을 클릭합니다. 워크로드 아이덴티티 풀 공급업체가 생성됩니다.

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()를 호출합니다.

공급업체 나열

프로젝트의 워크로드 아이덴티티 풀 공급업체를 나열하려면 다음을 수행합니다.

콘솔

  1. Google Cloud Console에서 워크로드 아이덴티티 풀 페이지로 이동합니다.

    워크로드 아이덴티티 풀로 이동

  2. 워크로드 아이덴티티 풀의 공급업체를 보려면 풀의 노드 확장 아이콘을 클릭합니다.

gcloud

gcloud iam workload-identity-pools providers list 명령어를 실행합니다.

REST

projects.locations.workloadIdentityPools.providers.list()를 호출합니다.

공급업체 가져오기

특정 워크로드 아이덴티티 풀 제공업체의 세부정보를 가져오려면 다음을 수행합니다.

콘솔

  1. Google Cloud Console에서 워크로드 아이덴티티 풀 페이지로 이동합니다.

    워크로드 아이덴티티 풀로 이동

  2. 공급업체가 포함된 워크로드 아이덴티티 풀을 찾은 후 풀의 노드 확장 아이콘을 클릭합니다.

  3. 보려는 워크로드 아이덴티티 풀 공급업체를 찾고 수정 아이콘을 클릭합니다. Google Cloud Console에 공급업체에 대한 자세한 정보가 표시됩니다.

gcloud

gcloud iam workload-identity-pools providers describe 명령어를 실행합니다.

REST

projects.locations.workloadIdentityPools.providers.get()를 호출합니다.

공급업체 업데이트

워크로드 아이덴티티 풀 제공업체를 사용 설정하거나 중지할 수 있습니다. 계정 정보, 속성 매핑, 표시 이름 및 설명을 업데이트할 수도 있습니다.

기존 워크로드 아이덴티티 풀 제공업체를 업데이트하려면 다음을 수행합니다.

콘솔

  1. Google Cloud Console에서 워크로드 아이덴티티 풀 페이지로 이동합니다.

    워크로드 아이덴티티 풀로 이동

  2. 공급업체가 포함된 워크로드 아이덴티티 풀을 찾은 후 풀의 노드 확장 아이콘을 클릭합니다.

  3. 수정하려는 워크로드 아이덴티티 풀 공급업체를 찾은 후 수정 아이콘을 클릭합니다.

  4. 공급업체의 정보를 수정한 다음 저장을 클릭합니다.

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일 후에는 영구적으로 삭제됩니다. 공급업체가 영구적으로 삭제될 때까지는 새 공급업체를 만들 때 해당 이름을 재사용할 수 없습니다.

워크로드 아이덴티티 풀 공급업체를 삭제하려면 다음을 수행합니다.

콘솔

  1. Google Cloud Console에서 워크로드 아이덴티티 풀 페이지로 이동합니다.

    워크로드 아이덴티티 풀로 이동

  2. 공급업체가 포함된 워크로드 아이덴티티 풀을 찾은 후 해당 수정 아이콘을 클릭합니다.

  3. 공급업체 창에서 삭제할 공급업체를 찾은 다음 삭제 아이콘을 클릭합니다.

  4. 삭제를 클릭하여 공급업체를 삭제합니다.

gcloud

gcloud iam workload-identity-pools providers delete 명령어를 실행합니다.

REST

projects.locations.workloadIdentityPools.providers.delete()를 호출합니다.

공급업체 삭제 취소

삭제된 워크로드 아이덴티티 풀 제공업체를 삭제 후 최대 30일 이내에 복구할 수 있습니다. 공급업체 삭제를 취소하려면 다음 안내를 따르세요.

콘솔

  1. Google Cloud Console에서 워크로드 아이덴티티 풀 페이지로 이동합니다.

    워크로드 아이덴티티 풀로 이동

  2. 삭제된 풀 및 공급업체 표시 전환 버튼을 클릭합니다.

  3. 공급업체가 포함된 워크로드 아이덴티티 풀을 찾은 후 풀의 노드 확장 아이콘을 클릭합니다.

  4. 삭제 취소할 공급업체를 찾은 후 복원 아이콘을 클릭합니다.

  5. 복원을 클릭합니다. 공급업체가 복원됩니다.

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 Console 또는 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

이 명령어를 반복하여 다른 공급업체의 제휴를 허용할 수 있습니다.

모든 공급업체에서 제휴를 차단하려면 다음 안내를 따르세요.

  1. 다음을 포함하는 YAML 파일을 만듭니다.

    constraint: constraints/iam.workloadIdentityPoolProviders
    listPolicy:
      allValues: DENY
  2. 파일을 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 측정항목을 참조하세요.

다음 단계

워크로드 아이덴티티 제휴 자세히 알아보기