Acceso al almacenamiento sin conexión entre cuentas - Amazon SageMaker

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Acceso al almacenamiento sin conexión entre cuentas

Amazon SageMaker Feature Store permite a los usuarios crear un grupo de características en una cuenta (cuenta A) y configurarlo con una tienda offline utilizando un bucket de Amazon S3 en otra cuenta (cuenta B). Puede configurar esto según los pasos de la siguiente sección.

Paso 1: Configurar el rol de acceso al almacenamiento sin conexión en la cuenta A

En primer lugar, configura un rol para que Amazon SageMaker Feature Store escriba los datos en la tienda offline. La forma más sencilla de lograrlo es crear un nuevo rol con la política AmazonSageMakerFeatureStoreAccess o usar un rol existente que ya tenga asociada la política AmazonSageMakerFeatureStoreAccess. Este documento se refiere a esta política como Account-A-Offline-Feature-Store-Role-ARN.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:PutObject", "s3:GetBucketAcl", "s3:PutObjectAcl" ], "Resource": [ "arn:aws:s3:::*SageMaker*", "arn:aws:s3:::*Sagemaker*", "arn:aws:s3:::*sagemaker*" ] } ] }

El fragmento de código anterior muestra la política AmazonSageMakerFeatureStoreAccess. De forma predeterminada, la sección Resource de la política se limita a los buckets de S3 con nombres que contienen SageMaker, Sagemaker o sagemaker. Esto significa que el bucket Amazon S3 del almacenamiento sin conexión que se utilice debe seguir esta convención de nomenclatura. Si este no es su caso, o si desea delimitar aún más el recurso, puede copiar y pegar la política en su política de bucket de Amazon S3 en la consola, personalizar la sección Resource para que sea arn:aws:s3:::your-offline-store-bucket-name y, a continuación, asociarla al rol.

Además, este rol debe tener AWS KMS permisos adjuntos. Como mínimo, se requiere el permiso kms:GenerateDataKey para poder escribir en el almacenamiento sin conexión con la clave administrada por el cliente. Consulta el paso 3 para saber por qué se necesita una clave administrada por el cliente en un escenario entre cuentas y cómo configurarla. El siguiente ejemplo muestra una política insertada:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": [ "kms:GenerateDataKey" ], "Resource": "arn:aws:kms:*:Account-A-Account-Id:key/*" } ] }

La sección Resource de esta política se aplica a cualquier clave de la cuenta A. Para delimitar esto aún más, después de configurar la clave de KMS del almacenamiento sin conexión en el paso 3, vuelva a esta política y sustitúyala por el ARN de la clave.

Paso 2: Configurar un bucket de Amazon S3 para el almacenamiento sin conexión en la cuenta B

Cree un bucket de Amazon S3 en la cuenta B. Si utiliza la política AmazonSageMakerFeatureStoreAccess predeterminada, el nombre del bucket debe incluir SageMaker, Sagemaker o sagemaker. Edite la política de bucket como se muestra en el siguiente ejemplo para permitir que la cuenta A lea y escriba objetos.

En este documento se hace referencia al siguiente ejemplo de política de bucket como Account-B-Offline-Feature-Store-Bucket.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "S3CrossAccountBucketAccess", "Effect": "Allow", "Action": [ "s3:PutObject", "s3:PutObjectAcl", "s3:GetBucketAcl" ], "Principal": { "AWS": [ "*Account-A-Offline-Feature-Store-Role-ARN*" ], }, "Resource": [ "arn:aws:s3:::offline-store-bucket-name/*", "arn:aws:s3:::offline-store-bucket-name" ] } ] }

En la política anterior, la principal es Account-A-Offline-Feature-Store-Role-ARN la función creada en la cuenta A en el paso 1 y proporcionada a Amazon SageMaker Feature Store para que escriba en la tienda offline. Puede proporcionar varios roles de ARN en Principal.

Paso 3: Configurar una clave de cifrado de AWS KMS del almacenamiento sin conexión en la cuenta A

Amazon SageMaker Feature Store garantiza que el cifrado del lado del servidor esté siempre activado para los objetos de Amazon S3 de la tienda offline. En los casos de uso entre cuentas, debe proporcionar una clave administrada por el cliente para controlar quién puede escribir en el almacenamiento sin conexión (en este caso, Account-A-Offline-Feature-Store-Role-ARN de la cuenta A) y quién puede leer desde el almacenamiento sin conexión (en este caso, las identidades de la cuenta B).

En este documento se hace referencia al siguiente ejemplo de política de claves como Account-A-Offline-Feature-Store-KMS-Key-ARN.

{ "Version": "2012-10-17", "Id": "key-consolepolicy-3", "Statement": [ { "Sid": "Enable IAM User Permissions", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::Account-A-Account-Id:root" }, "Action": "kms:*", "Resource": "*" }, { "Sid": "Allow access for Key Administrators", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::Account-A-Account-Id:role/Administrator", ] }, "Action": [ "kms:Create*", "kms:Describe*", "kms:Enable*", "kms:List*", "kms:Put*", "kms:Update*", "kms:Revoke*", "kms:Disable*", "kms:Get*", "kms:Delete*", "kms:TagResource", "kms:UntagResource", "kms:ScheduleKeyDeletion", "kms:CancelKeyDeletion" ], "Resource": "*" }, { "Sid": "Allow Feature Store to get information about the customer managed key", "Effect": "Allow", "Principal": { "Service": "sagemaker.amazonaws.com" }, "Action": [ "kms:Describe*", "kms:Get*", "kms:List*" ], "Resource": "*" }, { "Sid": "Allow use of the key", "Effect": "Allow", "Principal": { "AWS": [ "*Account-A-Offline-Feature-Store-Role-ARN*", "*arn:aws:iam::Account-B-Account-Id:root*" ] }, "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:DescribeKey", "kms:CreateGrant", "kms:RetireGrant", "kms:ReEncryptFrom", "kms:ReEncryptTo", "kms:GenerateDataKey", "kms:ListAliases", "kms:ListGrants" ], "Resource": "*", } ] }

Paso 4: Crear un grupo de características en la cuenta A

A continuación, cree el grupo de características en la cuenta A, con un bucket de Amazon S3 de almacenamiento sin conexión en la cuenta B. Para ello, proporcione los siguientes parámetros para RoleArn, OfflineStoreConfig.S3StorageConfig.KmsKeyId y OfflineStoreConfig.S3StorageConfig.S3Uri, respectivamente:

  • Proporcione Account-A-Offline-Feature-Store-Role-ARN como RoleArn.

  • Proporcione Account-A-Offline-Feature-Store-KMS-Key-ARN para OfflineStoreConfig.S3StorageConfig.KmsKeyId.

  • Proporcione Account-B-Offline-Feature-Store-Bucket para OfflineStoreConfig.S3StorageConfig.S3Uri.