AWS で顧客管理キーを使用するようにCloud Volumes ONTAP を設定する
Amazon Web Services (AWS) の暗号化を Cloud Volumes ONTAP で使用する場合は、AWS Key Management Service (KMS) を設定する必要があります。
カスタマーマスターキー(CMK)は、AWSまたは顧客自身が管理できます。NetApp Console および Cloud Volumes ONTAP と同じ AWS アカウント、または別の AWS アカウント(共有アカウント)に配置できます。AWS では、キー管理は AWS Console を通じてのみ可能です。詳細については、 "AWS Key Management Service"を参照してください。
-
NetApp Console エージェントの AWS の ID およびアクセス管理(IAM)ロールに関する情報を確認してください。
-
アクティブなCMKが存在することを確認してください。
単一アカウント用に顧客管理KMSキーを設定する
コンソールエージェントと Cloud Volumes ONTAP が同じ AWS アカウントにある場合は、以下の手順を実行してください。
-
コンソールエージェントの IAM ロールに S3 暗号化のアクセス許可を付与します。IAM ロールポリシーに `s3:PutEncryptionConfiguration`アクションを追加します:
{ "Sid": "cvoServicePolicy", "Effect": "Allow", "Action": [ "s3:PutEncryptionConfiguration" ], "Resource": "*" } -
コンソールエージェントが顧客管理の暗号化キー(CMEK)にアクセスできるようにします。AWS Console で以下のいずれかの方法を使用してください:
-
AWS Console で、KMS > Customer managed keys に移動し、CMEK キーを選択します。
-
*キーユーザー*セクションで、*追加*を選択します。
-
コンソールエージェントインスタンスのロールを選択します(例:
occm-role)。*追加*をクリックします。 -
変更を保存します。
-
AWS Console で、KMS に移動して、キーを検索してください。
-
「キーポリシー」タブを選択し、「編集」を選択します。
-
キーへのアクセスを可能にするステートメントを検索し
AllowUseOfTheKey、Console エージェントロールの Amazon Resource Name(ARN)を `Principal`配列に追加します。以下の例のプレースホルダーを、ご自身の値に置き換えてください。-
YOUR-ACCOUNT-ID:12桁のAWSアカウントID -
YOUR-AGENT-ROLE-NAME:コンソールエージェントのIAMロールの名前{ "Sid": "AllowUseOfTheKey", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::`YOUR-ACCOUNT-ID`:role/`YOUR-AGENT-ROLE-NAME`" ] }, "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:CreateGrant", "kms:DescribeKey", "kms:ListKeys" ], "Resource": "*" }
-
-
変更を保存します。
共有アカウント用に顧客管理KMSキーを設定する
コンソールエージェントが 1 つの AWS アカウント (アカウント A) で実行され、Cloud Volumes ONTAP が別の AWS アカウント (アカウント B) にデプロイされている場合は、まずアカウント A のすべての単一アカウントの手順を完了してから、これらの手順を完了してください。
-
アカウント B の引き受けたロールに `s3:PutEncryptionConfiguration`アクションを追加します。これは、FabricPoolバケット暗号化呼び出しがアカウント B の想定ロールで実行されるために必要です。この権限は、階層化に使用される S3 バケットのデフォルト暗号化を有効にするためのものです。
{ "Sid": "cvoServicePolicy", "Effect": "Allow", "Action": [ "s3:PutEncryptionConfiguration" ], "Resource": "*" } -
CMEK キーがアカウント B に保存されている場合、アカウント A のエージェントロールは、そのキーを使用するために直接アクセス権が必要です。アカウント B の KMS キーポリシーは、クロスアカウントアクセスを許可します。
-
アカウント B の AWS コンソールで、KMS > 顧客管理キー に移動し、Cloud Volumes ONTAP の導入に使用する CMEK キーを選択します。
-
「キーポリシー」タブを開き、「編集」を選択します。
-
アカウント A の IAM ロールにキーへのアクセス権を付与するステートメントを追加します。
{ "Sid": "Allow use of the key from the agent account", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::ACCOUNT-A-ID:role/`YOUR-AGENT-ROLE-NAME`" }, "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:CreateGrant", "kms:DescribeKey", "kms:ListKeys", "kms:ListAliases" ], "Resource": "*" }アカウント B のキーポリシーは、アカウント A の Console エージェントロールがそのキーを使用することを信頼できるかどうかを制御します。このポリシーステートメントは、アカウント A の IAM ポリシーに加えて必要です。
-
-
アカウント A のコンソールエージェントの IAM ポリシーを更新し、アカウント B のキーに対する KMS API 呼び出しを許可します。
-
アカウント A の AWS コンソールで、IAM > ロール に移動し、コンソール エージェント ロールを選択します(例:
occm-roleまたはNetAppCloudManagerRole)。 -
アカウントBのキーに対するKMS権限を追加または更新します。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "kms:List*", "kms:Describe*", "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:CreateGrant" ], "Resource": [ "arn:aws:kms:*:ACCOUNT-B-ID:key/*", "arn:aws:kms:*:ACCOUNT-B-ID:alias/*" ] } ] }アカウント B のキーポリシーは、キーへのアクセスを制御します。アカウント A の IAM ポリシーでは、Console エージェントロールが KMS API 呼び出しを行うことが許可されています。いずれかのアカウントに設定が欠けている場合、AWS はアクセスを制限します。
-
-
アカウントBのCMEKに、アカウントAを許可された外部AWSアカウントとして追加します。
-
アカウント B の AWS KMS コンソールで、対象の KMS キーを開き、*その他の AWS アカウント*セクションを探します。
-
*その他のAWSアカウントを追加*を選択し、アカウントAのAWSアカウントIDを入力します。


-
-
Amazonのドキュメント:
-
NetApp Consoleドキュメント: