이 페이지에서는 고객 관리 암호화 키 (CMEK) 정책을 만든 후 키 액세스를 확인하는 방법을 설명합니다.
키 액세스 확인 사용 사례
언제든지 키 액세스 확인을 다시 실행하여 키 문제를 식별할 수 있습니다.
키 사용 중지: 키가 사용 중지되면 볼륨에 대한 데이터 액세스가 중지됩니다.
키 폐기: 키가 폐기되면 데이터에 대한 액세스를 복원할 수 없습니다. 볼륨을 삭제하여 용량을 확보할 수 있습니다. 자세한 내용은 볼륨 삭제를 참고하세요.
권한 누락: 권한이 삭제되면 권한을 부여하는 안내가 표시됩니다. 키를 읽을 서비스 권한 부여를 참고하세요.
서비스에 키 읽기 권한 부여
CMEK 키를 사용하려면 먼저 지정된 키를 읽을 수 있는 서비스 권한을 부여해야 합니다. NetApp Volumes는 올바른 Google Cloud CLI 명령어를 제공합니다. 서비스에 필요한 Cloud KMS 키 권한을 부여하려면 적절한 권한이 있는 프로젝트 전체 커스텀 역할을 만든 다음 커스텀 역할을 적절한 서비스 계정에 바인딩하는 키 역할 바인딩을 만들어야 합니다. 맞춤 역할을 만들려면 Google 계정 내 프로젝트에 대한 역할 관리자(roles/iam.RoleAdmin) 권한이 필요하고, NetApp Volumes에 키 액세스 권한을 부여하려면 Cloud KMS 관리자 (roles/cloudkms.admin) 권한이 필요합니다.
다음 안내에 따라 Google Cloud 콘솔 또는 Google Cloud CLI를 사용하여 키를 읽을 서비스 권한을 부여합니다.
콘솔
Google Cloud 콘솔에서 NetApp Volumes 페이지로 이동합니다.
CMEK 정책을 선택합니다.
수정하려는 CMEK 정책을 찾아 더보기 메뉴를 클릭합니다.
키 액세스 인증을 선택합니다.
아직 키 액세스를 구성하지 않은 경우 확인이 실패하고 UI에 키 액세스 권한을 부여하는 방법이 표시됩니다. 필요한 Google Cloud CLI 명령어를 실행한 후 다시 시도를 클릭하여 키 확인을 다시 실행합니다.
인증에 성공하면 인증 성공을 나타내는 대화상자가 표시됩니다. 인증에 실패하면 다시 시도를 클릭하여 키 확인을 다시 실행합니다.
gcloud
다음 kms-configs verify 명령어를 실행합니다.
gcloud netapp kms-configs verify CONFIG_NAME \ --project=PROJECT_ID \ --location=LOCATION
다음 정보를 바꿉니다.
CONFIG_NAME: 구성의 이름입니다.PROJECT_ID: 액세스 권한을 부여할 고유한 프로젝트 ID입니다.LOCATION: 구성의 리전입니다.
키 확인이 성공하면 명령어는 다음 메시지를 출력합니다.
healthy: true
키 확인에 실패하면 키에 대한 액세스 권한을 부여해야 합니다.
다음 명령어를 실행하여 서비스 키 액세스 권한을 부여할 Google Cloud CLI 명령어를 식별합니다. 다음 명령어를 실행하려면 cloudkms.admin 역할이 필요합니다.
gcloud netapp kms-configs describe CONFIG_NAME \ --project=PROJECT_ID \ --location=LOCATION \ --format="value(instructions)"
추가 선택적 플래그에 대한 자세한 내용은 Cloud Key Management Service용 Google Cloud SDK 문서를 참고하세요.
자세한 내용은 Cloud Key Management Service 사용자 문서를 참고하세요.
CMEK용 VPC 서비스 제어 인그레스 규칙 구성
VPC 서비스 제어를 사용하는 경우 관련 프로젝트, 리전, 서비스 계정의 트래픽을 허용하도록 인그레스 규칙을 업데이트해야 합니다.
다음 템플릿을 사용하여 필요한 권한을 구성합니다.
{
"ingressFrom": {
"identities": [
"serviceAccount:n-cmek-usea4-1234567890@netapp-cmek-prod.iam.gserviceaccount.com"
],
"sources": [
{
"resource": "projects/112233445566"
}
]
},
"ingressTo": {
"operations": [
{
"methodSelectors": [
{
"method": "*"
}
],
"serviceName": "cloudkms.googleapis.com"
}
],
"resources": [
"projects/1234567890"
]
},
"title": "CMEK for NetApp Volumes"
}
템플릿에서 다음 필드를 업데이트합니다.
ingressFrom.identities: NetApp Volumes에서 사용하는 서비스 계정의 쉼표로 구분된 목록을 입력합니다. 서비스는 각 프로젝트 및 위치에 대해 다음 형식의 고유한 서비스 계정을 사용합니다.
serviceAccount:n-cmek-location-short-name-your-project-number@netapp-cmek-prod.iam.gserviceaccount.com여기서
location-short-name는 리전의 약식입니다(예:us-east4의 경우usea4).your-project-number는 프로젝트 번호입니다.다음 명령어를 사용하여 이 서비스 계정 이름을 쿼리할 수 있습니다.
gcloud netapp kms-configs describe NAME --location LOCATION --format="value(serviceAccount)"
다음 정보를 바꿉니다.
NAME: CMEK 정책의 이름입니다.LOCATION: CMEK 정책의 리전입니다.
템플릿의 예시에는
us-east4리전의 Google 프로젝트1234567890에 대한 서비스 계정 이름이 표시되어 있습니다.ingressTo.resources: 볼륨이 포함된 프로젝트의 프로젝트 번호를 입력합니다. 템플릿의 예시에서는
projects/1234567890를 사용합니다.ingressFrom.sources: 서비스에서 사용하는 백엔드 프로젝트의 쉼표로 구분된 목록을 입력합니다. CMEK 볼륨을 호스팅해야 하는 각 Google 리전에 항목을 하나씩 추가해야 합니다. 지역의 백엔드 프로젝트 번호를 확인하려면 Google Cloud 고객 지원팀에 문의하세요. 템플릿에서
projects/112233445566는 리전의 백엔드 프로젝트 번호로 바꿔야 하는 자리표시자입니다.
cloudkms.googleapis.com 서비스의 개별 메서드를 지정할 수 없습니다. *를 사용하여 모든 메서드를 허용해야 합니다.