Openflow BYOC - 暗号化された EBS 量の設定

このトピックでは、以下のメソッドのいずれかを使用して、暗号化されたElastic Blockストレージ(EBS)量を使用してOpenflow BYOC デプロイメントを設定する手順について説明します。

これらのソリューションはどちらもOpenflow BYOC の次のストレージ要件を満たす暗号化された EBS 量を提供します。

  • Openflowエージェント EC2 インスタンスのルート量

  • 各 EKS クラスターノードグループ内の EC2 インスタンスのルート量

  • Openflowのランタイムおよびサポートコンポーネントの永続量

注釈

  • $AWS_ACCOUNT_ID は、Openflowがデプロイされているアカウントの AWS アカウント ID を表します。

  • $AWS_REGION はアカウントの AWS リージョンを表します(例: us-west-2

  • $AWS_KMS_KEY_ARN は、Openflowが暗号化された EBS 量に使用するAmazon Key Management Service(AWSKMS)キーのAmazonリソース名(ARN)を表します。

  • $DEPLOYMENT_KEY は、特定の展開のためにOpenflowによって作成および管理されるクラウドリソースに適用されるOpenflowの一意の識別子を表します。これは、 CloudFormation テンプレートの DataPlaneKey パラメーターにあり、Openflowではデプロイの View Details メニューオプションを通じても利用できます。

前提条件

このトピックでは、Openflow BYOC を設定するための前提条件を満たしていることを前提としています。詳細については、 Openflowの設定 - BYOC をご参照ください。

また、Openflowが暗号化された EBS 量に使用する AWSKMS キーへのアクセス権も必要です。

暗号化された EBS 量に特定の AWSKMS キーを提供する

Openflow BYOC デプロイ用の CloudFormation テンプレートをアップロードするときに、暗号化された EBS 量にOpenflowが使用する AWSKMS キーの ARN を提供できます。

この構成を使用して、Openflowは暗号化された EBS 量をリクエストし、すべての SCP ポリシーが満たされていることを確認します。Snowflakeはほとんどのお客様にこのアプローチを推奨しています。

これにより、異なるアプリケーションに異なる KMS キーを使用できるようになり、単一のキーが侵害されるリスクが軽減されます。

Openflowがこのキーを使用するために必要な権限を持っていることを確認するには、次のタスクを実行します。

  1. AWSKMS キーが AWS 自動スケーリングサービスロールに権限を付与していることを確認します。キーポリシーには、次のステートメントが含まれている必要があります。

    {
    "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. テンプレートをアップロードするときに、 CloudFormation スタックの EBSKMSKeyArn パラメーターに AWSKMS キーの ARN を入力します。

    例: arn:aws:kms:$AWS_REGION:$AWS_ACCOUNT_ID:key/1a1a11aa-aa1a-aaa1a-a1a1-000000000000

    CloudFormation テンプレートをアップロードしてから約20分後、Openflow BYOC デプロイにより $DEPLOYMENT_KEY-eks-role という新しい名前の IAM ロールが作成されます。

  3. Openflowがキーを使用するための権限を付与するには、 KMS キーポリシーに次のステートメントを追加します。

    {
    "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

Openflowは、 KMS キーの新しい権限を自動的に検出し、インストールプロセスを続行します。Openflow BYOC のデプロイは約20分後に Active になります。

AWS アカウントで暗号化された EBS 量をデフォルトで有効にする

AWS アカウントは、 `AWS EBS のデフォルト暗号化に関するドキュメント<https://docs.aws.amazon.com/ebs/latest/userguide/encryption-by-default.html>`_ に従うことで、新しい EBS 量をデフォルトで暗号化できます。

この構成では、Openflowは暗号化されていない EBS 量に対してリクエストを行いますが、 AWSAPI は暗号化された EBS 量を返します。次のステップで、Openflowがこれらの暗号化された量に対して KMS キーを使用する権限を持っていることを確認します。

AWS 管理キー:code:aws/ebs を使用するか、独自の KMS キーを使用するかを選択する場合、キーの使用に必要な権限を付与する IAM ポリシーをOpenflow IAM ロール:code:$DEPLOYMENT_KEY-eks-role にアタッチする必要があります。

  1. $AWS_KMS_KEY_ARN を KMS キーの ARN に置き換えて、Openflowが KMS 機0を使用できるようにする IAM ポリシーを作成します。

    {
    "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. AWSKMS キーが AWS 自動スケーリングサービスロールに権限を付与していることを確認します。キーポリシーには、次のステートメントが含まれている必要があります。

    {
    "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. Openflow BYOCCloudFormation テンプレートをアップロードする場合:

    • オプションの EBSKMSKeyArn パラメーターを空白のままにします。

    • AdditionalEksRolePolicyArns パラメーターを、依然に作成した新しい IAM ポリシーの ARN に設定します。例: arn:aws:iam::$AWS_ACCOUNT_ID:policy/openflow-kms-key-access-policy

    CloudFormation テンプレートをアップロードしてから約20分後、Openflow BYOC デプロイにより $DEPLOYMENT_KEY-eks-role という新しい名前の IAM ロールが作成されます。

  4. Openflowがキーを使用するための権限を付与するには、 KMS キーポリシーに次のステートメントを追加します。

    {
    "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

Openflowは、 KMS キーの新しい権限を自動的に検出し、インストールプロセスを続行します。Openflow BYOC のデプロイは約20分後に Active になります。