Acesso ao armazenamento offline entre contas - Amazon SageMaker

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Acesso ao armazenamento offline entre contas

A Amazon SageMaker Feature Store permite que os usuários criem um grupo de recursos em uma conta (Conta A) e o configurem com uma loja offline usando um bucket Amazon S3 em outra conta (Conta B). É possível estabelecer essa definição usando as etapas da seção a seguir.

Etapa 1: configurar a função de acesso ao armazenamento offline na Conta A

Primeiro, configure uma função para a Amazon SageMaker Feature Store para gravar os dados na loja offline. A maneira mais simples de fazer isso é criar uma nova função usando a política AmazonSageMakerFeatureStoreAccess ou usar uma função existente que já tenha a política AmazonSageMakerFeatureStoreAccess anexada. Este documento se refere a essa 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*" ] } ] }

O trecho de código anterior mostra a política AmazonSageMakerFeatureStoreAccess. Por padrão, a seção Resource da política é limitada aos buckets do S3 com nomes que contêm SageMaker, Sagemaker ou sagemaker. Isso significa que o bucket do Amazon S3 do armazenamento offline que está sendo usado deve seguir essa convenção de nomenclatura. Se esse não for o seu caso, ou se você quiser limitar ainda mais o escopo do recurso, você pode copiar e colar a política na sua política do bucket do Amazon S3 no console, personalizar a seção Resource como arn:aws:s3:::your-offline-store-bucket-name e, em seguida, anexá-la à função.

Além disso, essa função deve ter AWS KMS permissões anexadas. No mínimo, é necessária a permissão kms:GenerateDataKey para poder gravar no armazenamento offline usando sua chave gerenciada pelo cliente. Consulte a Etapa 3 para saber por que uma chave gerenciada pelo cliente é necessária para o cenário de várias contas e como configurá-la. O exemplo a seguir mostra uma política em linha:

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

A Resource seção desta política tem como escopo qualquer chave na Conta A. Para detalhar isso, depois de configurar a KMS chave da loja offline na Etapa 3, retorne a essa política e substitua-a pela chaveARN.

Etapa 2: configurar um bucket Amazon S3 do armazenamento offline na Conta B

Crie um bucket do Amazon S3 na Conta B. Se você estiver usando a política AmazonSageMakerFeatureStoreAccess padrão, o nome do bucket deverá incluir SageMaker, Sagemaker ou sagemaker. Edite a política do bucket conforme mostrado no exemplo a seguir para permitir que a Conta A leia e grave objetos.

Este documento se refere ao exemplo de política do bucket a seguir 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" ] } ] }

Na política anterior, o principal éAccount-A-Offline-Feature-Store-Role-ARN, que é a função criada na Conta A na Etapa 1 e fornecida à Amazon SageMaker Feature Store para gravar na loja offline. Você pode fornecer várias ARN funções emPrincipal.

Etapa 3: configurar uma loja off-line AWS KMS chave de criptografia na Conta A

A Amazon SageMaker Feature Store garante que a criptografia do lado do servidor esteja sempre habilitada para objetos do Amazon S3 na loja off-line. Para casos de uso entre contas, você deve fornecer uma chave gerenciada pelo cliente para controlar quem pode fazer gravações no armazenamento offline (nesse caso, Account-A-Offline-Feature-Store-Role-ARN da Conta A) e quem pode fazer leituras no armazenamento offline (nesse caso, identidades da Conta B).

Este documento se refere ao exemplo de política de chaves a seguir 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": "*", } ] }

Etapa 4: criar um grupo de atributos na Conta A

Em seguida, crie o grupo de atributos na Conta A, com um bucket Amazon S3 do armazenamento offline na Conta B. Para fazer isso, forneça os seguintes parâmetros para RoleArn, OfflineStoreConfig.S3StorageConfig.KmsKeyId e OfflineStoreConfig.S3StorageConfig.S3Uri, respectivamente:

  • Forneça Account-A-Offline-Feature-Store-Role-ARN como RoleArn.

  • Forneça Account-A-Offline-Feature-Store-KMS-Key-ARN para OfflineStoreConfig.S3StorageConfig.KmsKeyId.

  • Forneça Account-B-Offline-Feature-Store-Bucket para OfflineStoreConfig.S3StorageConfig.S3Uri.