All Products
Search
Document Center

Microservices Engine:Configure RAM permissions for AI Registry

Last Updated:Jul 10, 2026

Overview

RAM permission policies define which AI Registry actions and resources are available to RAM users or STS temporary credentials, preventing unauthorized changes and data exposure.

Use predefined policies for common use cases, or create custom policies for fine-grained access control.

Prerequisites

  • An Alibaba Cloud account with AI Registry activated

  • At least one AI Registry workspace (namespace)

  • Familiarity with RAM access control, user creation, and policy configuration

Method 1: Use predefined policies

Attach these predefined policies directly to a RAM user or user group in the RAM console.

Policy name

Description

AliyunAIRegistryReadOnlyAccess

Grants read-only access to the console and client side. Allows viewing workspaces and prompts but not creating, modifying, or deleting resources.

AliyunAIRegistryFullAccess

Grants full access to all AI Registry resources.

AliyunAIRegistryPromptFullAccess

Grants full access to prompt resources, including creating, editing, publishing, deleting, and debugging.

AliyunAIRegistryNamespaceFullAccess

Grants full access to workspaces (namespaces), including creating, editing, and deleting.

AliyunAIRegistrySkillFullAccess

Grants full access to skill resources, including creating, editing, publishing, enabling, disabling, and deleting.

Procedure

  1. Log on to the RAM console.

  2. In the navigation pane on the left, choose Identities > Users. Find the target RAM user.

  3. Select the required predefined policy and click OK.

Note

To verify, log on to the AI Registry console with the RAM user credentials and confirm that expected operations are accessible and restricted operations are blocked.

Select AliyunAIRegistryReadOnlyAccess for view-only access, or AliyunAIRegistryFullAccess for full management.

Method 2: Create a custom permission policy

If predefined policies do not meet your requirements, create a custom policy for workspace-level or resource-level access control.

2.1 Key concepts

A custom policy consists of the following elements:

  • Effect: Allow or Deny.

  • Action: The operations to authorize.

  • Resource: The target resources.

Action

Actions in AI Registry are divided into two levels:

General action—for client access:

Action

Description

airegistry:Read

Client-side read-only access for pulling resources such as prompts and skills via SDKs or APIs. Does not grant console permissions.

airegistry:Write

Client-side write access for resources via SDKs or APIs. Does not grant console permissions. Currently, only skills support client-side writes.

API-level actions—for console operations (fine-grained authorization by specific API):

Category

Action

Description

Workspace

airegistry:CreateNamespace

Creates a workspace.

airegistry:ListNamespaces

Lists workspaces.

airegistry:GetNamespace

Gets workspace details.

airegistry:UpdateNamespace

Updates a workspace.

airegistry:DeleteNamespace

Deletes a workspace.

airegistry:CreateNamespaceWithSource

Creates a workspace with a specified source.

airegistry:ListNamespaceBySource

Lists workspaces filtered by source.

Prompt

airegistry:ListPrompts

Lists prompts.

airegistry:GetPrompt

Gets prompt details.

airegistry:CreatePrompt

Creates a prompt.

airegistry:UpdatePrompt

Updates a prompt.

airegistry:DeletePrompt

Deletes a prompt.

airegistry:ListPromptVersions

Lists prompt versions.

airegistry:GetPromptVersion

Gets prompt version information.

airegistry:GetPromptVersionDetail

Gets prompt version details.

airegistry:CreatePromptVersion

Creates a prompt version.

airegistry:UpdatePromptVersion

Updates a prompt version.

airegistry:SubmitPromptVersion

Publishes a prompt version.

airegistry:DeletePromptVersion

Deletes a prompt version.

airegistry:GetPromptGovernance

Gets prompt governance information.

Debugging and optimization

airegistry:InvokePromptDebugStream

Debugs a prompt (streaming).

airegistry:InvokePromptOptimizeStream

Optimizes a prompt (streaming).

airegistry:GetSupportedModels

Gets the list of supported models.

Skill

airegistry:CreateSkillDraft

Creates a skill draft.

airegistry:UpdateSkillDraft

Updates a skill draft.

airegistry:DeleteSkillDraft

Deletes a skill draft.

airegistry:SubmitSkillVersion

Submits a skill version.

airegistry:PublishSkillVersion

Publishes a skill version.

airegistry:ForcePublishSkillVersion

Force-publishes a skill version.

airegistry:UpdateSkillBizTags

Updates the business tags of a skill.

airegistry:UpdateSkillLabels

Updates the labels of a skill.

airegistry:OnlineSkill

Enables a skill.

airegistry:OfflineSkill

Disables a skill.

airegistry:UpdateSkillScope

Updates the scope of a skill.

airegistry:GetSkillDetail

Gets skill details.

airegistry:GetSkillVersionDetail

Gets skill version details.

airegistry:DownloadSkillVersion

Downloads a skill version.

airegistry:ListSkills

Lists skills.

airegistry:DeleteSkill

Deletes a skill.

airegistry:UploadSkill

Uploads a skill.

airegistry:UploadSkillViaOss

Uploads a skill via OSS.

airegistry:DownloadSkillVersionViaOss

Downloads a skill version via OSS.

Note
  • airegistry:Read and airegistry:Write grant client-side access only. Neither grants console permissions. To allow both client and console access, combine airegistry:Read and airegistry:Write with API-level actions.

  • Alternatively, use airegistry:* as the Action to grant both client-side read/write access and all API-level operation permissions.

Resource

Resources are identified by Alibaba Cloud Resource Name (ARN):

acs:airegistry:*:*:instance/saas/{workspace-id}/{domain}/{resource-type}/{resource-name}

Where:

  • workspace-id: Your workspace ID from the AI Registry console.

  • domain: Currently fixed to DEFAULT.

  • resource-type: The resource type, such as prompt, skill, mcp, or agent.

  • resource-name: The name of the specific resource.

Use the wildcard (*) to match multiple resources.

2.2 Authorization granularity

Control access at different levels of granularity:

Scope of authorization

Example resource

All resources in all workspaces

acs:airegistry:*:*:instance/saas/*

All resources in a specific workspace

acs:airegistry:*:*:instance/saas/{your-workspace-id}/*

A specific type of resource in a specific workspace

acs:airegistry:*:*:instance/saas/{your-workspace-id}/DEFAULT/prompt/*

A specific type of resource in a specific workspace (skill)

acs:airegistry:*:*:instance/saas/{your-workspace-id}/DEFAULT/skill/*

A specific resource

acs:airegistry:*:*:instance/saas/{your-workspace-id}/DEFAULT/prompt/my-prompt

2.3 Create a custom policy

  1. Log on to the RAM console.

  2. In the navigation pane on the left, choose Permissions > Policies.

  3. Click Create Policyand select the JSON Editor tab.

  4. Write the policy content by referring to the examples below and click OK.

  5. Attach the created policy to the target RAM user or user group.

Note

To verify, log on to the AI Registry console with the RAM user credentials and confirm that expected operations are accessible and restricted operations are blocked.

2.4 Common scenarios

Scenario 1: Grant read-only client access

An application pulls resources such as prompts via an SDK or API and requires only read access.

{
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "airegistry:Read",
      "Resource": "acs:airegistry:*:*:instance/saas/{your-workspace-id}/*"
    }
  ],
  "Version": "1"
}

Scenario 2: Grant full management of a workspace

A team member needs full management permissions (console and client) for a specific workspace.

{
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "airegistry:*",
      "Resource": "acs:airegistry:*:*:instance/saas/{your-workspace-id}/*"
    }
  ],
  "Version": "1"
}

Scenario 3: Restrict access to prompts

A prompt engineer needs to manage prompts but should not access other resource types.

{
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "airegistry:Read",
        "airegistry:GetPrompt",
        "airegistry:CreatePrompt",
        "airegistry:UpdatePrompt",
        "airegistry:DeletePrompt",
        "airegistry:ListPromptVersions",
        "airegistry:GetPromptVersion",
        "airegistry:GetPromptVersionDetail",
        "airegistry:CreatePromptVersion",
        "airegistry:UpdatePromptVersion",
        "airegistry:SubmitPromptVersion",
        "airegistry:DeletePromptVersion",
        "airegistry:GetPromptGovernance",
        "airegistry:InvokePromptDebugStream",
        "airegistry:InvokePromptOptimizeStream"
      ],
      "Resource": "acs:airegistry:*:*:instance/saas/{your-workspace-id}/DEFAULT/prompt/*"
    },
    {
      "Effect": "Allow",
      "Action": [
        "airegistry:ListNamespaces",
        "airegistry:ListNamespaceBySource",
        "airegistry:GetNamespace",
        "airegistry:GetSupportedModels"
      ],
      "Resource": "acs:airegistry:*:*:instance/saas/*"
    },
    {
      "Effect": "Allow",
      "Action": "airegistry:ListPrompts",
      "Resource": "acs:airegistry:*:*:instance/saas/{your-workspace-id}/DEFAULT/prompt"
    }
  ],
  "Version": "1"
}
Note

ListPrompts is a collection-level operation, so its Resource is .../prompt (without /*).

Alternatively, use the predefined policy AliyunAIRegistryPromptFullAccess to achieve the same result.

Scenario 4: Combine client and console permissions

An application pulls resources via a client, and the user also manages prompts in the console.

{
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "airegistry:Read",
      "Resource": "acs:airegistry:*:*:instance/saas/{your-workspace-id}/*"
    },
    {
      "Effect": "Allow",
      "Action": [
        "airegistry:CreatePrompt",
        "airegistry:UpdatePrompt",
        "airegistry:DeletePrompt",
        "airegistry:CreatePromptVersion",
        "airegistry:UpdatePromptVersion",
        "airegistry:SubmitPromptVersion",
        "airegistry:DeletePromptVersion",
        "airegistry:InvokePromptDebugStream",
        "airegistry:InvokePromptOptimizeStream"
      ],
      "Resource": "acs:airegistry:*:*:instance/saas/{your-workspace-id}/DEFAULT/prompt/*"
    }
  ],
  "Version": "1"
}

Scenario 5: Restrict access to skills

A team member needs to manage skills but should not access other resource types.

{
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "airegistry:Read",
        "airegistry:Write",
        "airegistry:UpdateSkillDraft",
        "airegistry:DeleteSkillDraft",
        "airegistry:SubmitSkillVersion",
        "airegistry:PublishSkillVersion",
        "airegistry:ForcePublishSkillVersion",
        "airegistry:UpdateSkillBizTags",
        "airegistry:UpdateSkillLabels",
        "airegistry:OnlineSkill",
        "airegistry:OfflineSkill",
        "airegistry:UpdateSkillScope",
        "airegistry:GetSkillDetail",
        "airegistry:GetSkillVersionDetail",
        "airegistry:DownloadSkillVersion",
        "airegistry:DeleteSkill",
        "airegistry:DownloadSkillVersionViaOss"
      ],
      "Resource": "acs:airegistry:*:*:instance/saas/{your-workspace-id}/DEFAULT/skill/*"
    },
    {
      "Effect": "Allow",
      "Action": [
        "airegistry:ListNamespaces",
        "airegistry:ListNamespaceBySource",
        "airegistry:GetNamespace"
      ],
      "Resource": "acs:airegistry:*:*:instance/saas/*"
    },
    {
      "Effect": "Allow",
      "Action": [
        "airegistry:ListSkills",
        "airegistry:CreateSkillDraft",
        "airegistry:UploadSkill",
        "airegistry:UploadSkillViaOss"
      ],
      "Resource": "acs:airegistry:*:*:instance/saas/{your-workspace-id}/DEFAULT/skill"
    }
  ],
  "Version": "1"
}
Note

ListSkills, CreateSkillDraft, UploadSkill, and UploadSkillViaOss are collection-level operations, so their Resource is .../skill (without /*).

Alternatively, use the predefined policy AliyunAIRegistrySkillFullAccess to achieve the same result.

Scenario 6: Scope permissions to a specific resource

Use case: Allow a RAM user to access only one specific prompt.

{
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "airegistry:*",
      "Resource": "acs:airegistry:*:*:instance/saas/{your-workspace-id}/DEFAULT/prompt/my-prompt"
    }
  ],
  "Version": "1"
}

2.5 Usage notes

  • Deny overrides Allow: When both Allow and Deny apply to the same action, Deny takes precedence. Use this to grant broad permissions while restricting specific actions.

  • Workspace isolation: AI Registry enforces workspace ownership. You cannot access workspaces owned by other Alibaba Cloud accounts, even if specified in a RAM policy.

  • Workspace ID in policies: Replace {your-workspace-id} with your actual workspace ID from the AI Registry console.

  • Principle of least privilege: Grant each user only the minimum permissions required for their tasks. Avoid overly broad wildcards.

FAQ

Q: What should I do if a RAM user receives a "permission denied" error?

A: Check the following:

  • Verify that the correct permission policy is attached to the RAM user.

  • Verify that the workspace ID in the permission policy matches the workspace being accessed.

  • Verify that the Action covers the required operation type (airegistry:Read, airegistry:Write, or specific API-level actions).

  • If you are using a Deny policy, check that it is not unintentionally blocking required operations.

Q: How do I allow a RAM user to access only specific workspaces?

A: In the Resource element, specify exact workspace IDs instead of the wildcard (*). For multiple workspaces, add multiple Statement elements.

Q: How do I configure permissions for access using STS temporary credentials?

A: STS temporary credentials inherit permissions from two sources: the policy attached to the RAM role, and the policy specified in the AssumeRole API call. Ensure the RAM role has the required AI Registry permissions and the AssumeRole policy does not restrict them.