Skip to main content
简体中文版经机器翻译而成,仅供参考。如与英语版出现任何冲突,应以英语版为准。

修改存储分段策略

贡献者

您可以向默认存储分段策略添加访问规则。其访问控制的范围是包含的存储分段,因此,只有一个存储分段时,它才是最合适的。

开始之前

必须已存在已启用S3且包含S3服务器和存储分段的Storage VM。

在授予权限之前,您必须已创建用户或组。

关于此任务

您可以为新用户和组添加新语句,也可以修改现有语句的属性。有关更多选项、请参见 vserver object-store-server bucket policy 手册页。

可以在创建存储分段时或稍后根据需要授予用户和组权限。您还可以修改存储分段容量和 QoS 策略组分配。

从ONTAP 9.9.1开始、如果您计划在ONTAP S3服务器上支持AWS客户端对象标记功能、请执行以下操作 GetObjectTaggingPutObjectTagging,和 DeleteObjectTagging 需要允许使用存储分段或组策略。

您关注的操作步骤 取决于您使用的界面—System Manager或命令行界面:

System Manager
步骤
  1. 编辑存储分段:单击 * 存储 > 存储分段 * ,单击所需分段,然后单击 * 编辑 * 。 添加或修改权限时,您可以指定以下参数:

    • 主体:被授予访问权限的用户或组。

    • 影响:允许或拒绝对用户或组的访问。

    • 操作:给定用户或组在存储分段中允许执行的操作。

    • 资源:允许或拒绝访问的存储分段中对象的路径和名称。

      默认值 * ; bucketname_* 和 * ; bucketname/* ;用于授予对存储分段中所有对象的访问权限。您还可以授予对单个对象的访问权限,例如 * ; bucketname/_* ; readme.txt * 。

    • 条件(可选):尝试访问时评估的表达式。例如,您可以指定允许或拒绝访问的 IP 地址列表。

备注 从ONTAP 9.14.1开始,您可以在*Res풴*字段中为存储分段策略指定变量。这些变量是占位符、在评估策略时、这些占位符将替换为上下文值。例如、If ${aws:username} 指定为策略的变量、然后此变量将替换为请求上下文用户名、并且可以按照为该用户配置的方式执行策略操作。
命令行界面
步骤
  1. 向存储分段策略添加语句:

    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创建服务器分段策略语句 svm1bucket1`和指定 `${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}/*##