대부분의 Google Cloud 리소스에서는 testIamPermissions()
메서드가 공개되어 있으므로 현재 인증된 호출자에게 리소스에 대해 하나 이상의 특정 IAM 권한이 부여되었는지 여부를 프로그래매틱 방식으로 확인할 수 있습니다. testIamPermissions()
메서드는 리소스 식별자와 권한 집합을 입력 매개변수로 취하고 호출자에게 허용된 권한 집합을 반환합니다.
testIamPermissions()
메서드를 사용하여 사용자가 웹 애플리케이션에서 관리 도구에 대한 액세스 권한을 가져야 하는지 여부를 결정할 수 있습니다. 예를 들어 이 메서드를 사용하여 사용자의 권한에 따라 Google Cloud 리소스에 대한 자세한 정보를 표시할지 여부를 결정할 수 있습니다.
예를 들어 현재 인증된 사용자에게 프로젝트 삭제 권한이 있는지 확인하려면 프로젝트 ID(예: foo-project
) 및 resourcemanager.projects.delete
권한을 입력 매개변수로 제공하여 projects.testIamPermissions()
메서드를 호출하면 됩니다. 호출자에게 resourcemanager.projects.delete
권한이 부여되었다면 응답 본문에 나열될 것입니다. 호출자에게 이 권한이 없다면 응답 본문에 아무 권한도 표시되지 않을 것입니다.
testIamPermissions()
메서드는 인증된 사용자가 볼 권한이 있는지 여부에 근거하여 Google Cloud 리소스를 표시해야 하는 타사 그래픽 사용자 인터페이스(GUI)를 염두에 두고 만든 것입니다. 예를 들어 Google Cloud 콘솔은 내부적으로 testIamPermissions()
메서드를 사용하여 인증 후 볼 수 있는 리소스와 기능을 결정합니다. 일반적으로 사용자에 따라 다른 권한이 부여되므로 그에 맞게 Google Cloud 콘솔은 항목을 숨기거나 공개합니다.
시작하기 전에
Enable the Resource Manager API.
인증을 설정합니다.
Select the tab for how you plan to use the samples on this page:
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 인증 문서의 로컬 개발 환경 인증 설정을 참조하세요.
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 인증 문서의 로컬 개발 환경 인증 설정을 참조하세요.
자바
이 페이지의 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 인증 문서의 로컬 개발 환경 인증 설정을 참조하세요.
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 인증 문서의 로컬 개발 환경 인증 설정을 참조하세요.
REST
로컬 개발 환경에서 이 페이지의 REST API 샘플을 사용하려면 gcloud CLI에 제공하는 사용자 인증 정보를 사용합니다.
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
자세한 내용은 Google Cloud 인증 문서의 REST 사용 인증을 참조하세요.
필요한 역할
권한을 테스트하는 데 IAM 역할은 필요하지 않습니다.
권한 테스트 방법
이 예시는 Google Cloud 프로젝트에 대한
resourcemanager.projects.get
및resourcemanager.projects.delete
권한을 테스트하는 방법을 보여줍니다. 다른 Google Cloud 리소스의 권한을 테스트하려면 각 리소스가 노출한testIamPermissions()
메서드를 사용합니다. 예를 들어 Cloud Storage 버킷에 대한 IAM 권한을 테스트할 수 있습니다.C++
IAM용 클라이언트 라이브러리를 설치하고 사용하는 방법은 IAM 클라이언트 라이브러리를 참조하세요. 자세한 내용은 IAM C++ API 참고 문서를 참조하세요.
IAM에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 시작하기 전에를 참조하세요.
C#
Resource Manager에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 시작하기 전에를 참조하세요.
Resource Manager에 대해 클라이언트 라이브러리를 설치하고 사용하는 방법은 Resource Manager 클라이언트 라이브러리를 참조하세요.
IAM은 사용자 인증 정보를 생성하는 데 사용하는 서비스 계정의 권한을 테스트합니다.
Java
Resource Manager에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 시작하기 전에를 참조하세요.
Resource Manager에 대해 클라이언트 라이브러리를 설치하고 사용하는 방법은 Resource Manager 클라이언트 라이브러리를 참조하세요.
IAM은 사용자 인증 정보를 생성하는 데 사용하는 서비스 계정의 권한을 테스트합니다.
Python
Resource Manager에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 시작하기 전에를 참조하세요.
Resource Manager에 대해 클라이언트 라이브러리를 설치하고 사용하는 방법은 Resource Manager 클라이언트 라이브러리를 참조하세요.
IAM은 사용자 인증 정보를 생성하는 데 사용하는 서비스 계정의 권한을 테스트합니다.
REST
이 예시에서 사용자는 프로젝트에 대한 정보를 가져올 수 있지만 프로젝트를 삭제할 수는 없는 IAM 역할을 갖습니다.
Resource Manager API의
projects.testIamPermissions
메서드는 권한 목록을 받아 주 구성원이 보유한 권한을 테스트합니다.요청 데이터를 사용하기 전에 다음을 바꿉니다.
PROJECT_ID
: Google Cloud 프로젝트 ID. 프로젝트 ID는my-project
같은 영숫자 문자열입니다.
HTTP 메서드 및 URL:
POST https://cloudresourcemanager.googleapis.com/v1/projects/PROJECT_ID:testIamPermissions
JSON 요청 본문:
{ "permissions": [ "resourcemanager.projects.get", "resourcemanager.projects.delete" ] }
요청을 보내려면 다음 옵션 중 하나를 펼칩니다.
다음과 비슷한 JSON 응답이 표시됩니다.
{ "permissions": [ "resourcemanager.projects.get" ] }
다음 단계
주 구성원에 대한 액세스 권한 부여, 변경, 취소 방법 알아보기
달리 명시되지 않는 한 이 페이지의 콘텐츠에는 Creative Commons Attribution 4.0 라이선스에 따라 라이선스가 부여되며, 코드 샘플에는 Apache 2.0 라이선스에 따라 라이선스가 부여됩니다. 자세한 내용은 Google Developers 사이트 정책을 참조하세요. 자바는 Oracle 및/또는 Oracle 계열사의 등록 상표입니다.
최종 업데이트: 2024-11-22(UTC)