Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Tanda tangan akses bersama (SAS) memungkinkan Anda memberikan akses terbatas ke kontainer dan blob di akun penyimpanan Anda. Saat Anda membuat SAS, Anda menentukan batasannya, termasuk sumber daya Azure Storage mana yang diizinkan untuk diakses klien, izin apa yang mereka miliki pada sumber daya tersebut, dan berapa lama SAS valid.
Setiap SAS ditandatangani menggunakan sebuah kunci. Anda dapat menandatangani SAS dengan salah satu dari dua cara:
- Dengan kunci yang dibuat menggunakan kredensial Microsoft Entra. SAS yang ditandatangani dengan kredensial Microsoft Entra adalah delegasi pengguna SAS. Pelanggan yang membuat SAS untuk delegasi pengguna harus diberi peran Azure RBAC yang menyertakan aksi Microsoft.Storage/storageAccounts/blobServices/generateUserDelegationKey. Untuk mempelajari selengkapnya, lihat Membuat SAS Delegasi Pengguna.
- Dengan menggunakan kunci akun penyimpanan. Baik layanan SAS maupun akun SAS ditandatangani menggunakan kunci akun penyimpanan. Klien yang membuat SAS layanan harus memiliki akses langsung ke kunci akun atau diberikan izin Microsoft.Storage/storageAccounts/listkeys/action. Untuk mempelajari selengkapnya, lihat Membuat layanan SAS atau Membuat SAS akun.
Nota
SAS yang didelegasikan pengguna menawarkan keamanan yang lebih unggul dibandingkan SAS yang ditandatangani dengan kunci akun penyimpanan. Microsoft menyarankan agar menggunakan SAS delegasi pengguna jika memungkinkan. Untuk mengetahui informasi selengkapnya, lihat Memberikan akses terbatas ke data dengan tanda tangan akses bersama (SAS).
Artikel ini memperlihatkan cara menggunakan kunci akun penyimpanan untuk membuat SAS akun dengan pustaka klien Azure Storage untuk Python.
Tentang akun SAS
AKUN SAS dibuat pada tingkat akun penyimpanan. Dengan membuat SAS akun, Anda dapat:
- Delegasikan akses ke operasi tingkat layanan yang saat ini tidak tersedia dengan SAS khusus layanan, seperti Ambil Properti Layanan Blob, Tetapkan Properti Layanan Blob, dan Ambil Statistik Layanan Blob.
- Mendelegasikan akses ke lebih dari satu layanan di akun penyimpanan pada satu waktu. Misalnya, Anda dapat mendelegasikan akses ke sumber daya di Azure Blob Storage dan Azure Files dengan menggunakan SAS akun.
Kebijakan akses tersimpan tidak didukung untuk AKUN SAS.
Membuat AKUN SAS
AKUN SAS ditandatangani dengan kunci akses akun. Contoh kode berikut menunjukkan cara memanggil metode generate_account_sas untuk mendapatkan string token SAS akun.
def create_account_sas(self, account_name: str, account_key: str):
# Create an account SAS that's valid for one day
start_time = datetime.datetime.now(datetime.timezone.utc)
expiry_time = start_time + datetime.timedelta(days=1)
# Define the SAS token permissions
sas_permissions=AccountSasPermissions(read=True)
# Define the SAS token resource types
# For this example, we grant access to service-level APIs
sas_resource_types=ResourceTypes(service=True)
sas_token = generate_account_sas(
account_name=account_name,
account_key=account_key,
resource_types=sas_resource_types,
permission=sas_permissions,
expiry=expiry_time,
start=start_time
)
return sas_token
Parameter yang valid untuk konstruktor ResourceTypes adalah:
-
layanan: defaultnya adalah
False; diatur keTrueuntuk memberikan akses ke API tingkat layanan. -
kontainer: defaultnya adalah
False; diatur keTrueuntuk memberikan akses ke API tingkat kontainer. -
objek: bawaan adalah
False; diatur keTrueuntuk memberikan akses ke API tingkat objek untuk blob, pesan antrean, dan file.
Untuk izin yang tersedia, lihat AccountSasPermissions.
Menggunakan akun SAS dari klien
Untuk menggunakan SAS akun untuk mengakses API tingkat layanan dari layanan Blob, buat objek BlobServiceClient menggunakan akun SAS dan endpoint Blob Storage untuk akun penyimpanan Anda.
# The SAS token string can be appended to the account URL with a ? delimiter
# or passed as the credential argument to the client constructor
account_sas_url = f"{blob_service_client.url}?{sas_token}"
# Create a BlobServiceClient object
blob_service_client_sas = BlobServiceClient(account_url=account_sas_url)
Anda juga dapat menggunakan SAS akun untuk mengotorisasi dan bekerja dengan objek ContainerClient atau objek BlobClient , jika jenis sumber daya tersebut diberikan akses sebagai bagian dari nilai tanda tangan.
Sumber daya
Untuk mempelajari selengkapnya tentang membuat SAS akun menggunakan pustaka klien Azure Blob Storage untuk Python, lihat sumber daya berikut ini.