이 주제에서는 Cloud KMS 리소스에 대한 액세스를 관리하는 방법을 보여줍니다.
개요
키 및 키링과 같은 Cloud KMS 리소스에 대한 액세스를 관리하려면 Identity and Access Management(IAM) 역할을 부여해야 합니다. 키 순환 또는 데이터 암호화와 같이 특정한 암호화 작업을 수행하는 기능을 부여하거나 제한할 수 있습니다. 다음에 대해 IAM 역할을 부여할 수 있습니다.
- 키(직접 역할 부여)
- 해당 키링의 모든 키로 상속되는 키링
- 프로젝트의 모든 키로 상속되는 Google Cloud 프로젝트
- 폴더 내 모든 프로젝트의 모든 키로 상속되는 Google Cloud 폴더
- 조직의 폴더에 있는 모든 키로 상속되는 Google Cloud 조직
Cloud KMS 작업과 IAM 역할 및 권한의 전체 목록은 권한 및 역할을 참조하세요. Cloud KMS 리소스의 전체 목록과 각 리소스 간의 관계는 Cloud KMS 리소스를 참조하세요.
시작하기 전에
이 작업을 완료하려면 Google Cloud 프로젝트에서 Cloud KMS 리소스를 관리할 수 있는 권한이 필요합니다. Cloud KMS 관리자 역할(roles/cloudkms.admin
)에는 필요한 권한이 포함됩니다.
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the required API.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the required API.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
- 키링과 같은 리소스를 만듭니다.
- 키링, 키, 키 버전 등 생성된 리소스의 리소스 ID를 가져옵니다.
소유자(roles/owner
) 또는 Cloud KMS 관리자(roles/cloudkms.admin
) 역할을 가진 IAM 주 구성원만 Cloud KMS 리소스에 대한 액세스 권한을 부여하거나 취소할 수 있습니다.
리소스에 역할 부여
다음 예시에서는 Cloud KMS 키에 대한 액세스 권한을 제공하는 역할을 부여합니다.
gcloud
명령줄에서 Cloud KMS를 사용하려면 먼저 최신 버전의 Google Cloud CLI로 설치 또는 업그레이드하세요.
gcloud kms keys add-iam-policy-binding key \ --keyring key-ring \ --location location \ --member principal-type:principal-email \ --role roles/role
key를 키 이름으로 바꿉니다. key-ring을 키가 배치된 키링의 이름으로 바꿉니다. location을 키링의 Cloud KMS 위치로 바꿉니다. principal-type 및 principal-email을 주 구성원 유형과 주 구성원의 이메일 주소로 바꿉니다. role을 추가할 역할의 이름으로 바꿉니다.
C#
이 코드를 실행하려면 먼저 C# 개발 환경을 설정하고 Cloud KMS C# SDK를 설치합니다.
Go
이 코드를 실행하려면 먼저 Go 개발 환경을 설정하고 Cloud KMS Go SDK를 설치합니다.
Java
이 코드를 실행하려면 먼저 자바 개발 환경을 설정하고 Cloud KMS 자바 SDK를 설치합니다.
Node.js
이 코드를 실행하려면 먼저 Node.js 개발 환경을 설정하고 Cloud KMS Node.js SDK를 설치합니다.
PHP
이 코드를 실행하려면 먼저 Google Cloud에서 PHP 사용에 관해 알아보고 Cloud KMS PHP SDK 설치하세요.
Python
이 코드를 실행하려면 먼저 Python 개발 환경을 설정하고 Cloud KMS Python SDK를 설치합니다.
Ruby
이 코드를 실행하려면 먼저 Ruby 개발 환경을 설정하고 Cloud KMS Ruby SDK를 설치합니다.
리소스에 대한 액세스 권한 취소
Cloud KMS 키에 대한 주 구성원의 액세스 권한을 삭제하려면 다음 안내를 따르세요.
gcloud
명령줄에서 Cloud KMS를 사용하려면 먼저 최신 버전의 Google Cloud CLI로 설치 또는 업그레이드하세요.
gcloud kms keys remove-iam-policy-binding key \ --keyring key-ring \ --location location \ --member principal-type:principal-email \ --role roles/role-name
key를 키 이름으로 바꿉니다. key-ring을 키가 배치된 키링의 이름으로 바꿉니다. location을 키링의 Cloud KMS 위치로 바꿉니다. principal-type 및 principal-email을 주 구성원 유형과 주 구성원의 이메일 주소로 바꿉니다. role-name을 삭제할 역할의 이름으로 바꿉니다.
모든 플래그 및 가능한 값에 대한 정보를 보려면 --help
플래그와 함께 명령어를 실행하세요.
C#
이 코드를 실행하려면 먼저 C# 개발 환경을 설정하고 Cloud KMS C# SDK를 설치합니다.
Go
이 코드를 실행하려면 먼저 Go 개발 환경을 설정하고 Cloud KMS Go SDK를 설치합니다.
Java
이 코드를 실행하려면 먼저 자바 개발 환경을 설정하고 Cloud KMS 자바 SDK를 설치합니다.
Node.js
이 코드를 실행하려면 먼저 Node.js 개발 환경을 설정하고 Cloud KMS Node.js SDK를 설치합니다.
PHP
이 코드를 실행하려면 먼저 Google Cloud에서 PHP 사용에 관해 알아보고 Cloud KMS PHP SDK 설치하세요.
Python
이 코드를 실행하려면 먼저 Python 개발 환경을 설정하고 Cloud KMS Python SDK를 설치합니다.
Ruby
이 코드를 실행하려면 먼저 Ruby 개발 환경을 설정하고 Cloud KMS Ruby SDK를 설치합니다.
리소스에 대한 권한 보기
Cloud KMS 키의 IAM 정책을 보려면 다음 안내를 따르세요.
gcloud
명령줄에서 Cloud KMS를 사용하려면 먼저 최신 버전의 Google Cloud CLI로 설치 또는 업그레이드하세요.
gcloud kms keys get-iam-policy key \ --keyring key-ring \ --location location
key를 키 이름으로 바꿉니다. key-ring을 키가 배치된 키링의 이름으로 바꿉니다. location을 키링의 Cloud KMS 위치로 바꿉니다.
모든 플래그 및 가능한 값에 대한 정보를 보려면 --help
플래그와 함께 명령어를 실행하세요.
C#
이 코드를 실행하려면 먼저 C# 개발 환경을 설정하고 Cloud KMS C# SDK를 설치합니다.
Go
이 코드를 실행하려면 먼저 Go 개발 환경을 설정하고 Cloud KMS Go SDK를 설치합니다.
Java
이 코드를 실행하려면 먼저 자바 개발 환경을 설정하고 Cloud KMS 자바 SDK를 설치합니다.
Node.js
이 코드를 실행하려면 먼저 Node.js 개발 환경을 설정하고 Cloud KMS Node.js SDK를 설치합니다.
PHP
이 코드를 실행하려면 먼저 Google Cloud에서 PHP 사용에 관해 알아보고 Cloud KMS PHP SDK 설치하세요.
Python
이 코드를 실행하려면 먼저 Python 개발 환경을 설정하고 Cloud KMS Python SDK를 설치합니다.
Ruby
이 코드를 실행하려면 먼저 Ruby 개발 환경을 설정하고 Cloud KMS Ruby SDK를 설치합니다.
최소 권한의 원칙
최소 권한 원칙을 실행하려면 리소스 계층 구조에서 가장 낮은 객체에 가장 제한된 권한 집합을 부여합니다.
복호화 권한은 없이 데이터 암호화 권한을 주 구성원에게 부여하려면 키에 대한
roles/cloudkms.cryptoKeyEncrypter
역할을 부여합니다.데이터 암호화 및 복호화 권한을 주 구성원에게 부여하려면 키에 대한
roles/cloudkms.cryptoKeyEncrypterDecrypter
역할을 부여합니다.데이터를 확인할 수 있지만 서명할 수 없는 권한을 주 구성원에게 부여하려면 키에 대한
roles/cloudkms.publicKeyViewer
역할을 부여합니다.데이터 서명 및 확인 권한을 주 구성원에게 부여하려면 키에 대한
roles/cloudkms.signerVerifier
역할을 부여합니다.키 관리 권한을 주 구성원에게 부여하려면 키에 대한
roles/cloudkms.admin
역할을 부여합니다.
이외에도 여러 가지가 있습니다. 권한 및 역할의 전체 목록은 Cloud KMS 권한 및 역할을 참조하세요.
계층 구조 및 상속
정책 결합은 프로젝트, 키링, 키, 가져오기 작업, 기타 Cloud KMS 리소스에서 지정할 수 있습니다.
키는 키링에 속하고 키링은 프로젝트에 속하므로 이 계층 구조보다 더 높은 수준의 특정 역할 또는 권한이 있는 주 구성원은 하위 리소스에 대해 동일한 권한을 상속합니다. 즉, 프로젝트에서 owner
역할을 가진 사용자는 이 프로젝트의 모든 키링 및 키에 대해서도 owner
역할을 가집니다. 마찬가지로, 키링에 대한 cloudkms.admin
역할을 부여받은 사용자는 이 키링의 모든 키에 대한 관련 권한을 가집니다.
반대는 사실이 아닙니다. 즉, 키에 대한 권한은 있지만 상위 키링에 대한 권한이 없는 사용자는 해당 키링에 대한 권한이 없습니다.
다음 단계
- Cloud KMS의 권한 및 역할 자세히 알아보기
- 키 만들기
- 데이터 암호화 및 복호화