Google Cloud 프로젝트에 대한 액세스 취소

이 문서에서는 Google Cloud 프로젝트에 대한 사용자의 액세스를 취소하기 위한 권장사항, 시나리오, 절차를 설명합니다. 비즈니스마다 정책과 워크로드가 다르므로 이 문서를 참고하여 일관되고 신속하게 액세스 권한을 취소할 수 있는 자체 정책과 절차를 마련하시기 바랍니다.

직원이 퇴사하거나, 도급업자와의 계약이 종료되거나, 함께 작업하던 사람이 다른 프로젝트 팀으로 옮길 때, 클라우드 리소스에 대한 불필요한 액세스를 취소하기 위해 처리해야 하는 몇 가지 사항이 있습니다.

이러한 프로세스 중 일부는 선택사항입니다. 보안 요건, 사용 중인 제품, 액세스가 취소되는 사람에 대한 신뢰도에 따라 이러한 단계 중 어떤 것을 실행할지 결정해야 합니다.

프로젝트 설정 권장사항

설정 시점에 충분히 깊이 생각해서 선택함으로써 프로젝트에서 사용자 액세스 권한을 효율적으로 취소할 수 있는 능력을 개선할 수 있습니다.

사용자 계정을 기존 ID 공급업체와 페더레이션

사용자 계정을 기존 ID 공급업체와 페더레이션할 때 사용자 정지 및 삭제 이벤트를 전파해야 합니다. 적용을 사용하면 ID 공급업체에서 사용자 계정을 정지하거나 삭제할 때 사용자가 Google Cloud 리소스에 액세스할 수 없게 됩니다.

자세한 내용은 Google Cloud 를 외부 ID 공급업체와 제휴하기 위한 권장사항을 참고하세요.

ID 관련 권장사항은 계정 및 조직 계획을 위한 권장사항을 참고하세요.

직원 ID 제휴에 대한 자세한 내용은 직원 ID 제휴를 참고하세요.

Google 그룹스를 사용하여 프로젝트 리소스에 대한 액세스 관리 고려

Google 그룹스를 사용하면 팀 멤버십, 액세스 요구사항 또는 기타 기준에 따라 사용자를 구성할 수 있습니다. Google 그룹스를 만든 후에는 그룹 멤버십을 기반으로 Google Cloud 프로젝트 및 리소스에 대한 액세스 권한을 할당할 수 있습니다. 사용자가 다른 팀 또는 직무 기능으로 이동할 때 사용자 계정을 다른 그룹으로 이동하면 이전 그룹에 대한 허용 정책에서 부여한 액세스 권한이 자동으로 삭제됩니다.

Google 그룹스를 사용하는 것이 항상 적절한 것은 아닙니다. 예를 들어 비즈니스 조직 구조에만 기반한 그룹을 사용하여 액세스를 관리해서는 안 됩니다. 그룹 사용에 관한 권장사항은 Google 그룹스 사용 권장사항을 참고하세요.

자세한 내용은 콘솔에서 그룹 관리 Google Cloud 조직에서 그룹 만들기를 참고하세요.

OS 로그인 사용

사용자의 승인된 키가 Google ID에 연결되도록 메타데이터 기반 SSH 키 대신 OS 로그인을 사용합니다. 사용자 계정을 삭제하면 승인된 키와 VM에 대한 액세스 권한이 자동으로 취소됩니다. 자세한 내용은 OS 로그인을 사용하여 IAM 정책에 대한 지속적인 액세스 평가 수행을 참고하세요.

자세한 내용은 OS 로그인 설정을 참조하세요.

외부 사용자 계정의 액세스 제한

외부 사용자에게 프로젝트에 대한 액세스 권한을 부여하지 마세요. 이러한 사용자 계정의 수명 주기를 제어할 수 없기 때문입니다. 외부 사용자를 제한하려면 iam.allowedPolicyMemberDomains 목록 제약조건을 사용합니다.

자세한 내용은 도메인별 ID 제한을 참조하세요.

데이터베이스에서 인증 프록시 사용

인증 프록시를 사용하면 데이터베이스 사용자 인증 정보의 수명 주기를 Google ID의 수명 주기에 연결할 수 있습니다. Cloud ID 또는 Google Workspace에서 사용자 계정을 정지하거나 삭제하면 데이터베이스에 대한 액세스 권한이 자동으로 취소됩니다.

자세한 내용은 Cloud SQL 인증 프록시PostgreSQL용 AlloyDB 인증 프록시를 참고하세요.

사용자 인증 정보 순환 준비

프로젝트 수준에서 사용자 인증 정보를 중단 없이 순환할 수 있도록 프로젝트와 리소스를 설계하세요. 이러한 사용자 인증 정보는 서비스 계정 키, OAuth 클라이언트 보안 비밀, 애플리케이션별 암호(예: 데이터베이스 루트 비밀번호)와 같이 프로젝트 자체에 연계된 암호입니다. 자세한 내용은 손상된Google Cloud 사용자 인증 정보 처리를 참고하세요.

API 키 제한

API 키를 만들고 관리할 때, 이러한 키를 사용할 수 있는 웹사이트, IP 주소, 앱의 집합을 제한하세요. 뷰어 또는 API 키 관리자와 같은 역할을 가진 사용자 계정은 프로젝트의 API 키를 볼 수 있으므로 결제 액세스를 취소하려면 제한되지 않은 키를 순환하거나 삭제해야 합니다. 자세한 내용은 API 키 보안을 참고하세요.

액세스 권한 모니터링

액세스를 신중하게 추적하면 잠재적인 액세스 악용을 완화하는 데 도움이 됩니다. IAM 역할 추천자를 사용하여 역할 사용을 추적하여 최소 권한 원칙을 시행할 수 있습니다. 또한 Security Command Center의 클라우드 인프라 사용 권한 관리(CIEM) 기능을 사용하면 배포에서 특정 리소스에 액세스할 수 있는 ID를 관리하고 구성 오류로 인한 잠재적인 취약점을 완화할 수 있습니다.

Cloud Storage에 균일한 버킷 수준 액세스 사용

균일한 버킷 수준 액세스를 사용하면 IAM만 사용하여 Cloud Storage 버킷의 권한을 관리할 수 있습니다. 기타 액세스 제어 옵션과 함께 균일한 버킷 수준 액세스를 사용하여 버킷의 콘텐츠에 액세스할 수 있는 사용자를 세분화합니다.

추가 권장사항

이 문서에 설명된 권장사항 외에 다음 권장사항도 검토하세요.

프로젝트에 대한 액세스 권한을 취소하는 시나리오 Google Cloud

프로젝트 설정 권장사항에 나열된 권장사항을 구현한 경우 다음 표에는 액세스 권한을 취소하는 방법이 요약되어 있습니다.

시나리오 액세스 옵션 취소
직원이 퇴사합니다. 자동 사용자 프로비저닝을 사용하여 Cloud ID 또는 Google Workspace 간에 페더레이션을 설정하면 액세스 취소가 자동으로 발생할 수 있습니다.

권장사항을 따르지 않아 외부 사용자 ID에 리소스에 대한 액세스 권한을 부여한 경우 프로젝트와 리소스에서 ID를 수동으로 삭제해야 합니다.
직원이 직무를 변경합니다. 팀 그룹에서 직원을 삭제합니다.
계약이 종료됩니다. 자동 사용자 프로비저닝을 사용하여 Cloud ID 또는 Google Workspace 간에 페더레이션을 설정하면 액세스 취소가 자동으로 발생할 수 있습니다.

권장사항을 따르지 않아 외부 사용자 ID에 리소스에 대한 액세스 권한을 부여한 경우 프로젝트와 리소스에서 ID를 수동으로 삭제해야 합니다.
계정이 도용되었습니다. 자세한 내용은 손상된Google Cloud 사용자 인증 정보 처리를 참고하세요.

액세스 취소

프로젝트 설정을 적절하게 했다면 다음 프로세스로 어떤 사람에게 주어진 액세스 권한을 효율적으로 취소할 수 있습니다.

사용자가 액세스할 수 있는 리소스를 확인하려면 정책 분석 도구를 사용하세요. 자세한 내용은 IAM 정책 분석을 참고하세요.

ID 공급업체에서 사용자 계정 삭제

사용자가 조직을 떠나고 Cloud ID 또는 Google Workspace를 ID 공급업체에 페더레이션하면 자동 사용자 프로비저닝으로 액세스 취소가 자동으로 발생할 수 있습니다.

직원 ID 제휴 사용자 삭제에 관한 자세한 내용은 직원 ID 제휴 사용자 및 데이터 삭제를 참고하세요.

다른 그룹으로 계정 이동

사용자가 역할을 변경하는 경우 현재 Google 그룹스에서 사용자 계정을 삭제합니다. Cloud ID 또는 Google Workspace를 ID 공급업체와 페데레이션하여 그룹 멤버십을 관리한 경우 액세스 취소가 자동으로 발생할 수 있습니다.

자세한 내용은 그룹 세부정보 보기 및 수정하기를 참고하세요.

IAM 허용 정책에서 사용자 계정 삭제

프로젝트 수준 허용 정책에서 사용자 계정을 삭제하려면 다음 단계를 따르세요.

  1. Google Cloud 콘솔에서 IAM 권한 페이지로 이동합니다.

    IAM 권한

  2. 사용자 계정을 삭제할 프로젝트를 선택합니다.

  3. 구성원 목록에서 삭제하려는 사용자 계정이 포함된 행 옆에 있는 체크박스를 클릭한 후 삭제를 클릭합니다.

폴더, 조직, 개별 리소스 등 허용 정책을 설정할 수 있는 다른 위치를 확인하려면 권한이 삭제되었는지 확인을 참고하세요.

프로젝트 사용자 인증 정보 순환

서비스 계정 키 순환

서비스 계정 키를 사용하여 서비스 계정에 인증하려면 키를 순환해야 합니다. 또한 해당 사용자가 소스 코드 저장소 또는 애플리케이션 구성과 같은 Google Cloud도구 외부의 어디선가 서비스 계정 키에 대한 액세스 권한을 가지고 있었을 경우를 고려하세요.

  1. Google Cloud 콘솔에서 API 사용자 인증 정보 페이지로 이동합니다.

    API 사용자 인증 정보

  2. 수정할 서비스 계정의 이름을 클릭합니다.

  3. 탭에서 키 추가를 클릭합니다.

  4. 새 키 만들기를 클릭합니다.

  5. 만들려는 키 유형을 선택합니다. 대부분의 경우 JSON을 사용하는 것이 좋지만 종속된 코드와의 하위 호환성을 위해 P12를 사용할 수 있습니다.

  6. 만들기를 클릭합니다. 새 키를 포함한 파일이 브라우저를 통해 자동으로 다운로드됩니다. 이 키가 필요한 모든 애플리케이션에 키를 배포합니다.

  7. 새로운 키가 예상대로 작동하는지 확인한 후, 사용자 인증 정보 페이지로 돌아가고 해당 서비스 계정과 연결된 이전 키를 삭제합니다.

OAuth 클라이언트 ID 보안 비밀 순환

OAuth 클라이언트 ID 암호로는 프로젝트에 직접 액세스할 수 없습니다. 하지만 공격자가 OAuth 클라이언트 ID 보안 비밀을 알고 있으면 애플리케이션을 스푸핑하여 악성 애플리케이션에서 사용자의 Google 계정에 대한 액세스를 요청할 수 있습니다.

액세스 권한이 취소되는 사용자가 소스 코드 저장소, 애플리케이션 구성에서 또는 IAM 역할을 통해 보안 비밀에 액세스한 적이 있다면 OAuth 클라이언트 ID 보안 비밀을 순환해야 할 수 있습니다.

  1. Google Cloud 콘솔에서 API 사용자 인증 정보 페이지로 이동합니다.

    API 사용자 인증 정보

  2. 수정하려는 OAuth 2.0 클라이언트 ID의 이름을 클릭합니다.

  3. 클라이언트 ID 페이지에서 보안 비밀 재설정을 클릭합니다.

  4. 확인 대화상자에서 재설정을 클릭하여 이전 암호를 즉시 취소하고 새 암호를 설정합니다. 이에 따라 활성 사용자는 다음 요청 시 다시 인증해야 합니다.

  5. 새 암호가 필요한 애플리케이션에 새 암호를 배포합니다.

API 키 순환

API 키로는 프로젝트 또는 사용자의 데이터에 액세스할 수 없지만, Google이 누구에게 API 요청 비용을 청구하는지를 관리할 수 있습니다. 뷰어 또는 API 키 관리자와 같은 역할을 가진 사용자 계정은 프로젝트의 API 키를 볼 수 있습니다. 제한되지 않은 키가 있는 경우 프로젝트에 대한 어떤 사람의 액세스 권한을 취소할 때 이러한 키를 삭제하거나 다시 생성해야 합니다.

  1. Google Cloud 콘솔에서 API 사용자 인증 정보 페이지로 이동합니다.

    API 사용자 인증 정보

  2. 수정하려는 API 키의 이름을 클릭합니다.

  3. 키 재생성을 클릭합니다.

  4. 대화상자에 새로 생성된 키가 표시됩니다. 바꾸고 싶은 키를 사용하는 모든 애플리케이션에 이 키를 배포합니다.

  5. 새로운 키로 애플리케이션이 예상대로 작동하는지 확인한 후, 사용자 인증 정보 페이지로 돌아가고 이전의 제한되지 않은 키를 삭제합니다.

VM에 대한 액세스 취소

액세스를 취소하려는 사람이 프로젝트 VM에 대한 로그인 액세스 권한이 없다면 이 단계를 건너뛰어도 됩니다.

  1. 그 사람이 액세스 권한을 가졌던 모든 프로젝트 수준 SSH 키를 삭제합니다.

  2. 그 사람이 SSH 액세스 권한을 가졌던 각각의 VM에서 모든 인스턴스 수준 키를 삭제합니다.

  3. 로그인 액세스 권한을 가졌던 모든 VM에서 그 사람의 계정을 삭제합니다.

  4. 그 사람이 VM에 대한 백도어 액세스를 제공하기 위해 설치했을 수 있는 의심스러운 애플리케이션이 있는지 확인합니다. VM에서 실행 중인 코드의 보안에 대해 확신할 수 없는 경우, 해당 코드를 다시 만들고 소스에서 필요한 애플리케이션을 다시 배포합니다.

  5. 계획하거나 예상한 구성에서 VM 방화벽 설정이 변경되지 않았는지 확인합니다.

  6. 커스텀 기본 이미지에서 새 VM을 만드는 경우 새로운 VM의 보안을 훼손하는 방식으로 기본 이미지가 수정되지는 않았는지 확인합니다.

데이터베이스 액세스 권한 취소

프로젝트에서 PostgreSQL용 Cloud SQL 또는 AlloyDB 리소스를 사용하지 않는 경우에는 이 단계를 건너뛰어도 됩니다.

Cloud SQL 데이터베이스에 대한 액세스 권한을 취소하려면 다음 단계를 완료하세요.

  1. Google Cloud 콘솔에서 SQL 인스턴스 페이지로 이동합니다.

    SQL 인스턴스

  2. 액세스 권한을 취소하려는 데이터베이스의 인스턴스 ID를 클릭합니다.

  3. 왼쪽 메뉴에서 연결을 클릭합니다.

  4. 승인된 네트워크 아래의 IP 주소 목록과 App Engine 승인 아래의 앱 목록이 예상한 바와 일치하는지 확인합니다. 액세스 권한을 취소하려는 사람이 여기에 나열된 네트워크 또는 애플리케이션에 대한 액세스 권한을 가진 경우 그 사람은 이 데이터베이스에 액세스할 수 있습니다.

  5. 왼쪽 메뉴에서 사용자를 클릭합니다.

  6. 그 사람이 액세스 권한을 가졌던 모든 사용자 계정의 비밀번호를 삭제하거나 변경합니다. 이 사용자 계정에 의존하는 모든 애플리케이션을 반드시 업데이트해야 합니다.

PostgreSQL용 AlloyDB 데이터베이스에 대한 액세스 권한을 취소하려면 클러스터에서 IAM 사용자 또는 서비스 계정 삭제를 참고하세요.

App Engine 다시 배포

기본적으로 App Engine 앱은 연결된 프로젝트의 편집자인 서비스 계정에 액세스할 수 있습니다. App Engine 요청 핸들러는 새로운 VM 만들기, Cloud Storage의 데이터 읽기 또는 수정과 같은 작업을 수행할 수 있습니다. App Engine에 코드를 배포할 수 있는 사람은 이 서비스 계정을 사용하여 프로젝트로의 백도어를 열 수 있습니다. 배포한 앱의 코드 무결성이 걱정될 경우 버전 제어 시스템에서 양호한 상태로 알려진 이미지로 (모든 모듈을 포함하여) 앱을 다시 배포할 수도 있습니다.

권한이 삭제되었는지 확인

조직 수준, 프로젝트 수준 또는 정책 분석 도구를 사용하여 권한을 확인할 수 있습니다.

특정 사용자가 조직 수준에서 액세스할 수 있는 리소스를 찾으려면 Google Cloud CLI에서 search-all-iam-policies 메서드를 사용하세요. 예를 들어 사용자에게 리소스 액세스 권한이 있는지 확인하려면 다음을 실행합니다.

gcloud asset search-all-iam-policies --scope='organizations/ORGANIZATION_ID --query='policy:IDENTITY'

각 항목의 의미는 다음과 같습니다.

  • ORGANIZATION_ID는 조직 번호입니다.
  • IDENTITY는 사용자 ID(예: 이메일 주소)입니다.

프로젝트의 권한을 확인하려면 주 구성원에게 있는 프로젝트에 대한 권한을 참고하세요.

정책 분석 도구를 사용하여 권한을 확인하려면 주 구성원이 액세스할 수 있는 리소스 확인을 참고하세요.

다음 단계