Skip to main content
本繁體中文版使用機器翻譯,譯文僅供參考,若與英文版本牴觸,應以英文版本為準。

設定外部目錄服務以進行 ONTAP S3 存取

貢獻者 netapp-dbagwell johnlantz netapp-barbe netapp-aaron-holt netapp-lenida netapp-aherbin netapp-ahibbard

從 ONTAP 9.14.1 開始、外部目錄的服務已與 ONTAP S3 物件儲存設備整合。這項整合可透過外部目錄服務簡化使用者和存取管理。

您可以為屬於外部目錄服務的使用者群組提供存取 ONTAP 物件儲存環境的權限。輕量型目錄存取傳輸協定( LDAP )是與 Active Directory 等目錄服務進行通訊的介面、可為身分識別與存取管理( IAM )提供資料庫和服務。若要提供存取權、您必須在 ONTAP S3 環境中設定 LDAP 群組。設定存取權限之後、群組成員就擁有 ONTAP S3 工作區的權限。有關 LDAP 的信息,請參見"了解如何在 ONTAP NFS SVM 上使用 LDAP 名稱服務"

您也可以將 Active Directory 使用者群組設定為快速繫結模式、以便驗證使用者認證、並透過 LDAP 連線驗證協力廠商和開放原始碼 S3 應用程式。

開始之前

在設定 LDAP 群組及啟用群組存取的快速繫結模式之前、請先確認下列事項:

  1. 已建立啟用 S3 的儲存 VM 、其中包含 S3 伺服器。請參閱 "為S3建立SVM"

  2. 該儲存 VM 中已建立一個儲存區。請參閱 "建立儲存庫"

  3. 在儲存 VM 上設定 DNS 。請參閱。 "設定DNS服務"

  4. 儲存 VM 上會安裝 LDAP 伺服器的自我簽署根憑證授權單位( CA )憑證。請參閱。 "在 SVM 上安裝自簽名根 CA 憑證"

  5. LDAP 用戶端在 SVM 上設定為啟用 TLS 。請參閱"為 ONTAP NFS 存取建立 LDAP 用戶端配置""將 LDAP 用戶端配置與 ONTAP NFS SVM 關聯以獲取資訊"

設定 S3 的 LDAP 存取

  1. 將 LDAP 指定為 SVM 的名稱服務資料庫 _ 、以用於群組、並將密碼指定為 LDAP :

    ns-switch modify -vserver <vserver-name> -database group -sources files,ldap
    ns-switch modify -vserver <vserver-name> -database passwd -sources files,ldap

    深入瞭解 ONTAP 命令參照中的連結: https://docs 。 NetApp 。 ONTAP - CLI/vserver-services-name-service-ns-switch-modify.html[vserver services name-service ns-switch modify^] 命令。

  2. 使用建立物件儲存庫貯體原則聲明 principal 設定為您要授與存取權的 LDAP 群組:

    object-store-server bucket policy statement create -bucket <bucket-name> -effect allow -principal nasgroup/<ldap-group-name> -resource <bucket-name>, <bucket-name>/*

    範例:下列範例建立的 Bucket 原則陳述式 buck1。原則允許 LDAP 群組存取 group1 至資源(貯體及其物件) buck1

    vserver object-store-server bucket policy add-statement -bucket buck1 -effect allow -action
    GetObject,PutObject,DeleteObject,ListBucket,GetBucketAcl,GetObjectAcl,ListBucketMultipartUploads,ListMultipartUploadParts, ListBucketVersions,GetObjectTagging,PutObjectTagging,DeleteObjectTagging,GetBucketVersioning,PutBucketVersioning -principal nasgroup/group1 -resource buck1, buck1/*
  3. 驗證 LDAP 群組中的使用者 group1 能夠從 S3 用戶端執行 S3 作業。

使用 LDAP 快速繫結模式進行驗證

  1. 將 LDAP 指定為 SVM 的名稱服務資料庫 _ 、以用於群組、並將密碼指定為 LDAP :

    ns-switch modify -vserver <vserver-name> -database group -sources files,ldap
    ns-switch modify -vserver <vserver-name> -database passwd -sources files,ldap

    深入瞭解 ONTAP 命令參照中的連結: https://docs 。 NetApp 。 ONTAP - CLI/vserver-services-name-service-ns-switch-modify.html[vserver services name-service ns-switch modify^] 命令。

  2. 確保存取 S3 儲存貯體的 LDAP 使用者具有在儲存庫原則中定義的權限。如需詳細資訊、請參閱 "修改庫位原則"

  3. 確認 LDAP 群組中的使用者可以執行下列作業:

    1. 在 S3 用戶端上以下列格式設定存取金鑰:範例 "NTAPFASTBIND": + base64 編碼( LDAPUser:password ),結果就是
      NTAPFASTBINDbGRhcHVzZXI6cGFzc3dvcmQ=`這樣
      `"NTAPFASTBIND" + base64-encode(user-name:password)

      註 S3 用戶端可能會提示輸入秘密金鑰。如果沒有秘密金鑰、則可以輸入至少 16 個字元的任何密碼。
    2. 從使用者具有權限的 S3 用戶端執行基本 S3 作業。

Base64 認證

ONTAP S3 的預設組態不包括 HTTP ,而且僅使用 HTTPS 和傳輸層安全性( TLS )連線。ONTAP 可以產生自我簽署的憑證,但建議的最佳做法是使用來自協力廠商憑證授權單位( CA )的憑證。使用 CA 憑證時,您會在用戶端應用程式和 ONTAP 物件存放區伺服器之間建立信任的關係。

請注意,使用 Base64 編碼的認證資料很容易解碼。使用 HTTPS 可防止中間人封包監聽器擷取編碼認證。

建立預先簽署的 URL 時,請勿使用 LDAP 快速連結模式進行驗證。驗證是以預先簽署的 URL 所包含的 Base64 存取金鑰為基礎。將向解碼 Base64 存取金鑰的任何人顯示使用者名稱和密碼。

驗證方法為 nsswitch , LDAP 為啟用範例

$curl -siku <user>:<user_password> -X POST https://<LIF_IP_Address>/api/protocols/s3/services/<SVM_UUID>/users -d {"comment":"<S3_user_name>", "name":<user>,"key_time_to_live":"PT6H3M"}
註 將 API 導向叢集管理 LIF ,而非 SVM 的資料 LIF 。如果您想要允許使用者產生自己的金鑰,您必須將 HTTP 權限新增至其角色,才能使用 Curl 。此權限是 S3 API 權限的補充。

為 Active Directory 或 SMB 伺服器設定 S3 訪問

如果在 Bucket 原則聲明中指定的 nasgroup 或 nasgroup 的使用者沒有 UID 和 GID 集,則找不到這些屬性時,查詢會失敗。Active Directory 使用 SID ,而非 UID 。如果無法將 SID 項目對應至 UID ,則必須將必要資料帶到 ONTAP 。

若要這麼做,請使用"vserver Active Directory建立",讓 SVM 可以透過 Active Directory 驗證,並取得必要的使用者和群組資訊。

或者,使用"建立Vserver CIFS"在 Active Directory 網域中建立 SMB 伺服器。

如果名稱伺服器和物件儲存使用不同的域名,則可能會遇到查找失敗的情況。為避免尋找失敗, NetApp建議使用 UPN 格式的受信任網域進行資源授權: `nasgroup/group@trusted_domain.com`受信任網域是指已新增至 SMB 伺服器受信任網域清單中的網域。了解如何"新增、刪除和修改首選信任域"在 SMB 伺服器清單中。

當驗證方法是網域且信任的網域是在 Active Directory 中設定時,會產生金鑰

將端點與以 UPN 格式指定的使用者一起使用 s3/services/<svm_uuid>/users 。範例:

$curl -siku FQDN\\user:<user_password> -X POST https://<LIF_IP_Address>/api/protocols/s3/services/<SVM_UUID>/users -d {"comment":"<S3_user_name>", "name":<user@fqdn>,"key_time_to_live":"PT6H3M"}
註 將 API 導向叢集管理 LIF ,而非 SVM 的資料 LIF 。如果您想要允許使用者產生自己的金鑰,您必須將 HTTP 權限新增至其角色,才能使用 Curl 。此權限是 S3 API 權限的補充。

當驗證方法為網域且沒有信任的網域時,請產生金鑰

當停用 LDAP 或非 POSIX 使用者尚未設定 UID 和 GID 時,就可以執行此動作。範例:

$curl -siku FQDN\\user:<user_password> -X POST https://<LIF_IP_Address>/api/protocols/s3/services/<SVM_UUID>/users -d {"comment":"<S3_user_name>", "name":<user[@fqdn]>,"key_time_to_live":"PT6H3M"}
註 將 API 導向叢集管理 LIF ,而非 SVM 的資料 LIF 。如果您想要允許使用者產生自己的金鑰,您必須將 HTTP 權限新增至其角色,才能使用 Curl 。此權限是 S3 API 權限的補充。如果沒有信任的網域,您只需要將選用的網域值( @FQDN )新增至使用者名稱。