Aracılığıyla paylaş


SSH Dosya Aktarım Protokolü(SFTP) kullanarak Azure Blob Depolama bağlanma

Bu makalede, SFTP istemcisi kullanarak Azure Depolama hesabının Blob Depolama uç noktasına nasıl güvenli bir şekilde bağlanabileceğiniz gösterilmektedir. Bağlandıktan sonra dosyaları karşıya yükleyip indirebilir, ayrıca dosya ve klasörlerdeki erişim denetim listelerini (ACL' ler) değiştirebilirsiniz.

Azure Blob Depolama için SFTP desteği hakkında daha fazla bilgi edinmek için bkz. Azure Blob Depolama'de SSH Dosya Aktarım Protokolü (SFTP).

Önkoşullar

  • Azure Blob Depolama için SFTP desteğini etkinleştirin. Bkz . SFTP desteğini etkinleştirme veya devre dışı bırakma.

  • SFTP istemcilerine erişimi yetkilendirme. Bkz . İstemcilere erişimi yetkilendirme.

  • Şirket içi bir ağdan bağlanıyorsanız, istemcinizin SFTP tarafından kullanılan 22 numaralı bağlantı noktası üzerinden giden iletişime izin verdiğinden emin olun.

SFTP istemcisini bağlama

Dosyaları güvenli bir şekilde bağlamak ve aktarmak için herhangi bir SFTP istemcisini kullanabilirsiniz. Aşağıdaki örnekte, Open SSH kullanan bir Windows PowerShell oturumu gösterilmektedir.

PS C:\Users\temp> sftp contoso4.contosouser@contoso4.blob.core.windows.net

SFTP kullanıcı adı.storage_account_nameusername. Yukarıdaki storage_account_name örnekte "contoso4" ve username "contosouser" ifadesi yer alır. Birleştirilmiş kullanıcı adı "contoso4.contosouser" olur. Blob hizmeti uç noktası "contoso4.blob.core.windows.net".

Bağlantıyı tamamlamak için bir veya daha fazla istem yanıtlamanız gerekebilir. Örneğin, yerel kullanıcıyı parola kimlik doğrulamasıyla yapılandırdıysanız, bu parolayı girmeniz istenir. Bir ana bilgisayar anahtarına güvenmeniz istenebilir. Geçerli konak anahtarları burada yayımlanır.

Not

SFTP, yalnızca Blob Depolama uç noktası (blob.core.windows.net) üzerinde çalışır, ancak Data Lake Depolama uç noktası (dfs.core.windows.net) üzerinde çalışmaz. Bu nedenle gibi contoso4.contosouser@contoso4.dfs.core.windows.net Data Lake Storage uç noktaları desteklenmez.

Özel etki alanı kullanarak bağlan

Özel bir etki alanı kullanarak blob hizmet uç noktasına bağlanmak istiyorsanız, bağlantı dizeniz myaccount.myuser@customdomain.com olacaktır. Kullanıcı için ana dizin belirtilmemişse, bağlantı dizesi myaccount.mycontainer.myuser@customdomain.com şeklinde olur.

Önemli

Bağlantı girişiminin zaman aşımına neden olabileceğinden DNS sağlayıcınızın ara sunucu isteklerinde bulunmadığından emin olun.

Özel etki alanını blob hizmet uç noktasına eşlemeyi öğrenmek için bkz. Özel etki alanını Azure Blob Depolama uç noktasına eşleme.

Özel uç nokta kullanarak bağlanma

Eğer özel bir uç nokta kullanarak blob hizmet uç noktasına bağlanmak istiyorsanız, bağlantı dizesi myaccount.myuser@myaccount.privatelink.blob.core.windows.net'dir. Kullanıcı için ana dizin belirtilmemişse, o zaman myaccount.mycontainer.myuser@myaccount.privatelink.blob.core.windows.net olur.

Not

Ağ yapılandırmasını "Seçili sanal ağlardan ve IP adreslerinden etkinleştirildi" olarak değiştirdiğinizden emin olun ve ardından özel uç noktanızı seçin. Aksi takdirde blob hizmet uç noktası genel olarak erişilebilir olmaya devam eder.

İnternet yönlendirme kullanarak bağlanma

Blob hizmetinin uç noktasına İnternet yönlendirmesi kullanarak bağlanmak istiyorsanız, bağlantı dizesi şudur myaccount.myuser@myaccount-internetrouting.blob.core.windows.net. Kullanıcı için ana dizin belirtilmemişse, o zaman myaccount.mycontainer.myuser@myaccount-internetrouting.blob.core.windows.net olur.

Veri aktarma

Bağlandıktan sonra dosyaları karşıya yükleyebilir ve indirebilirsiniz. Aşağıdaki örnek, etkin bir OpenSSH oturumu kullanarak logfile.txt adlı bir dosyayı karşıya yükler.

sftp> put logfile.txt
Uploading logfile.txt to /mydirectory/logfile.txt
logfile.txt
        100%    19    0.2kb/S    00.00

Aktarım tamamlandıktan sonra dosyayı Azure portalında görüntüleyebilir ve yönetebilirsiniz.

Depolama hesabında görünen karşıya yüklenen dosyanın ekran görüntüsü.

Not

Azure portalı Blob REST API'sini ve Data Lake Storage REST API'sini kullanır. Azure portalında karşıya yüklenen bir dosyayla etkileşim kurabilmek, SFTP ile REST arasındaki birlikte çalışabilirliği gösterir.

Dosyaları bağlama ve aktarma hakkında yönergeler için SFTP istemcinizin belgelerine bakın.

Karşıya yüklemeyi sürdür

Azure Blob Depolama SFTP'sinin devam ettirilebilir karşıya yükleme özelliği genel kullanıma sunuldu. Bu özellik, kullanıcıların kısmi aktarım hataları durumunda hata noktasından dosya yüklemelerini sürdürmesine ve böylece zaman kazandırmasına ve ağ bant genişliği kullanımını azaltmasına olanak tanır. Azure Blob Depolama SFTP'nin desteklediği SFTP aktarım modları aşağıdadır.

  • Yazma: Bu mod, istemcinin yeni bir dosya oluşturmadan belirli bir noktadan var olan bir dosyaya veri ekleyerek karşıya yüklemeye devam etmesine olanak tanır.
  • Yazma + Oluşturma: Bu mod, istemcinin mevcut bir dosyaya ekleyerek veya yoksa yeni bir dosya oluşturarak karşıya yüklemeyi sürdürmesine olanak tanır ve başlangıçta dosya mevcut olmadığında esneklik sağlar.
  • Ekleme: Bu mod, geçerli içeriğinin üzerine yazmadan mevcut dosyanın sonuna veri ekler. Daha önce, bu özellik yalnızca ekleme modu desteği olmayan SFTP istemcileriyle sınırlı karşıya yüklemenin sağlandığı genel önizlemede ekleme modunu destekliyordu. Genel kullanılabilirlik sayesinde artık ekleme modu olmadan SFTP istemcilerini kullanan kullanıcılara fayda sağlayan yazma ve yazma + oluşturma modlarını destekliyoruz.

Not

Devam ettirilebilen karşıya yükleme yalnızca SFTP protokolüyle oluşturulan bloblar için desteklenir. REST gibi SFTP dışında bir protokolle oluşturulmuş mevcut bloblar için karşıya yüklemeyi sürdüremezsiniz.

Dosya veya dizinin ACL'sini değiştirme

SFTP istemcisi kullanarak sahip olan kullanıcının, sahip olan grubun ve ACL'nin diğer tüm kullanıcılarının izin düzeyini değiştirebilirsiniz. Ayrıca sahip olan kullanıcıyı ve sahip olan grubu da değiştirebilirsiniz. SFTP istemcileri için ACL desteği hakkında daha fazla bilgi edinmek için bkz . ACL'ler.

Not

Sahip kullanıcılar, kapsayıcı izinlerine gerek olmaksızın bir blobun veya dizinin sahip grubunu ve izinlerini değiştirebilir. Bu, yerel kullanıcılar için ACL'lerin Genel Kullanılabilirlik aşamasında eklenen yeni bir özellik geliştirmesidir. Sahibi olmayan tüm kullanıcılar için kapsayıcı erişim izinleri hala gereklidir.

İzinleri değiştir

Sahip olan kullanıcının, sahip olan grubun veya bir ACL'nin diğer tüm kullanıcılarının izin düzeyini değiştirmek için yerel kullanıcının izni olmalıdır Modify Permission . Bkz. Kapsayıcılara izin verin.

Aşağıdaki örnek, bir dizinin ACL'sini konsola yazdırır. Ardından ACL'yi chmod777olarak ayarlamak için komutunu kullanır. 7 her biri rwx'in sayısal biçimidir (okuma, yazma ve yürütme). Bu nedenle 777 sahip olan kullanıcıya, sahip olan gruba ve diğer tüm kullanıcılara okuma, yazma ve yürütme izni verir. Bu örnek daha sonra güncelleştirilmiş ACL'yi konsola yazdırır. ACL'nin sayısal ve kısa formları hakkında daha fazla bilgi edinmek için bkz . İzinler için kısa formlar.

sftp> ls -l
drwxr-x---     1234     5678                0 Mon, 08 Jan 2024 16:53:25 GMT dir1
drwxr-x---        0        0                0 Mon, 16 Oct 2023 12:18:08 GMT dir2
sftp> chmod 777 dir1
Changing mode on /dir1
sftp> ls -l
drwxrwxrwx     1234     5678                0 Mon, 08 Jan 2024 16:54:06 GMT dir1
drwxr-x---        0        0                0 Mon, 16 Oct 2023 12:18:08 GMT dir2

Not

Adlandırılmış kullanıcılar, adlandırılmış gruplar ve adlandırılmış güvenlik sorumluları için ACL girdileri ekleme veya değiştirme henüz desteklenmiyor.

Sahip olan kullanıcıyı değiştir

Bir dizin veya blobun sahibi olan kullanıcıyı değiştirmek için yerel kullanıcının izni olmalıdır Modify Ownership . Bkz. Kapsayıcılara izin verin.

Aşağıdaki örnek, bir dizinin ACL'sini konsola yazdırır. Sahip olan kullanıcının kimliği 0. Bu örnek, sahibi olan kullanıcının kimliğini chown komutunu kullanarak 1234 olarak ayarlar ve değişikliği konsola yazdırır.

sftp> ls -l
drwxr-x---        0        0                0 Mon, 08 Jan 2024 16:00:12 GMT dir1
drwxr-x---        0        0                0 Mon, 16 Oct 2023 12:18:08 GMT dir2
sftp> chown 1234 dir1
Changing owner on /dir1
sftp> ls -l
drwxr-x---     1234        0                0 Mon, 08 Jan 2024 16:52:52 GMT dir1
drwxr-x---        0        0                0 Mon, 16 Oct 2023 12:18:08 GMT dir2
sftp>

Sahip olan grubu değiştirme

Bir dizin veya blobun sahip olan grubunu değiştirmek için yerel kullanıcının izni olmalıdır Modify Ownership . Bkz. Kapsayıcılara izin verin.

Aşağıdaki örnek, bir dizinin ACL'sini konsola yazdırır. Sahip olan grubun kimliği 0’dir. Bu örnek, chgrp komutunu kullanarak sahip olan grubun kimliğini 5678 olarak ayarlar ve değişikliği konsola yazar.

sftp> ls -l
drwxr-x---     1234        0                0 Mon, 08 Jan 2024 16:52:52 GMT dir1
drwxr-x---        0        0                0 Mon, 16 Oct 2023 12:18:08 GMT dir2
sftp> chgrp 5678 dir1
Changing group on /dir1
sftp> ls -l
drwxr-x---     1234     5678                0 Mon, 08 Jan 2024 16:53:25 GMT dir1
drwxr-x---        0        0                0 Mon, 16 Oct 2023 12:18:08 GMT dir2