Skip to main content
日本語は機械翻訳による参考訳です。内容に矛盾や不一致があった場合には、英語の内容が優先されます。

LDAPまたはドメインユーザーが独自のONTAP S3アクセスキーを生成できるようにする

共同作成者 netapp-aaron-holt netapp-bhouser netapp-lenida netapp-manini netapp-dbagwell netapp-barbe netapp-ahibbard netapp-aherbin

ONTAP 9.14.1以降では、ONTAP管理者がカスタム ロールを作成し、それをローカル グループ、ドメイン グループ、またはLightweight Directory Access Protocol(LDAP)グループに割り当てることができます。このようにすると、各グループに所属するユーザがS3クライアント アクセス用に自身のアクセス キーとシークレット キーを生成できるようになります。

カスタムロールを作成し、アクセスキー生成用のAPIを呼び出すユーザーに割り当てることができるように、ストレージVMでいくつかの設定手順を実行する必要があります。

メモ LDAPが無効になっている場合は、"ONTAP S3アクセス用の外部ディレクトリサービスを設定する"ユーザーがアクセスキーを生成できるようにすることができます。
開始する前に

以下を確認してください。

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

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

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

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

  5. Storage VMでTLSが有効になっているLDAPクライアントが設定されています。"ONTAP NFSアクセス用のLDAPクライアント構成を作成する"を参照してください。

  6. クライアント構成をVserverに関連付けます。"LDAPクライアント設定をONTAP NFS SVMに関連付ける"を参照してください。 `vserver services name-service ldap create`の詳細については、"ONTAPコマンド リファレンス"を参照してください。

  7. データストレージVMを使用している場合は、VM上に管理ネットワークインターフェース(LIF)と、LIFのサービスポリシーを作成します。 `network interface create`と `network interface service-policy create`の詳細については、"ONTAPコマンド リファレンス"を参照してください。

アクセス キー生成のためのユーザの設定

例 1. 手順
LDAPユーザ
  1. ストレージVMのグループとパスワードの_ネームサービスデータベース_としてLDAPを指定します:

    ns-switch modify -vserver <vserver-name> -database group -sources files,ldap
    ns-switch modify -vserver <vserver-name> -database passwd -sources files,ldap
    `vserver services name-service ns-switch modify`の詳細については、link:https://docs.netapp.com/us-en/ontap-cli/vserver-services-name-service-ns-switch-modify.html["ONTAPコマンド リファレンス"^]を参照してください。
  2. S3ユーザREST APIエンドポイントへのアクセス権を持つカスタムロールを作成します:
    `security login rest-role create -vserver <vserver-name> -role <custom-role-name> -api "/api/protocols/s3/services/*/users" -access <access-type>`この例では、 `s3-role`ロールがストレージVM `svm-1`上のユーザーに対して生成され、読み取り、作成、更新のすべてのアクセス権が付与されます。

    security login rest-role create -vserver svm-1 -role s3role -api "/api/protocols/s3/services/*/users" -access all
    `security login rest-role create`の詳細については、link:https://docs.netapp.com/us-en/ontap-cli/security-login-rest-role-create.html["ONTAPコマンド リファレンス"^]を参照してください。
  3. `security login`コマンドを使用してLDAPユーザーグループを作成し、S3ユーザーREST APIエンドポイントにアクセスするための新しいカスタムロールを追加します。"ONTAPコマンド リファレンス"の `security login create`の詳細をご覧ください。

    security login create -user-or-group-name <ldap-group-name> -application http -authentication-method nsswitch -role <custom-role-name> -is-ns-switch-group yes

    この例では、LDAPグループ `ldap-group-1`が `svm-1`に作成され、カスタムロール `s3role`がAPIエンドポイントにアクセスするために追加され、高速バインドモードでのLDAPアクセスが有効になります。

    security login create -user-or-group-name ldap-group-1 -application http -authentication-method nsswitch -role s3role -is-ns-switch-group yes -second-authentication-method none -vserver svm-1 -is-ldap-fastbind yes

    詳細については、"ONTAP NFS SVMのnsswitch認証にLDAP高速バインドを使用する"を参照してください。

    `security login create`の詳細については、link:https://docs.netapp.com/us-en/ontap-cli/security-login-create.html["ONTAPコマンド リファレンス"^]をご覧ください。

LDAPグループにカスタムロールを追加すると、そのグループ内のユーザーにONTAP `/api/protocols/s3/services/{svm.uuid}/users`エンドポイントへの限定的なアクセスが許可されます。APIを呼び出すことで、LDAPグループのユーザーはS3クライアントにアクセスするための独自のアクセスキーとシークレットキーを生成できます。キーは自分自身のみ生成でき、他のユーザー用には生成できません。

ドメイン ユーザ
  1. S3ユーザREST APIエンドポイントへのアクセス権を持つカスタム ロールを作成します。

security login rest-role create -vserver <vserver-name> -role <custom-role-name> -api "/api/protocols/s3/services/*/users" -access <access-type>

この例では、 `s3-role`ロールがストレージVM `svm-1`上のユーザーに対して生成され、読み取り、作成、更新のすべてのアクセス権が付与されます。

security login rest-role create -vserver svm-1 -role s3role -api "/api/protocols/s3/services/*/users" -access all
`security login rest-role create`の詳細については、link:https://docs.netapp.com/us-en/ontap-cli/security-login-rest-role-create.html["ONTAPコマンド リファレンス"^]を参照してください。
  1. `security login`コマンドを使用してドメインユーザーグループを作成し、S3ユーザーREST APIエンドポイントにアクセスするための新しいカスタムロールを追加します。"ONTAPコマンド リファレンス"の `security login create`の詳細をご覧ください。

    security login create -vserver <vserver-name> -user-or-group-name domain\<group-name> -application http -authentication-method domain -role <custom-role-name>

    この例では、ドメイングループ `domain\group1`が `svm-1`に作成され、カスタムロール `s3role`がAPIエンドポイントにアクセスするためにそのグループに追加されます。

    security login create -user-or-group-name domain\group1 -application http -authentication-method domain -role s3role -vserver svm-1
    `security login create`の詳細については、link:https://docs.netapp.com/us-en/ontap-cli/security-login-create.html["ONTAPコマンド リファレンス"^]をご覧ください。

ドメイングループにカスタムロールを追加すると、そのグループ内のユーザーに ONTAP /api/protocols/s3/services/{svm.uuid}/users エンドポイントへの限定的なアクセスが許可されます。API を呼び出すことで、ドメイングループのユーザーは S3 クライアントにアクセスするための独自のアクセスキーとシークレットキーを生成できます。キーは自分自身のみ生成でき、他のユーザー用には生成できません。

S3ユーザまたはLDAPユーザによる独自のアクセス キーの生成

ONTAP 9.14.1以降では、独自のキーを生成できるロールが割り当てられているユーザは、S3クライアントにアクセスするための独自のアクセス キーとシークレット キーを生成できます。次のONTAP REST APIエンドポイントを使用すると、自分専用のキーを生成できます。

S3ユーザを作成してキーを生成

このREST API呼び出しでは、以下のメソッドとエンドポイントを使用します。このエンドポイントの詳細については、リファレンス "APIのドキュメント"をご覧ください。

HTTPメソッド パス

POST

/api/protocols/s3/services/{svm.uuid}/users

ドメインユーザーの場合は、S3ユーザー名に次の形式を使用します: user@fqdn。ここで、 `fqdn`はドメインの完全修飾ドメイン名です。

Curlの例
curl
--request POST \
--location "https://$FQDN_IP /api/protocols/s3/services/{svm.uuid}/users " \
--include \
--header "Accept: */*" \
--header "Authorization: Basic $BASIC_AUTH"
--data '{"name":"user1@example.com"}'
JSON出力の例
{
  "records": [
    {
      "access_key": "4KX07KF7ML8YNWY01JWG",
      "_links": {
        "next": {
          "href": "/api/resourcelink"
        },
        "self": {
          "href": "/api/resourcelink"
        }
      },
      "name": "user1@example.com",
      "secret_key": "<secret_key_value>"
    }
  ],
  "num_records": "1"
}
S3ユーザのキーを再生成

S3ユーザーが既に存在する場合は、アクセスキーとシークレットキーを再生成できます。このREST API呼び出しでは、以下のメソッドとエンドポイントを使用します。

HTTPメソッド パス

PATCH

/api/protocols/s3/services/{svm.uuid}/users/{name}

Curlの例
curl
--request PATCH \
--location "https://$FQDN_IP /api/protocols/s3/services/{svm.uuid}/users/{name} " \
--include \
--header "Authorization: Basic $BASIC_AUTH" \
--data '{"regenerate_keys":"True"}'
JSON出力の例
{
  "records": [
    {
      "access_key": "DX12U609DMRVD8U30Z1M",
      "_links": {
        "self": {
          "href": "/api/resourcelink"
        }
      },
      "name": "user1@example.com",
      "secret_key": "<secret_key_value>"
    }
  ],
  "num_records": "1"
}