고객 관리 암호화 키(CMEK)

기본적으로 Google Cloud 는 Google에서 관리하는 암호화 키를 사용하여 데이터를 저장할 때 자동으로 암호화합니다.

데이터를 보호하는 키와 관련된 특정 규정 준수 또는 규제 요구사항이 있으면 Document AI에 고객 관리 암호화 키 (CMEK)를 사용할 수 있습니다. Google이 데이터를 보호하는 암호화 키를 관리하는 대신 사용자가 Cloud Key Management Service (KMS)에서 제어 및 관리하는 키를 사용하여 Document AI 프로세서가 보호됩니다.

이 가이드에서는 Document AI용 CMEK에 대해 설명합니다. CMEK를 사용 설정하는 시기와 이유를 포함한 일반적인 CMEK에 대한 자세한 내용은 Cloud Key Management Service 문서를 참고하세요.

기본 요건

Document AI 서비스 에이전트에는 사용하는 키에 대한 Cloud KMS CryptoKey 암호화/복호화 역할이 있어야 합니다.

다음 예시에서는 Cloud KMS 키에 대한 액세스 권한을 제공하는 역할을 부여합니다.

gcloud

gcloud kms keys add-iam-policy-binding key \
    --keyring key-ring \
    --location location \
    --project key_project_id \
    --member serviceAccount:service-project_number@gcp-sa-prod-dai-core.iam.gserviceaccount.com \
    --role roles/cloudkms.cryptoKeyEncrypterDecrypter

key를 키 이름으로 바꿉니다. key-ring을 키가 배치된 키링의 이름으로 바꿉니다. location을 키링의 Document AI 위치로 바꿉니다. key_project_id을 키링의 프로젝트로 바꿉니다. project_number를 프로젝트 번호로 바꿉니다.

C#

자세한 내용은 Document AI C# API 참조 문서를 참고하세요.

Document AI에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.


using Google.Cloud.Iam.V1;
using Google.Cloud.Kms.V1;

public class IamAddMemberSample
{
    public Policy IamAddMember(
      string projectId = "my-project", string locationId = "us-east1", string keyRingId = "my-key-ring", string keyId = "my-key",
      string member = "user:foo@example.com")
    {
        // Create the client.
        KeyManagementServiceClient client = KeyManagementServiceClient.Create();

        // Build the resource name.
        CryptoKeyName resourceName = new CryptoKeyName(projectId, locationId, keyRingId, keyId);

        // The resource name could also be a key ring.
        // var resourceName = new KeyRingName(projectId, locationId, keyRingId);

        // Get the current IAM policy.
        Policy policy = client.IAMPolicyClient.GetIamPolicy(
            new GetIamPolicyRequest
            { 
                ResourceAsResourceName = resourceName
            });

        // Add the member to the policy.
        policy.AddRoleMember("roles/cloudkms.cryptoKeyEncrypterDecrypter", member);

        // Save the updated IAM policy.
        Policy result = client.IAMPolicyClient.SetIamPolicy(
            new SetIamPolicyRequest
            {
                ResourceAsResourceName = resourceName,
                Policy =