이 페이지에서는 Identity and Access Management(IAM) API, Google Cloud 콘솔, gcloud
명령줄 도구를 사용하여 서비스 계정을 삭제하고 삭제 취소하는 방법을 설명합니다.
시작하기 전에
Enable the IAM API.
인증을 설정합니다.
Select the tab for how you plan to use the samples on this page:
Console
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
gcloud
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
C#
로컬 개발 환경에서 이 페이지의 .NET 샘플을 사용하려면 gcloud CLI를 설치 및 초기화한 다음 사용자 인증 정보로 애플리케이션 기본 사용자 인증 정보를 설정하세요.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
자세한 내용은 Google Cloud 인증 문서의 로컬 개발 환경용 ADC 설정을 참고하세요.
C++
로컬 개발 환경에서 이 페이지의 C++ 샘플을 사용하려면 gcloud CLI를 설치 및 초기화한 다음 사용자 인증 정보로 애플리케이션 기본 사용자 인증 정보를 설정하세요.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
자세한 내용은 Google Cloud 인증 문서의 로컬 개발 환경용 ADC 설정을 참고하세요.
Go
로컬 개발 환경에서 이 페이지의 Go 샘플을 사용하려면 gcloud CLI를 설치 및 초기화한 다음 사용자 인증 정보로 애플리케이션 기본 사용자 인증 정보를 설정하세요.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
자세한 내용은 Google Cloud 인증 문서의 로컬 개발 환경용 ADC 설정을 참고하세요.
Java
로컬 개발 환경에서 이 페이지의 Java 샘플을 사용하려면 gcloud CLI를 설치 및 초기화한 다음 사용자 인증 정보로 애플리케이션 기본 사용자 인증 정보를 설정하세요.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
자세한 내용은 Google Cloud 인증 문서의 로컬 개발 환경용 ADC 설정을 참고하세요.
Python
로컬 개발 환경에서 이 페이지의 Python 샘플을 사용하려면 gcloud CLI를 설치 및 초기화한 다음 사용자 인증 정보로 애플리케이션 기본 사용자 인증 정보를 설정하세요.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
자세한 내용은 Google Cloud 인증 문서의 로컬 개발 환경용 ADC 설정을 참고하세요.
REST
로컬 개발 환경에서 이 페이지의 REST API 샘플을 사용하려면 gcloud CLI에 제공한 사용자 인증 정보를 사용합니다.
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
자세한 내용은 Google Cloud 인증 문서의 REST 사용을 위한 인증을 참고하세요.
IAM 서비스 계정 이해
필요한 역할
서비스 계정을 삭제하고 삭제 취소하는 데 필요한 권한을 얻으려면 관리자에게 프로젝트에 대한 다음 IAM 역할을 부여해 달라고 요청하세요.
-
서비스 계정 삭제:
서비스 계정 삭제(
roles/iam.serviceAccountDeleter
) -
서비스 계정 삭제 및 삭제 취소:
서비스 계정 관리자(
roles/iam.serviceAccountAdmin
)
역할 부여에 대한 자세한 내용은 프로젝트, 폴더, 조직에 대한 액세스 관리를 참조하세요.
커스텀 역할이나 다른 사전 정의된 역할을 통해 필요한 권한을 얻을 수도 있습니다.
이러한 역할에 대한 자세한 내용은 서비스 계정 역할을 참조하세요.
IAM 기본 역할도 서비스 계정을 관리하는 권한을 포함하지만, 프로덕션 환경에서는 기본 역할을 부여하지 말아야 하지만 개발 환경 또는 테스트 환경에서는 부여해도 됩니다.
서비스 계정 삭제
서비스 계정을 삭제하면 애플리케이션에서 해당 서비스 계정을 통해 Google Cloud 리소스에 더 이상 액세스할 수 없습니다. 기본 App Engine 및 Compute Engine 서비스 계정을 삭제하면 이러한 서비스 계정을 사용하는 App Engine 앱과 Compute Engine VM 인스턴스에서 더 이상 프로젝트의 리소스에 액세스할 수 없습니다.
서비스 계정은 신중하게 삭제합니다. 서비스 계정을 삭제하기 전에 중요한 애플리케이션이 해당 계정을 더 이상 사용하지 않는지 확인합니다. 서비스 계정이 사용 중인지 확실하지 않으면 삭제하는 대신 서비스 계정을 사용 중지하는 것이 좋습니다. 사용 중지된 서비스 계정은 필요한 경우 다시 사용할 수 있습니다.
삭제된 서비스 계정을 복원하려면 삭제 취소하면 됩니다. 단, 서비스 계정을 삭제한 후 30일이 지나지 않은 경우에만 가능합니다. 30일이 지나면 IAM에서 서비스 계정을 영구적으로 삭제합니다. 영구 삭제되면 지원 요청을 제출해도 Google Cloud에서 서비스 계정을 복원하지 못합니다.
또한 필수 서비스 계정을 삭제할 위험을 더 줄이기 위해서는 변경 위험 권장사항을 사용 설정하면 됩니다. 변경 위험 권장사항은 Google Cloud에서 중요하다고 판단한 서비스 계정을 삭제하려고 시도할 때 경고를 생성합니다.
서비스 계정을 삭제하고 동일한 이름으로 새로운 서비스 계정을 만들면 새 서비스 계정이 개별 ID로 취급되고, 삭제된 서비스 계정에 부여되었던 역할을 상속하지 않습니다. 반면에 서비스 계정을 삭제하고, 이를 삭제 취소하면 서비스 계정의 ID가 변경되지 않고 서비스 계정이 해당 역할을 그대로 갖고 있습니다.
서비스 계정을 삭제할 때 역할 바인딩은 바로 삭제되지 않으며 최대 60일 후에 시스템에서 자동으로 삭제됩니다. 그 때까지는 서비스 계정이
deleted:
프리픽스와?uid=NUMERIC_ID
서픽스가 있는 역할 바인딩에 표시됩니다. 여기서NUMERIC_ID
는 서비스 계정의 고유 숫자 ID입니다.삭제된 서비스 계정은 서비스 계정 할당량에 포함되지 않습니다.
콘솔
Google Cloud 콘솔에서 서비스 계정 페이지로 이동합니다.
프로젝트를 선택합니다.
삭제할 서비스 계정을 선택하고 삭제
를 클릭합니다.
gcloud
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
-
gcloud iam service-accounts delete
명령어를 실행하여 서비스 계정을 삭제합니다.명령어:
gcloud iam service-accounts delete \ SA_NAME@PROJECT_ID.iam.gserviceaccount.com
출력:
Deleted service account SA_NAME@PROJECT_ID.iam.gserviceaccount.com
C++
IAM용 클라이언트 라이브러리를 설치하고 사용하는 방법은 IAM 클라이언트 라이브러리를 참조하세요. 자세한 내용은 IAM C++ API 참고 문서를 참조하세요.
IAM에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 시작하기 전에를 참조하세요.
C#
IAM용 클라이언트 라이브러리를 설치하고 사용하는 방법은 IAM 클라이언트 라이브러리를 참조하세요. 자세한 내용은 IAM C# API 참고 문서를 참조하세요.
IAM에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 시작하기 전에를 참조하세요.
Go
IAM용 클라이언트 라이브러리를 설치하고 사용하는 방법은 IAM 클라이언트 라이브러리를 참조하세요. 자세한 내용은 IAM Go API 참고 문서를 참조하세요.
IAM에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 시작하기 전에를 참조하세요.
Java
IAM용 클라이언트 라이브러리를 설치하고 사용하는 방법은 IAM 클라이언트 라이브러리를 참조하세요. 자세한 내용은 IAM Java API 참고 문서를 참조하세요.
IAM에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 시작하기 전에를 참조하세요.
Python
IAM용 클라이언트 라이브러리를 설치하고 사용하는 방법은 IAM 클라이언트 라이브러리를 참조하세요. 자세한 내용은 IAM Python API 참고 문서를 참조하세요.
IAM에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 시작하기 전에를 참조하세요.
REST
serviceAccounts.delete
메서드는 서비스 계정을 삭제합니다.요청 데이터를 사용하기 전에 다음을 바꿉니다.
PROJECT_ID
: Google Cloud 프로젝트 ID. 프로젝트 ID는my-project
같은 영숫자 문자열입니다.SA_ID
: 서비스 계정의 ID입니다.SA_NAME@PROJECT_ID.iam.gserviceaccount.com
형식의 서비스 계정 이메일 주소이거나 서비스 계정의 고유 숫자 ID일 수 있습니다.
HTTP 메서드 및 URL:
DELETE https://iam.googleapis.com/v1/projects/PROJECT_ID/serviceAccounts/SA_ID
요청을 보내려면 다음 옵션 중 하나를 펼칩니다.
성공한 경우 응답 본문은 비어 있습니다.
서비스 계정 삭제 취소
경우에 따라
undelete
명령어를 사용하여 삭제된 서비스 계정을 삭제 취소할 수 있습니다. 다음 기준을 충족하는 경우 삭제된 서비스 계정을 삭제 취소할 수 있습니다.서비스 계정 삭제 후 30일이 지나지 않음
30일이 지나면 IAM에서 서비스 계정을 영구적으로 삭제합니다. 영구 삭제되면 지원 요청을 제출해도 Google Cloud에서 서비스 계정을 복원하지 못합니다.
삭제된 서비스 계정과 이름이 같은 기존 서비스 계정이 없음
예를 들어 서비스 계정
my-service-account@project-id.iam.gserviceaccount.com
을 실수로 삭제한 경우 이름이 같은 서비스 계정이 필요하다면 새 서비스 계정을 만든 후 동일한 이름(예:my-service-account@project-id.iam.gserviceaccount.com
)을 지정합니다.새 서비스 계정은 삭제된 서비스 계정의 권한을 상속받지 않습니다. 실제로는 삭제된 서비스 계정과 완전히 별개입니다. 하지만 새 서비스 계정의 이름이 동일하기 때문에 원래 서비스 계정을 삭제 취소할 수 없습니다.
이 문제를 해결하려면 새 서비스 계정을 삭제한 다음 원래의 서비스 계정을 삭제 취소하면 됩니다.
서비스 계정을 삭제 취소할 수 없으면 새 이름으로 서비스 계정을 새로 만들고, 삭제된 서비스 계정에서 모든 역할을 취소하고, 새 서비스 계정에 동일한 역할을 부여할 수 있습니다. 자세한 내용은 삭제된 주 구성원이 포함된 정책을 참조하세요.
삭제된 서비스 계정의 숫자 ID 찾기
서비스 계정을 삭제 취소할 때는 해당 서비스 계정의 숫자 ID를 제공해야 합니다. 숫자 ID는 서비스 계정을 고유하게 식별하는 21자리 숫자(예:
123456789012345678901
)입니다. 예를 들어 서비스 계정을 삭제한 후 같은 이름으로 새 서비스 계정을 만들어도 원래의 서비스 계정과 새 서비스 계정의 숫자 ID는 서로 다릅니다.허용 정책의 결합에 삭제된 서비스 계정이 포함된다는 점을 알고 있으면 허용 정책을 가져오고 허용 정책에서 숫자 ID를 확인할 수 있습니다. 숫자 ID는 삭제된 서비스 계정의 이름에 있습니다. 예를 들어 허용 정책에서 삭제된 서비스 계정의 숫자 ID는
123456789012345678901
입니다.{ "version": 1, "etag": "BwUjMhCsNvY=", "bindings": [ { "members": [ "deleted:serviceAccount:my-service-account@project-id.iam.gserviceaccount.com?uid=123456789012345678901" ], "role": "roles/iam.serviceAccountUser" }, ] }
숫자 ID는 삭제된 주 구성원의 이름에만 추가됩니다.
또는 서비스 계정을 삭제한
DeleteServiceAccount
작업의 감사 로그를 검색할 수 있습니다.Google Cloud 콘솔에서 로그 탐색기 페이지로 이동합니다.
쿼리 편집기에서 다음 쿼리를 입력합니다. 여기서
SERVICE_ACCOUNT_EMAIL
을 서비스 계정의 이메일 주소(예:my-service-account@project-id.iam.gserviceaccount.com
)로 바꿉니다.resource.type="service_account" resource.labels.email_id="SERVICE_ACCOUNT_EMAIL" "DeleteServiceAccount"
서비스 계정이 삭제된 지 1시간이 초과되었으면
지난 1시간 드롭다운 목록에서 더 긴 기간을 선택한 다음 적용을 클릭합니다.쿼리 실행을 클릭합니다. 로그 탐색기에는 지정한 이름의 서비스 계정에 영향을 준
DeleteServiceAccount
작업이 표시됩니다.다음 중 하나를 수행하여 삭제된 서비스 계정의 숫자 ID를 찾아 기록합니다.
검색 결과에
DeleteServiceAccount
작업이 한 개만 있으면 로그 필드 창의 고유 ID 필드에서 숫자 ID를 찾습니다.검색 결과에 로그가 두 개 이상 표시되면 다음을 수행합니다.
올바른 로그 항목을 찾습니다. 올바른 로그 항목을 찾으려면 로그 항목 옆에 있는
펼치기 화살표를 클릭합니다. 로그 항목의 세부정보를 검토하고 로그 항목에 실행취소할 작업을 표시할지 여부를 결정합니다. 올바른 로그 항목을 찾을 때까지 이 프로세스를 반복합니다.올바른 로그 항목에서 서비스 계정의 숫자 ID를 찾습니다. 숫자 ID를 찾으려면 로그 항목의
protoPayload
필드를 펼친 후resourceName
필드를 찾습니다.숫자 ID는
resourceName
필드에서serviceAccounts
다음에 오는 모든 문자입니다.
숫자 ID로 서비스 계정 삭제 취소
삭제된 서비스 계정의 숫자 ID를 찾았으면 서비스 계정을 삭제 취소할 수 있습니다.
gcloud
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
-
gcloud beta iam service-accounts undelete
명령어를 실행하여 서비스 계정을 삭제 취소합니다.명령어:
gcloud beta iam service-accounts undelete ACCOUNT_ID
출력:
restoredAccount: email: SA_NAME@PROJECT_ID.iam.gserviceaccount.com etag: BwWWE7zpApg= name: projects/PROJECT_ID/serviceAccounts/SA_NAME@PROJECT_ID.iam.gserviceaccount.com oauth2ClientId: '123456789012345678901' projectId: PROJECT_ID uniqueId: 'ACCOUNT_ID'
REST
serviceAccounts.undelete
메서드는 삭제된 서비스 계정을 복원합니다.요청 데이터를 사용하기 전에 다음을 바꿉니다.
PROJECT_ID
: Google Cloud 프로젝트 ID. 프로젝트 ID는my-project
같은 영숫자 문자열입니다.SA_NUMERIC_ID
: 서비스 계정의 고유 숫자 ID
HTTP 메서드 및 URL:
POST https://iam.googleapis.com/v1/projects/PROJECT_ID/serviceAccounts/SA_NUMERIC_ID:undelete
요청을 보내려면 다음 옵션 중 하나를 펼칩니다.
계정을 삭제 취소할 수 있으면 다음과 같이 복원된 서비스 계정에 대한 세부정보와 함께
200 OK
응답 코드가 표시됩니다.{ "restoredAccount": { "name": "projects/my-project/serviceAccounts/my-service-account@my-project.iam.gserviceaccount.com", "projectId": "my-project", "uniqueId": "123456789012345678901", "email": "my-service-account@my-project.iam.gserviceaccount.com", "displayName": "My service account", "etag": "BwUp3rVlzes=", "description": "A service account for running jobs in my project", "oauth2ClientId": "987654321098765432109" } }
다음 단계
- 서비스 계정을 나열하고 수정하는 방법 알아보기
- 서비스 계정을 포함하여 모든 유형의 주 구성원에 IAM 역할 부여 과정 검토
- 리소스에 서비스 계정 연결 방법 알아보기
직접 사용해 보기
Google Cloud를 처음 사용하는 경우 계정을 만들고 Google 제품의 실제 성능을 평가해 보세요. 신규 고객에게는 워크로드를 실행, 테스트, 배포하는 데 사용할 수 있는 $300의 무료 크레딧이 제공됩니다.
무료로 시작하기달리 명시되지 않는 한 이 페이지의 콘텐츠에는 Creative Commons Attribution 4.0 라이선스에 따라 라이선스가 부여되며, 코드 샘플에는 Apache 2.0 라이선스에 따라 라이선스가 부여됩니다. 자세한 내용은 Google Developers 사이트 정책을 참조하세요. 자바는 Oracle 및/또는 Oracle 계열사의 등록 상표입니다.
최종 업데이트: 2024-12-23(UTC)