将访问规则添加到默认ONTAP S3存储分段策略
您可以向默认存储分段策略添加访问规则。其访问控制的范围是包含的存储分段,因此,只有一个存储分段时,它才是最合适的。
必须已存在已启用S3且包含S3服务器和存储分段的Storage VM。
在授予权限之前,您必须已创建用户或组。
您可以为新用户和组添加新语句,也可以修改现有语句的属性。有关更多选项、请参见 vserver object-store-server bucket policy
手册页。
可以在创建存储分段时或稍后根据需要授予用户和组权限。您还可以修改存储分段容量和 QoS 策略组分配。
从ONTAP 9.9.1开始、如果您计划在ONTAP S3服务器上支持AWS客户端对象标记功能、请执行以下操作 GetObjectTagging
, PutObjectTagging
,和 DeleteObjectTagging
需要允许使用存储分段或组策略。
您关注的操作步骤 取决于您使用的界面—System Manager或命令行界面:
-
编辑存储分段:单击 * 存储 > 存储分段 * ,单击所需分段,然后单击 * 编辑 * 。 添加或修改权限时,您可以指定以下参数:
-
主体:被授予访问权限的用户或组。
-
影响:允许或拒绝对用户或组的访问。
-
操作:给定用户或组在存储分段中允许执行的操作。
-
资源:允许或拒绝访问的存储分段中对象的路径和名称。
默认值 * ; bucketname_* 和 * ; bucketname/* ;用于授予对存储分段中所有对象的访问权限。您还可以授予对单个对象的访问权限,例如 * ; bucketname/_* ; readme.txt * 。
-
条件(可选):尝试访问时评估的表达式。例如,您可以指定允许或拒绝访问的 IP 地址列表。
-
从ONTAP 9.14.1开始,您可以在*Res풴*字段中为存储分段策略指定变量。这些变量是占位符、在评估策略时、这些占位符将替换为上下文值。例如、If ${aws:username} 指定为策略的变量、然后此变量将替换为请求上下文用户名、并且可以按照为该用户配置的方式执行策略操作。
|
-
向存储分段策略添加语句:
vserver object-store-server bucket policy add-statement -vserver svm_name -bucket bucket_name -effect {allow|deny} -action object_store_actions -principal user_and_group_names -resource object_store_resources [-sid text] [-index integer]
以下参数用于定义访问权限:
-effect
该语句可能允许或拒绝访问
-action
您可以指定
*
表示所有操作、或者包含以下一项或多项的列表:GetObject, PutObject, DeleteObject, ListBucket, GetBucketAcl,GetObjectAcl, ListBucketMultipartUploads,
和ListMultipartUploadParts
。-principal
一个或多个 S3 用户或组的列表。
-
最多可以指定 10 个用户或组。
-
如果指定了S3组、则必须采用的格式
group/group_name.
-
*
可以指定为表示公共访问、即不使用访问密钥和机密密钥的访问。 -
如果未指定主体、则会为Storage VM中的所有S3用户授予访问权限。
-resource
分段及其包含的任何对象。通配符
*
和?
可用于形成用于指定资源的正则表达式。对于资源、您可以在策略中指定变量。这些策略变量是在评估策略时用上下文值替换的占位符。您可以选择使用指定文本字符串作为注释
-sid
选项 -
以下示例将为Storage VM svm1.example.com和bucket1创建对象存储服务器分段策略语句、指定允许对象存储服务器用户user1访问自述文件文件夹。
cluster1::> vserver object-store-server bucket policy statement create -vserver svm1.example.com -bucket bucket1 -effect allow -action GetObject,PutObject,DeleteObject,ListBucket -principal user1 -resource bucket1/readme/* -sid "fullAccessToReadmeForUser1"
以下示例将为Storage VM svm1.example.com和bucket1创建对象存储服务器分段策略语句、该语句指定允许访问对象存储服务器组group1的所有对象。
cluster1::> vserver object-store-server bucket policy statement create -vserver svm1.example.com -bucket bucket1 -effect allow -action GetObject,PutObject,DeleteObject,ListBucket -principal group/group1 -resource bucket1/* -sid "fullAccessForGroup1"
从ONTAP 9.14.1开始、您可以为分段策略指定变量。以下示例将为Storage VM创建服务器分段策略语句 svm1
和 bucket1`和指定 `${aws:username}
作为策略资源的变量。评估策略时、策略变量将替换为请求上下文用户名、并且可以按照为该用户配置的方式执行策略操作。例如、在评估以下策略语句时、 ${aws:username}
替换为执行S3操作的用户。如果是用户 user1
执行此操作时、该用户将被授予访问权限 bucket1
作为 bucket1/user1/*
。
cluster1::> object-store-server bucket policy statement create -vserver svm1 -bucket bucket1 -effect allow -action * -principal - -resource bucket1,bucket1/${aws:username}/*##