允许LDAP或域用户生成自己的ONTAP S3访问密钥
从ONTAP 9.14.1开始、作为ONTAP管理员、您可以创建自定义角色并将其授予本地或域组或轻型目录访问协议(Lightweight-Directory Access Protocol、LDAP)组、以便属于这些组的用户可以生成自己的访问权限和机密密钥来进行S3客户端访问。
您必须在Storage VM上执行一些配置步骤、才能创建自定义角色并将其分配给调用API以生成访问密钥的用户。
|
如果 LDAP 被禁用,您可以"为ONTAP S3 访问配置外部目录服务"允许用户生成访问密钥。 |
确保满足以下要求:
-
已创建一个包含S3服务器且已启用S3的Storage VM。请参见 "为 S3 创建 SVM"。
-
已在此Storage VM中创建存储分段。请参见 "创建存储分段"。
-
已在Storage VM上配置DNS。请参阅。 "配置 DNS 服务"
-
此Storage VM上安装了LDAP服务器的自签名根证书颁发机构(CA)证书。请参阅。 "在 SVM 上安装自签名根 CA 证书"
-
LDAP客户端已在Storage VM上配置为启用TLS。请参阅。 "为 ONTAP NFS 访问创建 LDAP 客户端配置"
-
将客户端配置与Vserver相关联。请参阅。 "将 LDAP 客户端配置与 ONTAP NFS SVM 关联"有关的详细信息
vserver services name-service ldap create
,请参见"ONTAP 命令参考"。 -
如果您使用的是数据Storage VM、请在此VM上创建管理网络接口(LIF)和、并为此LIF创建一个服务策略。有关和的
network interface service-policy create`详细信息 `network interface create
,请参见"ONTAP 命令参考"。
配置用户以生成访问密钥
-
指定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 命令参考"。 -
创建可访问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 命令参考"。 -
使用以下方式创建 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
有关详细信息,请参见 "使用 LDAP 快速绑定对 ONTAP NFS SVM 进行 nsswitch 身份验证"。
有关的详细信息
security login create
,请参见"ONTAP 命令参考"。
将自定义角色添加到 LDAP 组允许该组中的用户对ONTAP进行有限的访问 `/api/protocols/s3/services/{svm.uuid}/users`端点。通过调用 API,LDAP 组用户可以生成自己的访问密钥和密钥来访问 S3 客户端。他们只能为自己生成密钥,而不能为其他用户生成密钥。
-
创建可以访问 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 命令参考"。
-
使用以下方式创建域用户组 `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端点为自己生成密钥。
此 REST API 调用使用以下方法和端点。有关此端点的更多信息,请参阅参考 "API文档" 。
HTTP 方法 | 路径 |
---|---|
发布 |
/api/protocols、s3/services /{svm.unid}/用户 |
对于域用户,请使用以下格式作为 S3 用户名: user@fqdn
, 在哪里 `fqdn`是域的完全限定域名。
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"}'
{ "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 用户已存在,您可以重新生成其访问密钥和密钥。此 REST API 调用使用以下方法和端点。
HTTP 方法 | 路径 |
---|---|
修补 |
/api/protocols/s3/services/{svm.uuid}/用户/{名称} |
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"}'
{ "records": [ { "access_key": "DX12U609DMRVD8U30Z1M", "_links": { "self": { "href": "/api/resourcelink" } }, "name": "user1@example.com", "secret_key": "<secret_key_value>" } ], "num_records": "1" }