Openflow BYOC - 암호화된 EBS 볼륨 설정

Openflow BYOC - 암호화된 EBS 볼륨 설정

다음 방법 중 하나로 암호화된 Elastic Block Storage(EBS) 볼륨을 사용하여 Openflow BYOC 배포를 설정하는 단계를 설명합니다.

출처: Snowflake 문서

본문

이 주제에서는 다음 방법 중 하나로 암호화된 Elastic Block Storage(EBS) 볼륨을 사용하여 Openflow BYOC 배포를 설정하는 단계를 설명합니다:

  • 암호화된 EBS 볼륨에 특정 AWS KMS Key 제공
  • AWS 계정에 대해 암호화된 EBS 볼륨을 기본으로 활성화

이 두 솔루션 모두 Openflow BYOC의 다음 스토리지 요구 사항을 충족하는 암호화된 EBS 볼륨을 제공합니다:

  • Openflow Agent EC2 인스턴스의 루트 볼륨
  • 각 EKS 클러스터 노드 그룹의 EC2 인스턴스 루트 볼륨
  • Openflow의 런타임 및 지원 구성 요소를 위한 영구 볼륨

참고

  • $AWS_ACCOUNT_ID는 Openflow가 배포된 계정의 AWS Account ID를 나타냅니다.
  • $AWS_REGION은 계정의 AWS 리전(예: us-west-2)을 나타냅니다.
  • $AWS_KMS_KEY_ARN은 Openflow가 암호화된 EBS 볼륨에 사용할 Amazon Key Management Service(AWS KMS) 키의 Amazon Resource Name(ARN)을 나타냅니다.
  • $DEPLOYMENT_KEY는 특정 배포를 위해 Openflow가 만들고 관리하는 클라우드 리소스에 적용되는 Openflow 고유 식별자를 나타냅니다. 이는 CloudFormation 템플릿의 DataPlaneKey 매개변수에 있으며, 배포에 대한 View Details 메뉴 옵션에서도 볼 수 있습니다.

사전 요구 사항

이 주제는 Openflow BYOC 설정 사전 요구 사항을 완료했다고 가정합니다. 자세한 내용은 Set up Openflow - BYOC를 참조하세요.

또한 Openflow가 암호화된 EBS 볼륨에 사용할 AWS KMS 키에 대한 접근 권한이 있어야 합니다.

암호화된 EBS 볼륨에 특정 AWS KMS Key 제공

Openflow BYOC 배포의 CloudFormation 템플릿을 업로드할 때 Openflow가 암호화된 EBS 볼륨에 사용하는 AWS KMS 키의 ARN을 제공할 수 있습니다.

이 구성을 사용하면 Openflow가 암호화된 EBS 볼륨 요청을 만들어 모든 SCP 정책이 충족되도록 합니다. Snowflake는 대부분의 고객에게 이 접근 방식을 권장합니다.

이를 통해 애플리케이션별로 다른 KMS 키를 사용할 수 있어 단일 키가 손상될 위험을 줄일 수 있습니다.

Openflow가 이 키를 사용하는 데 필요한 권한을 갖도록 하려면 다음 작업을 수행하세요:

  1. AWS KMS 키가 AWS Autoscaling Service Role에 권한을 부여하는지 확인하세요. Key Policy에 다음 문이 포함되어야 합니다:
{
  "Sid": "Allow Autoscaling to use the key",
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::$AWS_ACCOUNT_ID:role/aws-service-role/autoscaling.amazonaws.com/AWSServiceRoleForAutoScaling"
  },
  "Action": [
    "kms:CreateGrant",
    "kms:Decrypt",
    "kms:Encrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*",
    "kms:DescribeKey"
  ],
  "Resource": "*"
}
  1. 템플릿을 업로드할 때 CloudFormation 스택의 EBSKMSKeyArn 매개변수에 AWS KMS 키의 ARN을 입력합니다.

    예: arn:aws:kms:$AWS_REGION:$AWS_ACCOUNT_ID:key/1a1a11aa-aa1a-aaa1a-a1a1-000000000000. CloudFormation 템플릿을 업로드한 후 약 20분이 지나면 Openflow BYOC 배포가 $DEPLOYMENT_KEY-eks-role이라는 이름의 새 IAM Role을 만듭니다.

  2. KMS 키 정책에 다음 문을 추가하여 Openflow가 키를 사용할 권한을 부여하세요:

{
  "Sid": "Allow Openflow Deployment to encrypt EBS volumes",
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::$AWS_ACCOUNT_ID:role/$DEPLOYMENT_KEY-eks-role"
  },
  "Action": [
    "kms:Decrypt",
    "kms:Encrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*",
    "kms:CreateGrant",
    "kms:DescribeKey"
  ],
  "Resource": "*"
}

Openflow는 KMS 키에 대한 새 권한을 자동으로 감지하고 설치 프로세스를 계속합니다. Openflow BYOC 배포는 약 20분 후에 Active가 됩니다.

AWS 계정에 대해 암호화된 EBS 볼륨을 기본으로 활성화

AWS 계정은 AWS EBS encryption by default 문서를 따라 새 EBS 볼륨을 기본적으로 암호화할 수 있습니다.

이 구성을 사용하면 Openflow가 암호화되지 않은 EBS 볼륨을 요청하지만 AWS API는 암호화된 EBS 볼륨을 반환합니다. 다음 단계는 Openflow가 이러한 암호화된 볼륨에 KMS 키를 사용할 권한을 갖도록 보장합니다.

AWS 관리 키 aws/ebs 또는 자체 KMS 키를 사용하도록 선택하든, 키를 사용하는 데 필요한 권한을 부여하는 IAM Policy를 Openflow IAM Role $DEPLOYMENT_KEY-eks-role에 연결해야 합니다.

  1. KMS 키의 ARN으로 $AWS_KMS_KEY_ARN를 바꿔 Openflow가 KMS 키를 사용하도록 허용하는 IAM Policy를 만듭니다.
{
  "Sid": "Allow Openflow EKS Role to encrypt EBS volumes",
  "Effect": "Allow",
  "Action": [
    "kms:Decrypt",
    "kms:Encrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*",
    "kms:CreateGrant",
    "kms:DescribeKey"
  ],
  "Resource": "$AWS_KMS_KEY_ARN"
}
  1. AWS KMS 키가 AWS Autoscaling Service Role에 권한을 부여하는지 확인하세요. Key Policy에 다음 문이 포함되어야 합니다:
{
  "Sid": "Allow Autoscaling to use the key",
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::$AWS_ACCOUNT_ID:role/aws-service-role/autoscaling.amazonaws.com/AWSServiceRoleForAutoScaling"
  },
  "Action": [
    "kms:CreateGrant",
    "kms:Decrypt",
    "kms:Encrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*",
    "kms:DescribeKey"
  ],
  "Resource": "*"
}
  1. Openflow BYOC CloudFormation 템플릿을 업로드할 때:

    선택적인 EBSKMSKeyArn 매개변수를 비워 둡니다.

  2. AdditionalEksRolePolicyArns 매개변수를 앞서 만든 새 IAM Policy의 ARN으로 설정합니다. 예: arn:aws:iam::$AWS_ACCOUNT_ID:policy/openflow-kms-key-access-policy.

  3. KMS 키 정책에 다음 문을 추가하여 Openflow가 키를 사용할 권한을 부여하세요:

{
  "Sid": "Allow Openflow Deployment to encrypt EBS volumes",
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::$AWS_ACCOUNT_ID:role/$DEPLOYMENT_KEY-eks-role"
  },
  "Action": [
    "kms:Decrypt",
    "kms:Encrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*",
    "kms:CreateGrant",
    "kms:DescribeKey"
  ],
  "Resource": "*"
}

Openflow는 KMS 키에 대한 새 권한을 자동으로 감지하고 설치 프로세스를 계속합니다. Openflow BYOC 배포는 약 20분 후에 Active가 됩니다.

더 알아보기 (Learn more)