BYOC do Openflow: configuração de volumes EBS criptografados

Este tópico descreve as etapas para configurar uma implantação de BYOC do Openflow com volumes Elastic Blok Storage (EBS) criptografados usando um dos seguintes métodos:

Ambas as soluções fornecem volumes EBS criptografados que atendem aos seguintes requisitos de armazenamento de BYOC do Openflow:

  • Volume raiz para instância EC2 do Openflow Agent

  • Volumes raiz para instâncias EC2 em cada grupo de nós de cluster EKS

  • Volumes persistentes para tempos de execução do Openflow e componentes de suporte

Nota

  • $AWS_ACCOUNT_ID representa o ID da conta AWS em que o Openflow está implantado.

  • $AWS_REGION representa a região da AWS da conta, por exemplo us-west-2.

  • $AWS_KMS_KEY_ARN representa o Amazon Resource Name (ARN) da chave Amazon Key Management Service (AWS KMS) que o Openflow usará para os volumes EBS criptografados.

  • $DEPLOYMENT_KEY representa o identificador exclusivo do Openflow aplicado aos recursos de nuvem criados e gerenciados pelo Openflow para uma implantação específica. Ele está no parâmetro DataPlaneKey do modelo CloudFormation, também disponível no Openflow por meio da opção de menu View Details para a implantação.

Pré-requisitos

Este tópico pressupõe que você tenha concluído os pré-requisitos de configuração do BYOC do Openflow. Para obter mais informações, consulte Configuração do Openflow - BYOC.

Você também deve ter acesso a uma chave AWS KMS que o Openflow usará para os volumes EBS criptografados.

Entrada de chave AWS KMS específica para volumes EBS criptografados

Ao carregar o modelo do CloudFormation para a implantação BYOC do Openflow, você pode fornecer o ARN da chave AWS KMS que o Openflow usa para os volumes EBS criptografados.

Usando essa configuração, o Openflow faz solicitações para volumes EBS criptografados, garantindo que todas as políticas SCP sejam atendidas. A Snowflake recomenda essa abordagem para a maioria dos clientes.

Isso permite que você use chaves KMS diferentes para aplicativos distintos, reduzindo o risco de uma chave única ser comprometida.

Para garantir que o Openflow tenha as permissões necessárias para usar essa chave, execute as seguintes tarefas:

  1. Certifique-se de que a chave AWS KMS conceda permissões à função de serviço de dimensionamento automático da AWS. A política de chaves deve incluir a seguinte instrução:

    {
    "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": "*"
    }
    
    Copy
  2. Insira o ARN da chave AWS KMS no parâmetro EBSKMSKeyArn da pilha do CloudFormation ao carregar o modelo.

    Por exemplo, arn:aws:kms:$AWS_REGION:$AWS_ACCOUNT_ID:key/1a1a11aa-aa1a-aaa1a-a1a1-000000000000.

    Aproximadamente 20 minutos depois de carregar o modelo do CloudFormation, a implantação BYOC do Openflow cria uma nova função do IAM chamada $DEPLOYMENT_KEY-eks-role.

  3. Adicione a seguinte instrução à política de chaves KMS para conceder permissões ao Openflow para usar a chave:

    {
    "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": "*"
    }
    
    Copy

O Openflow detecta automaticamente as novas permissões para a chave KMS e continua o processo de instalação. A implantação BYOC do Openflow se tornará Active após cerca de 20 minutos.

Habilitação de volumes EBS criptografados por padrão na conta AWS

As contas AWS podem criptografar novos volumes EBS por padrão seguindo a documentação de criptografia EBS por padrão da AWS.

Com essa configuração, o Openflow faz solicitações para volumes EBS não criptografados, mas a AWS API retorna um volume EBS criptografado. As etapas a seguir garantem que o Openflow tenha permissões para usar a chave KMS para esses volumes criptografados.

Se você usar a chave gerenciada pela AWS aws/ebs ou sua própria chave KMS, anexe uma política do IAM à função do IAM $DEPLOYMENT_KEY-eks-role do Openflow, que concede as permissões necessárias para usar a chave.

  1. Crie uma política do IAM para permitir que o Openflow use a chave KMS substituindo $AWS_KMS_KEY_ARN pelo ARN da chave KMS.

    {
    "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"
    }
    
    Copy
  2. Certifique-se de que a chave AWS KMS conceda permissões à função de serviço de dimensionamento automático da AWS. A política de chaves deve incluir a seguinte instrução:

    {
    "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": "*"
    }
    
    Copy
  3. Ao carregar o modelo do CloudFormation de BYOC do Openflow:

    • Deixe o parâmetro EBSKMSKeyArn opcional em branco.

    • Defina o parâmetro AdditionalEksRolePolicyArns com o ARN da nova política do IAM que foi criada. Por exemplo, arn:aws:iam::$AWS_ACCOUNT_ID:policy/openflow-kms-key-access-policy.

    Aproximadamente 20 minutos depois de carregar o modelo do CloudFormation, a implantação BYOC do Openflow cria uma nova função do IAM chamada $DEPLOYMENT_KEY-eks-role.

  4. Adicione a seguinte instrução à política de chaves KMS para conceder permissões ao Openflow para usar a chave:

    {
    "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": "*"
    }
    
    Copy

O Openflow detecta automaticamente as novas permissões para a chave KMS e continua o processo de instalação. A implantação BYOC do Openflow se tornará Active após cerca de 20 minutos.