Hubungkan Hibah Akses Amazon S3 dengan notebook Studio JupyterLab - Amazon SageMaker AI

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

Hubungkan Hibah Akses Amazon S3 dengan notebook Studio JupyterLab

Gunakan informasi berikut untuk memberikan Hibah Akses Amazon S3 di buku catatan Studio. JupyterLab

Setelah Amazon S3 Access Grants disiapkan, tambahkan izin berikut ke peran eksekusi domain atau pengguna Anda.

  • us-east-1adalah milikmu Wilayah AWS

  • ID Anda adalah Akun AWS

  • S3-ACCESS-GRANT-ROLEadalah peran Hibah Akses Amazon S3 Anda

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowDataAccessAPI", "Effect": "Allow", "Action": [ "s3:GetDataAccess" ], "Resource": [ "arn:aws:s3:us-east-1:111122223333:access-grants/default" ] }, { "Sid": "RequiredForTIP", "Effect": "Allow", "Action": "sts:SetContext", "Resource": "arn:aws:iam::111122223333:role/S3-ACCESS-GRANT-ROLE" } ] }

Pastikan kebijakan kepercayaan peran Amazon S3 Access Grants memungkinkan dan tindakan. sts:SetContext sts:AssumeRole Berikut ini adalah contoh kebijakan ketika Anda memperbarui kebijakan kepercayaan peran Anda.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "access-grants.s3.amazonaws.com" ] }, "Action": [ "sts:AssumeRole", "sts:SetContext" ], "Condition": { "StringEquals": { "aws:SourceAccount": "111122223333", "aws:SourceArn": "arn:aws:s3:us-east-1:111122223333:access-grants/default" } } } ] }

Gunakan Hibah Akses Amazon S3 untuk memanggil Amazon S3

Berikut ini adalah contoh skrip Python yang menunjukkan bagaimana Amazon S3 Access Grants dapat digunakan untuk memanggil Amazon S3. Ini mengasumsikan Anda telah berhasil mengatur propagasi identitas tepercaya dengan SageMaker AI.

import boto3 from botocore.config import Config def get_access_grant_credentials(account_id: str, target: str, permission: str = 'READ'): s3control = boto3.client('s3control') response = s3control.get_data_access( AccountId=account_id, Target=target, Permission=permission ) return response['Credentials'] def create_s3_client_from_credentials(credentials) -> boto3.client: return boto3.client( 's3', aws_access_key_id=credentials['AccessKeyId'], aws_secret_access_key=credentials['SecretAccessKey'], aws_session_token=credentials['SessionToken'] ) # Create client credentials = get_access_grant_credentials('111122223333', "s3://tip-enabled-bucket/tip-enabled-path/") s3 = create_s3_client_from_credentials(credentials) s3.list_objects(Bucket="tip-enabled-bucket", Prefix="tip-enabled-path/")

Jika Anda menggunakan jalur ke bucket Amazon S3 di mana hibah akses Amazon S3 tidak diaktifkan, panggilan akan gagal.

Untuk bahasa pemrograman lainnya, lihat Mengelola akses dengan Amazon S3 Access Grants untuk informasi lebih lanjut.