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オブジェクトストレージ環境へのアクセス権限を付与できます。Lightweight Directory Access Protocol(LDAP)は、Active Directoryなどのディレクトリサービスと通信するためのインターフェースであり、IDおよびアクセス管理(IAM)用のデータベースとサービスを提供します。アクセス権限を付与するには、ONTAP S3環境でLDAPグループを設定する必要があります。アクセス権限を設定すると、グループメンバーにONTAP S3バケットへの権限が付与されます。LDAPの詳細については、"ONTAP NFS SVMでのLDAPネームサービスの使用について学習します"を参照してください。

また、Active Directoryユーザ グループを高速バインド モードに設定することで、ユーザ クレデンシャルを検証し、サードパーティおよびオープンソースのS3アプリケーションをLDAP接続を介して認証するようにもできます。

開始する前に

LDAPグループを設定し、グループ アクセスの高速バインド モードを有効にする場合は、事前に以下を確認してください。

  1. S3サーバを含むS3対応Storage VMが作成されました。"S3用SVMの作成"を参照してください。

  2. ストレージVMにバケットが作成されました。"バケットの作成"を参照してください。

  3. ストレージVMにDNSが設定されています。"DNSサービスを設定する"を参照してください。

  4. LDAPサーバの自己署名ルート認証局(CA)証明書がストレージVMにインストールされています。"SVMに自己署名ルートCA証明書をインストールする"を参照してください。

  5. LDAPクライアントは、SVM上でTLSを有効にして設定されています。"ONTAP NFSアクセス用のLDAPクライアント構成を作成する"および"LDAPクライアント設定をONTAP NFS SVMに関連付けて情報を取得する"を参照してください。

LDAPのS3アクセスを設定する

  1. 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.com/us-en/ontap-cli/vserver-services-name-service-ns-switch-modify.html[vserver services name-service ns-switch modify^]コマンドの詳細を参照してください。

  2. アクセスを許可するLDAPグループに `principal`を設定したオブジェクトストアバケットポリシーステートメントを作成します:

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

    例:次の例では、 `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. 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.com/us-en/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-encode(user-name:password)`例( `"NTAPFASTBIND"+ base64-encode(ldapuser:password)、結果は次のようになります
      NTAPFASTBINDbGRhcHVzZXI6cGFzc3dvcmQ=

      メモ 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をSVMのデータLIFではなく、クラスタ管理LIFに転送します。ユーザが独自のキーを生成できるようにする場合は、curlを使用するためのHTTP権限をユーザのロールに追加する必要があります。この権限は、S3 API権限に追加されます。

Active DirectoryまたはSMBサーバのS3アクセスを設定する

バケットポリシーステートメントで指定されたNASグループ、またはNASグループに属するユーザーにUIDとGIDが設定されていない場合、これらの属性が見つからないため検索は失敗します。Active DirectoryはUIDではなくSIDを使用します。SIDエントリをUIDにマッピングできない場合は、必要なデータをONTAPに取り込む必要があります。

これを行うには、"vserver active-directory create"を使用して、SVMがActive Directoryで認証し、必要なユーザおよびグループ情報を取得できるようにします。

または、"vserver cifs create"を使用して、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をSVMのデータLIFではなく、クラスタ管理LIFに転送します。ユーザが独自のキーを生成できるようにする場合は、curlを使用するためのHTTP権限をユーザのロールに追加する必要があります。この権限は、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をSVMのデータLIFではなく、クラスタ管理LIFに誘導してください。ユーザーが独自のキーを生成できるようにするには、curlを使用するためのHTTP権限をロールに追加する必要があります。この権限は、S3 API権限に加えて付与されます。信頼できるドメインがない場合にのみ、ユーザー名にオプションのドメイン値(@fqdn)を追加する必要があります。