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客户端访问。

您必须在Storage VM上执行一些配置步骤、才能创建自定义角色并将其分配给调用API以生成访问密钥的用户。

备注 如果 LDAP 被禁用,您可以"为ONTAP S3 访问配置外部目录服务"允许用户生成访问密钥。
开始之前

确保满足以下要求:

  1. 已创建一个包含S3服务器且已启用S3的Storage VM。请参见 "为 S3 创建 SVM"

  2. 已在此Storage VM中创建存储分段。请参见 "创建存储分段"

  3. 已在Storage VM上配置DNS。请参阅。 "配置 DNS 服务"

  4. 此Storage VM上安装了LDAP服务器的自签名根证书颁发机构(CA)证书。请参阅。 "在 SVM 上安装自签名根 CA 证书"

  5. LDAP客户端已在Storage VM上配置为启用TLS。请参阅。 "为 ONTAP NFS 访问创建 LDAP 客户端配置"

  6. 将客户端配置与Vserver相关联。请参阅。 "将 LDAP 客户端配置与 ONTAP NFS SVM 关联"有关的详细信息 vserver services name-service ldap create,请参见"ONTAP 命令参考"

  7. 如果您使用的是数据Storage VM、请在此VM上创建管理网络接口(LIF)和、并为此LIF创建一个服务策略。有关和的 network interface service-policy create`详细信息 `network interface create,请参见"ONTAP 命令参考"

配置用户以生成访问密钥

示例 1. 步骤
LDAP 用户
  1. 指定LDAP作为组的Storage VM的_name service database _、并为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,请参见"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 此角色是为Storage 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,请参见"ONTAP 命令参考"

  3. 使用以下方式创建 LDAP 用户组 `security login`命令并添加用于访问 S3 用户 REST API 端点的新自定义角色。详细了解 `security login create`在"ONTAP 命令参考"

    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

    有关的详细信息 security login create,请参见"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`为存储虚拟机上的用户生成角色 `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,请参见"ONTAP 命令参考"

  1. 使用以下方式创建域用户组 `security login`命令并添加用于访问 S3 用户 REST API 端点的新自定义角色。详细了解 `security login create`在"ONTAP 命令参考"

    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,请参见"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 方法 路径

发布

/api/protocols、s3/services /{svm.unid}/用户

对于域用户,请使用以下格式作为 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 方法 路径

修补

/api/protocols/s3/services/{svm.uuid}/用户/{名称}

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"
}