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가 이 키를 사용하는 데 필요한 권한을 갖도록 하려면 다음 작업을 수행하세요:
- 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": "*"
}
-
템플릿을 업로드할 때 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을 만듭니다. -
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에 연결해야 합니다.
- 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"
}
- 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": "*"
}
-
Openflow BYOC CloudFormation 템플릿을 업로드할 때:
선택적인
EBSKMSKeyArn매개변수를 비워 둡니다. -
AdditionalEksRolePolicyArns매개변수를 앞서 만든 새 IAM Policy의 ARN으로 설정합니다. 예:arn:aws:iam::$AWS_ACCOUNT_ID:policy/openflow-kms-key-access-policy. -
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가 됩니다.