Akses toko offline lintas akun - Amazon SageMaker

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Akses toko offline lintas akun

Amazon SageMaker Feature Store memungkinkan pengguna untuk membuat grup fitur dalam satu akun (Akun A) dan mengonfigurasinya dengan toko offline menggunakan bucket Amazon S3 di akun lain (Akun B). Anda dapat mengatur ini menggunakan langkah-langkah di bagian berikut.

Langkah 1: Siapkan peran akses toko offline di Akun A

Pertama, siapkan peran Amazon SageMaker Feature Store untuk menulis data ke toko offline. Cara termudah untuk mencapai ini adalah dengan membuat peran baru menggunakan AmazonSageMakerFeatureStoreAccess kebijakan atau menggunakan peran yang sudah ada yang sudah memiliki AmazonSageMakerFeatureStoreAccess kebijakan terlampir. Dokumen ini mengacu pada kebijakan ini sebagaiAccount-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*" ] } ] }

Cuplikan kode sebelumnya menunjukkan kebijakan. AmazonSageMakerFeatureStoreAccess ResourceBagian kebijakan dicakup secara default ke bucket S3 dengan nama yang berisiSageMaker,, atau. Sagemaker sagemaker Ini berarti bucket Amazon S3 toko offline yang digunakan harus mengikuti konvensi penamaan ini. Jika ini bukan kasus Anda, atau jika Anda ingin memperluas cakupan sumber daya, Anda dapat menyalin dan menempelkan kebijakan tersebut ke kebijakan bucket Amazon S3 di konsol, menyesuaikan Resource bagiannyaarn:aws:s3:::your-offline-store-bucket-name, lalu melampirkan peran tersebut.

Selain itu, peran ini harus memiliki AWS KMS izin yang dilampirkan. Minimal, diperlukan kms:GenerateDataKey izin untuk dapat menulis ke toko offline menggunakan kunci yang dikelola pelanggan Anda. Lihat Langkah 3 untuk mempelajari mengapa kunci yang dikelola pelanggan diperlukan untuk skenario lintas akun dan cara mengaturnya. Contoh berikut menunjukkan kebijakan inline:

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

ResourceBagian dari kebijakan ini dicakup ke kunci apa pun di Akun A. Untuk lebih lanjut menjelaskan hal ini, setelah menyiapkan kunci KMS toko offline di Langkah 3, kembali ke kebijakan ini dan ganti dengan kunci ARN.

Langkah 2: Siapkan bucket Amazon S3 toko offline di Akun B

Buat bucket Amazon S3 di Akun B. Jika Anda menggunakan AmazonSageMakerFeatureStoreAccess kebijakan default, nama bucket harus menyertakanSageMaker,Sagemaker, atau. sagemaker Edit kebijakan bucket seperti yang ditunjukkan pada contoh berikut untuk memungkinkan Akun A membaca dan menulis objek.

Dokumen ini mengacu pada contoh kebijakan bucket berikut sebagaiAccount-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" ] } ] }

Dalam kebijakan sebelumnya, prinsipnya adalah, yang merupakan Account-A-Offline-Feature-Store-Role-ARN peran yang dibuat di Akun A pada Langkah 1 dan diberikan ke Amazon SageMaker Feature Store untuk menulis ke toko offline. Anda dapat memberikan beberapa peran ARN di bawah. Principal

Langkah 3: Siapkan kunci AWS KMS enkripsi toko offline di Akun A

Amazon SageMaker Feature Store memastikan bahwa enkripsi sisi server selalu diaktifkan untuk objek Amazon S3 di toko offline. Untuk kasus penggunaan lintas akun, Anda harus memberikan kunci yang dikelola pelanggan sehingga Anda mengendalikan siapa yang dapat menulis ke toko offline (dalam hal ini, Account-A-Offline-Feature-Store-Role-ARN dari Akun A) dan siapa yang dapat membaca dari toko offline (dalam hal ini, identitas dari Akun B).

Dokumen ini mengacu pada contoh kebijakan kunci berikut sebagaiAccount-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": "*", } ] }

Langkah 4: Buat grup fitur di Akun A

Selanjutnya, buat grup fitur di Akun A, dengan bucket Amazon S3 toko offline di Akun B. Untuk melakukan ini, berikan parameter berikut untukRoleArn,, dan OfflineStoreConfig.S3StorageConfig.KmsKeyIdOfflineStoreConfig.S3StorageConfig.S3Uri, masing-masing:

  • Berikan Account-A-Offline-Feature-Store-Role-ARN sebagaiRoleArn.

  • Menyediakan Account-A-Offline-Feature-Store-KMS-Key-ARN untukOfflineStoreConfig.S3StorageConfig.KmsKeyId.

  • Menyediakan Account-B-Offline-Feature-Store-Bucket untukOfflineStoreConfig.S3StorageConfig.S3Uri.