翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
MLflow Apps の AWS KMS アクセス許可を使用する
MLflow Apps の暗号化を使用して、保管中のデータを保護できます。デフォルトでは、MLflowアプリは AWS 所有キーによるサーバー側の暗号化を使用します。SageMaker は、カスタマーマネージド KMS キーを使用したサーバー側暗号化のオプションもサポートしています。
注記
カスタマーマネージドキーは、SageMaker がMLflowアプリ用に管理するデータを暗号化します。独自の Amazon S3 アーティファクトストアに保存されているアーティファクトは暗号化されません。Amazon S3 バケットはお客様が作成および所有しており、 によって管理されていないため AWS、暗号化の設定はお客様の責任となります。カスタマーマネージドキーを使用してアーティファクトを暗号化するには、Amazon S3 バケットでデフォルトの暗号化を設定します。詳細については、「Amazon Simple Storage Service ユーザーガイド」で「Amazon S3 バケット向けのサーバー側のデフォルトの暗号化動作の設定」を参照してください。
AWS 所有キーによるサーバー側の暗号化
デフォルトでは、MLflowApps は AWS 所有キーを使用して保管中のデータを暗号化します。
カスタマーマネージド KMS キーによるサーバー側の暗号化
オプションとして、作成、所有、管理する対称カスタマーマネージドキーを使用して、既存の AWS 所有暗号化を置き換えることができます。この暗号化層はユーザーが完全に制御できるため、次のようなタスクを実行できます。
-
キーポリシーの策定と維持
-
IAM ポリシーとグラントの策定と維持
-
キーポリシーの有効化と無効化
-
キー暗号化マテリアルのローテーション
-
タグを追加する
-
キーエイリアスの作成
-
削除のためのキースケジューリング
詳細については、「AWS Key Management Service デベロッパーガイド」の「カスタマーマネージドキー」を参照してください。
MLflow Apps が で許可を使用する方法 AWS KMS
カスタマーマネージドキーを使用するには、MLflowアプリに許可が必要です。カスタマーマネージドキーで暗号化されたMLflowアプリを作成すると、SageMaker はリクエストCreateGrantを に送信してユーザーに代わってグラントを作成します AWS KMS。 AWS KMS グラントはMLflow、アプリにカスタマーマネージドキーへのアクセスを許可します。MLflow アプリを削除すると、SageMaker はグラントを廃止します。
許可はいつでも取り消すか、カスタマーマネージドキーへのサービスのアクセスを削除できます。アクセスを取り消しても、実行中のMLflowアプリがすぐに中断されることはありません。基盤となるストレージレイヤーは、アプリの作成時に付与されたアクセスを引き続き使用します。アクセスを取り消すと、SageMaker は、スケジュールされたメンテナンスなど、それを必要とする後続のオペレーションにキーを使用できなくなります。キーを無効にしたり、削除をスケジュールしたりするなど、キーが完全に使用できなくなった場合、保管中のデータは復号できなくなり、MLflowアプリは回復できなくなります。
MLflow アプリのカスタマーマネージド KMS キーの設定
対称カスタマーマネージドキーは、 AWS マネジメントコンソール または AWS KMS APIs を使用して作成できます。
MLflow アプリのカスタマーマネージドキーは、作成時にのみ指定できます。アプリの存続期間中は変更できません。 MLflowアプリでは、既存のアプリを AWS 所有キーとカスタマーマネージドキーの間で切り替えたり、あるカスタマーマネージドキーを別のキーに置き換えたりすることはできません。別のキーを使用する場合は、MLflowアプリを削除し、必要な暗号化設定で新しいキーを作成します。
対称カスタマーマネージドキーの作成
「AWS Key Management Service デベロッパーガイド」の「対称暗号化 KMS キーの作成」の手順に従ってください。
キーポリシー
キーポリシーは、カスタマーマネージドキーへのアクセスを制御します。すべてのカスタマーマネージドキーには、キーポリシーが 1 つだけ必要です。このポリシーには、そのキーを使用できるユーザーとその使用方法を決定するステートメントが含まれています。キーポリシーは、カスタマーマネージドキーの作成時に指定できます。詳細については、「AWS Key Management Service Developer Guide」の「Determining access to AWS KMS keys」を参照してください。
MLflow アプリでカスタマーマネージドキーを使用するには、キーポリシーで次の API オペレーションを許可する必要があります。これらのオペレーションのプリンシパルは、ロールを使用してアプリケーションを作成または使用するかどうかによって異なります。
-
アプリケーションの作成
-
ウェブアプリケーションの使用
-
アクセス AWS KMS 許可は必要ありません。
-
以下は、ペルソナが管理者かユーザーかに基づいて MLflow Apps に追加できるポリシーステートメントの例です。ポリシーでの権限の指定に関する詳細については、「AWS Key Management Service Developer Guide」の「AWS KMS permissions」を参照してください。トラブルシューティングの詳細については、「AWS Key Management Service Developer Guide」の「Troubleshooting key access」を参照してください。
管理者
次のポリシーは、MLflowアプリを作成する管理者に使用できます。
{ "Sid": "AllowMLflowAppAdministratorAccess", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/mlflow-app-admin-role" }, "Action": [ "kms:CreateGrant", "kms:DescribeKey" ], "Resource": "*", "Condition": { "StringEquals": { "kms:ViaService": "sagemaker.region.amazonaws.com" }, "ForAllValues:StringEquals": { "kms:GrantOperations": [ "CreateGrant", "Decrypt", "DescribeKey", "Encrypt", "GenerateDataKey", "GenerateDataKeyWithoutPlaintext", "ReEncryptFrom", "ReEncryptTo", "RetireGrant" ] } } }
-
kms:ViaService— キーの使用を、特定のリージョンの SageMaker から送信されるリクエストに制限します。では"kms:ViaService": "sagemaker.、region.amazonaws.com"kms:CreateGrantおよび アクセスkms:DescribeKey許可は、ユーザーに代わって SageMaker を通じてリクエストが行われた場合にのみ実行できます。他のプリンシパルやサービスから直接実行することはできません。これにより、キーはMLflowアプリにのみ使用されます。 -
kms:GrantOperations— SageMaker が作成する許可に含めることができるオペレーションを制限します。MLflow アプリを作成すると、SageMaker はCreateGrantを呼び出して、データプレーンが保管中のデータを暗号化および復号できるようにします。kms:CreateGrantステートメントkms:GrantOperationsに追加すると、SageMaker は、その目的に必要なオペレーションであるCreateGrant、Decrypt、、、DescribeKeyEncrypt、、GenerateDataKeyGenerateDataKeyWithoutPlaintextReEncryptFromReEncryptTo、、 のみを含むグラントを作成できますRetireGrant。 -
暗号化コンテキスト — 該当しません。 MLflowアプリケーションはグラントにカスタム暗号化コンテキストを設定しないため、
kms:EncryptionContext条件キーを使用してアクセスをさらにスコープダウンすることはできません。
ユーザー
MLflow APIs または署名付き URL を介したMLflowアプリへのアクセスには関係ありません AWS KMS。SageMaker は保管中のデータを暗号化および復号します。アプリにアクセスすると AWS KMS リクエストは行われません。そのため、MLflowアプリにアクセスする場合、アクセス AWS KMS 許可は必要ありません。ユーザーのセキュリティポリシーを定義するときに、 AWS KMS アクセスを考慮する必要はありません。
カスタマーマネージド KMS キーを使用した新しいMLflowアプリの作成
カスタマーマネージドキーを使用してMLflowアプリを暗号化するには、 create-mlflow-app AWS CLI コマンドの --kms-key-idパラメータを使用してアプリを作成するときにキーを指定します。このパラメータを省略すると、SageMaker は AWS 所有のキーを使用します。が呼び出すロールには、カスタマーマネージドキーに対する kms:CreateGrantおよび アクセスkms:DescribeKey許可create-mlflow-appが必要です。
aws sagemaker create-mlflow-app \ --nameapp-name\ --artifact-store-uri s3://bucket-name\ --role-arnrole-arn\ --kms-key-idyour-kms-key-id\ --regionyour-region
MLflow アプリの作成の詳細については、「」を参照してくださいMLflow アプリの作成。
との MLflow Apps インタラクションのモニタリング AWS KMS
CloudTrail を使用して、MLflowアプリがカスタマーマネージドキーを使用する場合に AWS KMS ユーザーに代わって に対して行われたリクエストを追跡できます。CloudTrail での AWS KMS イベントの検索と解釈の詳細については、「 AWS Key Management Service デベロッパーガイド」のCloudTrail を使用した API コールのログ記録 AWS KMS」を参照してください。
カスタマーマネージドキーで暗号化されたMLflowアプリには、次の AWS KMS CloudTrail イベントが記録されます。
-
DescribeKeyおよびCreateGrant— MLflowアプリの作成時に記録されます。SageMaker はキーを検証し、ユーザーに代わって保管中のデータを暗号化および復号化できるようにする許可を作成します。 -
GenerateDataKeyWithoutPlaintext、Encrypt、 — MLflowアプリのプロビジョニング中および動作中にDecrypt記録されます。SageMaker の基盤となるストレージレイヤーは、カスタマーマネージドキーを使用して、保管中のデータを暗号化および復号化します。これらのリクエストは、付与を通じてユーザーに代わって動作する AWS サービスによって行われるため、CloudTrailuserIdentity要素には、アカウントの AWS IAM プリンシパルではなく、呼び出し元としてサービスが表示されます。 -
RetireGrant— MLflowアプリを削除すると記録されます。アプリ用に作成された許可は廃止され、カスタマーマネージドキーを使用できなくなります。