Updated on 2024-11-20 GMT+08:00

MAS Custom Policies

Custom policies can be created to supplement the system-defined policies of MAS. You can create custom policies using one of the following methods:

  • Visual editor: Select cloud services, actions, resources, and request conditions. This does not require knowledge of policy syntax.
  • JSON: Edit JSON policies from scratch or based on an existing policy.

The following section contains examples of common MAS custom policies.

For details about how to use the visual editor, see Creating a Custom Policy.

Example of Custom Policies

  • Example 1: Authorizing users to create, modify, and check instances
    {
        "Version": "1.1",
        "Statement": [
            {
                "Effect": "Allow",
                "Action": [
                    "mas:instance:create",
                    "mas:instance:modify",
                    "mas:instance:list",
                    "mas:instance:get"
                ]
            }
        ]
    }
  • Example 2: Authorizing users to use all components and monitors in MAS
    {
        "Version": "1.1",
        "Statement": [
            {
                "Effect": "Allow",
                "Action": [
                    "mas:monitor:*",
                    "mas:component:*"
                ]
            }
        ]
    }
  • Example 3: Denying MAS instances deletion

    A policy with only "Deny" permissions must be used in conjunction with other policies to take effect. If the permissions assigned to a user contain both "Allow" and "Deny", the "Deny" permissions take precedence over the "Allow" permissions.

    The following method can be used if you need to assign permissions of the MAS FullAccess policy to a user but you want to prevent the user from deleting instances. Create a custom policy for denying instance deletion, and attach both policies to the group to which the user belongs. Then, the user can perform all operations on MAS except deleting instances. The following is an example of a deny policy:

    {
        "Version": "1.1",
        "Statement": [
            {
                "Effect": "Deny",
                "Action": [
                    "mas:instance:delete"
                ]
            }
        ]
    }