AWS KMS キーを使用するアクセス許可を Amazon Personalize に付与する - Amazon Personalize

AWS KMS キーを使用するアクセス許可を Amazon Personalize に付与する

Amazon Personalize コンソールまたは API を使用するときに AWS Key Management Service (AWS KMS) キーを指定する場合、またはキーを使用して Amazon S3 バケットを暗号化する場合は、AWS KMS キーを使用するアクセス権限を Amazon Personalize に付与する必要があります。アクセス権限を付与するには、AWS KMSキーポリシーサービスロールにアタッチされている IAM ポリシーで、キーを使用するアクセス権限を Amazon Personalize に付与する必要があります。これは Amazon Personalize で以下を作成する場合に適用されます。

  • データセットグループ

  • データセットのインポートジョブ (権限を付与する必要があるのは AWS KMS キーポリシーのみ)

  • データセットのエクスポートジョブ

  • バッチ推論ジョブ

  • バッチセグメントジョブ

  • メトリクス属性

AWS KMS キーポリシーと IAM ポリシーは、以下のアクションに対するアクセス許可を付与する必要があります。

  • Decrypt

  • GenerateDataKey

  • DescribeKey

  • CreateGrant (キーポリシーでのみ必要)

  • ListGrants

リソースの作成後に AWS KMS キー権限を取り消すと、フィルターの作成時や推奨情報の取得時に問題が発生する可能性があります。AWS KMS ポリシーの詳細については、「AWS Key Management Service デベロッパーガイド」の「AWS KMS でキーポリシーを使用する」を参照してください。IAM ポリシーの作成については、「IAM ユーザーガイド」の「IAM ポリシーの作成」を参照してください。IAM アイデンティティへのポリシーのアタッチに関する詳細については、「IAM ユーザーガイド」の「IAM ID のアクセス許可の追加および削除」を参照してください。

キーポリシーの例

以下のキーポリシーの例では、Amazon Personalize とお客様のロールに、上記の Amazon Personalize オペレーションに必要な最低限のアクセス権限を付与しています。データセットグループの作成時にキーを指定し、データセットからデータをエクスポートする場合は、キーポリシーに GenerateDataKeyWithoutPlaintext アクションを含める必要があります。

{ "Version": "2012-10-17", "Id": "key-policy-123", "Statement": [ { "Sid": "Allow use of the key", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::<account-id>:role/<personalize-role-name>", "Service": "personalize.amazonaws.com" }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey", "kms:DescribeKey", "kms:CreateGrant", "kms:ListGrants" ], "Resource": "*" } ] }

IAM ポリシーの例

次の IAM ポリシーの例では、前述の Amazon Personalize オペレーションに必要な最小限の AWS KMS アクセス権限をロールに付与します。データセットのインポートジョブの場合、アクセス権限を付与する必要があるのは AWS KMS キーポリシーだけです。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:GenerateDataKey", "kms:DescribeKey", "kms:ListGrants" ], "Resource": "*" } ] }