RAM authorization

Updated at:

Resource Access Management (RAM) is a service provided by Alibaba Cloud to manage user identities and resource access permissions. Using RAM helps you avoid sharing your Alibaba Cloud account keys with other users and allows you to grant users the least privilege access. RAM uses permission policies to define authorizations. This topic describes the general structure of a RAM policy, and the policy statement elements (Action, Resource, and Condition) defined by AgentLoop for RAM permission policies. The RAM code (RamCode) for AgentLoop is agentloop , and the supported authorization granularity is RESOURCE .

General structure of a policy

Permission policies support JSON format with the following general structure:

{
  "Version": "1",
  "Statement": [
    {
      "Effect": "<Effect>",
      "Action": "<Action>",
      "Resource": "<Resource>",
      "Condition": {
        "<Condition_operator>": {
          "<Condition_key>": [
            "<Condition_value>"
          ]
        }
      }
    }
  ]
}        

The following list describes the fields in the policy:

  • Version: Specifies the policy version number. It is fixed at 1.

  • Statement:

    • Effect: Specifies the authorization result. Valid values: Allow and Deny.

    • Action: Specifies one or more operations that are allowed or denied.

    • Resource: Specifies the specific objects affected by the operations. You can use Alibaba Cloud Resource Names (ARNs) to describe specific resources.

    • Condition: Specifies the conditions for the authorization to take effect. This field is optional.

      • Condition operator: Specifies the conditional operators. Different types of conditions support different conditional operators.

      • Condition_key: Specifies the condition keys.

      • Condition_value: Specifies the condition values.

Action

The following table lists the actions defined by AgentLoop. The table's columns are detailed below:

  • Action: The actions can be used in the Action element of RAM permission policy statements to grant permissions to perform the operation.

  • API: The API that you can call to perform the action.

  • Access level: The predefined level of access granted for each API. Valid values: create, list, get, update, and delete.

  • Resource type: The type of the resource that support authorization to perform the action. It indicates if the action supports resource-level permission. The specified resource must be compatible with the action. Otherwise, the policy will be ineffective.

    • For APIs with resource-level permissions, required resource types are marked with an asterisk (*). Specify the corresponding ARN in the Resource element of the policy.

    • For APIs without resource-level permissions, it is shown as All Resources. Use an asterisk (*) in the Resource element of the policy.

  • Condition key: The condition keys defined by the service. The key allows for granular control, applying to either actions alone or actions associated with specific resources. In addition to service-specific condition keys, Alibaba Cloud provides a set of common condition keys that are applicable across all RAM-integrated services. For more information, see Common condition keys.

  • Dependent action: The dependent actions required to run the action. To complete the action, the RAM user or the RAM role must have the permissions to perform all dependent actions.

Action

API

Access level

Resource type

Condition key

Dependent action

agentloop:ListOptimizeTasks ListOptimizeTasks list

*OptimizeTask

acs:agentloop:{#regionId}:{#accountId}:agentspace/{#AgentSpaceName}/optimizetask/*

None None
agentloop:ListOptimizeRuns ListOptimizeRuns list

*OptimizeTask

acs:agentloop:{#regionId}:{#accountId}:agentspace/{#AgentSpaceName}/optimizetask/{#OptimizeTaskName}

None None
agentloop:ListPipelines ListPipelines list

*Pipeline

acs:agentloop:{#regionId}:{#accountId}:agentspace/{#AgentSpaceName}/pipeline/*

None None
agentloop:DeleteContextStoreAPIKey DeleteContextStoreAPIKey delete

*ContextStoreAPIKey

acs:agentloop:{#regionId}:{#accountId}:agentspace/{#AgentSpaceName}/contextstore/{#ContextStoreName}

None None
agentloop:UpdateOptimizeTask UpdateOptimizeTask update

*OptimizeTask

acs:agentloop:{#regionId}:{#accountId}:agentspace/{#AgentSpaceName}/optimizetask/{#OptimizeTaskName}

None None
agentloop:UpdateEvaluator UpdateEvaluator update

*Evaluator

acs:agentloop:{#regionId}:{#accountId}:agentspace/{#AgentSpaceName}/evaluator/{#EvaluatorName}

None None
agentloop:PreviewPipeline PreviewPipeline list

*Pipeline

acs:agentloop:{#regionId}:{#accountId}:agentspace/{#AgentSpaceName}/pipeline/*

None None
agentloop:GetExperimentRun GetExperimentRun get

*Workspace

acs:agentloop:{#regionId}:{#accountId}:agentspace/{#AgentSpaceName}

None None
agentloop:ExecuteQuery ExecuteQuery update

*Dataset

acs:agentloop:{#regionId}:{#accountId}:agentspace/{#AgentSpaceName}/dataset/{#DatasetName}

None None
agentloop:GetPipeline GetPipeline none

*Pipeline

acs:agentloop:{#regionId}:{#accountId}:agentspace/{#AgentSpaceName}/pipeline/{#PipelineName}

None None
agentloop:UpdateEvaluationTask UpdateEvaluationTask update

*EvaluationTask

acs:agentloop:{#regionId}:{#accountId}:agentspace/{#AgentSpaceName}/evaluationtask/{#TaskId}

None None
agentloop:GetExperimentPlan GetExperimentPlan get

*Workspace

acs:agentloop:{#regionId}:{#accountId}:agentspace/{#AgentSpaceName}

None None
agentloop:CreateDataset CreateDataset create

*Dataset

acs:agentloop:{#regionId}:{#accountId}:agentspace/{#AgentSpaceName}/dataset/{#DatasetName}

None None
agentloop:DeleteEvaluatorSkill DeleteEvaluatorSkill delete

*EvaluatorSkill

acs:agentloop:{#regionId}:{#accountId}:agentspace/{#AgentSpaceName}/evaluator/{#EvaluatorName}/skill/{#SkillName}

None None
agentloop:GetAgentSpace GetAgentSpace get

*AgentSpace

acs:agentloop:{#regionId}:{#accountId}:agentspace/{#AgentSpaceName}

None None
agentloop:GetPipelineStats GetPipelineStats none

*Pipeline

acs:agentloop:{#regionId}:{#accountId}:agentspace/{#AgentSpaceName}/pipeline/{#PipelineName}

None None
agentloop:GetEvaluationRun GetEvaluationRun get

*EvaluationTask

acs:agentloop:{#regionId}:{#accountId}:agentspace/{#AgentSpaceName}/evaluationtask/{#TaskId}

None None
agentloop:UpdatePipeline UpdatePipeline none

*Pipeline

acs:agentloop:{#regionId}:{#accountId}:agentspace/{#AgentSpaceName}/pipeline/{#PipelineName}

None None
agentloop:GetEvaluator GetEvaluator get

*Evaluator

acs:agentloop:{#regionId}:{#accountId}:agentspace/{#AgentSpaceName}/evaluator/{#EvaluatorName}

None None
agentloop:SearchContext SearchContext get

*ContextStore

acs:agentloop:{#regionId}:{#accountId}:agentspace/{#AgentSpaceName}/contextstore/{#ContextStoreName}

None None
agentloop:DeleteEvaluator DeleteEvaluator delete

*Evaluator

acs:agentloop:{#regionId}:{#accountId}:agentspace/{#AgentSpaceName}/evaluator/{#EvaluatorName}

None None
agentloop:ListDatasets ListDatasets list

*Dataset

acs:agentloop:{#regionId}:{#accountId}:agentspace/{#AgentSpaceName}/dataset/*

None None
agentloop:ListContextStores ListContextStores list

*ContextStore

acs:agentloop:{#regionId}:{#accountId}:agentspace/{#AgentSpaceName}/contextstore/*

None None
agentloop:CreateContextStore CreateContextStore create

*ContextStore

acs:agentloop:{#regionId}:{#accountId}:agentspace/{#AgentSpaceName}/contextstore/{#ContextStoreName}

None None
agentloop:UpdateOptimizeRun UpdateOptimizeRun update

*OptimizeTask

acs:agentloop:{#regionId}:{#accountId}:agentspace/{#AgentSpaceName}/optimizetask/{#OptimizeTaskName}

None None
agentloop:DeleteOptimizeTask DeleteOptimizeTask delete

*OptimizeTask

acs:agentloop:{#regionId}:{#accountId}:agentspace/{#AgentSpaceName}/optimizetask/{#OptimizeTaskName}

None None
agentloop:CreateDatasetVersion CreateDatasetVersion create

*Dataset

acs:agentloop:{#regionId}:{#accountId}:agentspace/{#AgentSpace}/dataset/{#DatasetName}

None None
agentloop:CreateOptimizeTask CreateOptimizeTask create

*OptimizeTask

acs:agentloop:{#regionId}:{#accountId}:agentspace/{#AgentSpaceName}/optimizetask/{#OptimizeTaskName}

None None
agentloop:CreateAgentSpace CreateAgentSpace create

*AgentSpace

acs:agentloop:{#regionId}:{#accountId}:agentspace/{#AgentSpaceName}

None None
agentloop:TerminatePipeline TerminatePipeline none

*Pipeline

acs:agentloop:{#regionId}:{#accountId}:agentspace/{#AgentSpaceName}/pipeline/{#PipelineName}

None None
agentloop:ListPipelineRuns ListPipelineRuns list

*Pipeline

acs:agentloop:{#regionId}:{#accountId}:agentspace/{#AgentSpaceName}/pipeline/{#PipelineName}

None None
agentloop:ListEvaluatorSkills ListEvaluatorSkills list

*EvaluatorSkill

acs:agentloop:{#regionId}:{#accountId}:agentspace/{#AgentSpaceName}/evaluator/{#EvaluatorName}/skill/*

None None
agentloop:ListAgentSpaces ListAgentSpaces list

*AgentSpace

acs:agentloop:{#regionId}:{#accountId}:agentspace/*

None None
agentloop:UpdateEvaluationRun UpdateEvaluationRun update

*EvaluationTask

acs:agentloop:{#regionId}:{#accountId}:agentspace/{#AgentSpaceName}/evaluationtask/{#TaskId}

None None
agentloop:PausePipeline PausePipeline none

*Pipeline

acs:agentloop:{#regionId}:{#accountId}:agentspace/{#AgentSpaceName}/pipeline/{#PipelineName}

None None
agentloop:AddDatasetData AddDatasetData none

*Dataset

acs:agentloop:{#regionId}:{#accountId}:agentspace/{#AgentSpace}/dataset/{#DatasetName}

None None
agentloop:GetEvaluationTask GetEvaluationTask get

*EvaluationTask

acs:agentloop:{#regionId}:{#accountId}:agentspace/{#AgentSpaceName}/evaluationtask/{#TaskId}

None None
agentloop:CreatePipeline CreatePipeline create

*Pipeline

acs:agentloop:{#regionId}:{#accountId}:agentspace/{#AgentSpaceName}/pipeline/{#PipelineName}

None None
agentloop:DeleteExperimentRun DeleteExperimentRun delete

*Workspace

acs:agentloop:{#regionId}:{#accountId}:agentspace/{#AgentSpaceName}

None None
agentloop:UpdateExperimentPlan UpdateExperimentPlan update

*Workspace

acs:agentloop:{#regionId}:{#accountId}:agentspace/{#AgentSpaceName}

None None
agentloop:DeleteContextStore DeleteContextStore delete

*ContextStore

acs:agentloop:{#regionId}:{#accountId}:agentspace/{#AgentSpaceName}/contextstore/{#ContextStoreName}

None None
agentloop:CreateExperimentRun CreateExperimentRun create

*Workspace

acs:agentloop:{#regionId}:{#accountId}:agentspace/{#AgentSpaceName}

None None
agentloop:UpdateDataset UpdateDataset update

*Dataset

acs:agentloop:{#regionId}:{#accountId}:agentspace/{#AgentSpaceName}/dataset/{#DatasetName}

None None
agentloop:CreateEvaluator CreateEvaluator create

*Workspace

acs:agentloop:{#regionId}:{#accountId}:agentspace/{#AgentSpaceName}

None None
agentloop:DeleteAgentSpace DeleteAgentSpace delete

*AgentSpace

acs:agentloop:{#regionId}:{#accountId}:agentspace/{#AgentSpaceName}

None None
agentloop:ListExperimentPlans ListExperimentPlans list

*Workspace

acs:agentloop:{#regionId}:{#accountId}:agentspace/{#AgentSpaceName}

None None
agentloop:CreateExperimentPlan CreateExperimentPlan create

*Workspace

acs:agentloop:{#regionId}:{#accountId}:agentspace/{#AgentSpaceName}

None None
agentloop:GetOptimizeTask GetOptimizeTask get

*OptimizeTask

acs:agentloop:{#regionId}:{#accountId}:agentspace/{#AgentSpaceName}/optimizetask/{#OptimizeTaskName}

None None
agentloop:DeleteDatasetVersion DeleteDatasetVersion delete

*Dataset

acs:agentloop:{#regionId}:{#accountId}:agentspace/{#AgentSpace}/dataset/{#DatasetName}

None None
agentloop:CancelPipelineRun CancelPipelineRun none

*Pipeline

acs:agentloop:{#regionId}:{#accountId}:agentspace/{#AgentSpaceName}/pipeline/{#PipelineName}

None None
agentloop:ListDatasetVersions ListDatasetVersions list

*Dataset

acs:agentloop:{#regionId}:{#accountId}:agentspace/{#AgentSpace}/dataset/{#DatasetName}

None None
agentloop:UpdateEvaluatorSkill UpdateEvaluatorSkill update

*EvaluatorSkill

acs:agentloop:{#regionId}:{#accountId}:agentspace/{#AgentSpaceName}/evaluator/{#EvaluatorName}/skill/{#SkillName}

None None
agentloop:UpdateExperimentRun UpdateExperimentRun update

*Workspace

acs:agentloop:{#regionId}:{#accountId}:agentspace/{#AgentSpaceName}

None None
agentloop:ListExperimentRuns ListExperimentRuns list

*Workspace

acs:agentloop:{#regionId}:{#accountId}:agentspace/{#AgentSpaceName}

None None
agentloop:UpdateAgentSpace UpdateAgentSpace update

*AgentSpace

acs:agentloop:{#regionId}:{#accountId}:agentspace/{#AgentSpaceName}

None None
agentloop:ListEvaluationTasks ListEvaluationTasks list

*EvaluationTask

acs:agentloop:{#regionId}:{#accountId}:agentspace/{#AgentSpaceName}/evaluationtask/*

None None
agentloop:GetPipelineRun GetPipelineRun none

*Pipeline

acs:agentloop:{#regionId}:{#accountId}:agentspace/{#AgentSpaceName}/pipeline/{#PipelineName}

None None
agentloop:RunPipeline RunPipeline none

*Pipeline

acs:agentloop:{#regionId}:{#accountId}:agentspace/{#AgentSpaceName}/pipeline/{#PipelineName}

None None
agentloop:GetEvaluatorSkill GetEvaluatorSkill get

*EvaluatorSkill

acs:agentloop:{#regionId}:{#accountId}:agentspace/{#AgentSpaceName}/evaluator/{#EvaluatorName}/skill/{#SkillName}

None None
agentloop:GetDataset GetDataset get

*Dataset

acs:agentloop:{#regionId}:{#accountId}:agentspace/{#AgentSpaceName}/dataset/{#DatasetName}

None None
agentloop:DeleteDataset DeleteDataset delete

*Dataset

acs:agentloop:{#regionId}:{#accountId}:agentspace/{#AgentSpaceName}/dataset/{#DatasetName}

None None
agentloop:GetOptimizeRun GetOptimizeRun none

*OptimizeTask

acs:agentloop:{#regionId}:{#accountId}:agentspace/{#AgentSpaceName}/optimizetask/{#OptimizeTaskName}

None None
agentloop:ListContextStoreAPIKeys ListContextStoreAPIKeys list

*ContextStoreAPIKey

acs:agentloop:{#regionId}:{#accountId}:agentspace/{#AgentSpaceName}/contextstore/{#ContextStoreName}

None None
agentloop:DeleteEvaluationTask DeleteEvaluationTask delete

*EvaluationTask

acs:agentloop:{#regionId}:{#accountId}:agentspace/{#AgentSpaceName}/evaluationtask/{#TaskId}

None None
agentloop:GetContextStore GetContextStore get

*ContextStore

acs:agentloop:{#regionId}:{#accountId}:agentspace/{#AgentSpaceName}/contextstore/{#ContextStoreName}

None None
agentloop:CreateEvaluatorSkill CreateEvaluatorSkill create

*Evaluator

acs:agentloop:{#regionId}:{#accountId}:agentspace/{#AgentSpaceName}/evaluator/{#EvaluatorName}

None None
agentloop:DeletePipeline DeletePipeline delete

*Pipeline

acs:agentloop:{#regionId}:{#accountId}:agentspace/{#AgentSpaceName}/pipeline/{#PipelineName}

None None
agentloop:CreateEvaluationTask CreateEvaluationTask create

*Workspace

acs:agentloop:{#regionId}:{#accountId}:agentspace/{#AgentSpaceName}

None None
agentloop:GetContextStoreAPIKey GetContextStoreAPIKey get

*ContextStoreAPIKey

acs:agentloop:{#regionId}:{#accountId}:agentspace/{#AgentSpaceName}/contextstore/{#ContextStoreName}

None None
agentloop:ListEvaluators ListEvaluators list

*Evaluator

acs:agentloop:{#regionId}:{#accountId}:agentspace/{#AgentSpaceName}/evaluator/*

None None
agentloop:CreateContextStoreAPIKey CreateContextStoreAPIKey create

*ContextStoreAPIKey

acs:agentloop:{#regionId}:{#accountId}:agentspace/{#AgentSpaceName}/contextstore/{#ContextStoreName}

None None
agentloop:UpdateContextStore UpdateContextStore update

*ContextStore

acs:agentloop:{#regionId}:{#accountId}:agentspace/{#AgentSpaceName}/contextstore/{#ContextStoreName}

None None
agentloop:DeleteEvaluationRun DeleteEvaluationRun delete

*EvaluationTask

acs:agentloop:{#regionId}:{#accountId}:agentspace/{#AgentSpaceName}/evaluationtask/{#TaskId}

None None
agentloop:ResumePipeline ResumePipeline none

*Pipeline

acs:agentloop:{#regionId}:{#accountId}:agentspace/{#AgentSpaceName}/pipeline/{#PipelineName}

None None
agentloop:ListEvaluationRuns ListEvaluationRuns list

*EvaluationTask

acs:agentloop:{#regionId}:{#accountId}:agentspace/{#AgentSpaceName}/evaluationtask/{#TaskId}

None None
agentloop:CreateOptimizeRun CreateOptimizeRun create

*OptimizeTask

acs:agentloop:{#regionId}:{#accountId}:agentspace/{#AgentSpaceName}/optimizetask/{#OptimizeTaskName}

None None
agentloop:DeleteExperimentPlan DeleteExperimentPlan delete

*Workspace

acs:agentloop:{#regionId}:{#accountId}:agentspace/{#AgentSpaceName}

None None

Resource

The following table lists the resources defined by AgentLoop. Specify them in the Resource element of RAM policy statements to grant permissions for specific operations. They are uniquely identified by ARNs. Format: acs:{#ramcode}:{#regionId}:{#accountId}:{#resourceType}:

  • acs: The initialism of Alibaba Cloud service, which indicates the public cloud of Alibaba Cloud.

  • {#ramcode}: The code used in RAM to indicate an Alibaba Cloud service.

  • {#regionId}: The . If the resource covers all regions, set it to an asterisk (*).

  • {#accountId}: The ID of the Alibaba Cloud account. If the resource covers all Alibaba Cloud accounts, set it to an asterisk (*).

  • {#resourceType}: The service-defined resource identifier. It supports a hierarchical structure, which is similar to a file path. If the statement covers global resources, set it to an asterisk (*).

Resource type

ARN

OptimizeTask
  • acs:agentloop:{#regionId}:{#accountId}:agentspace/{#AgentSpaceName}/optimizetask/*
  • acs:agentloop:{#regionId}:{#accountId}:agentspace/{#AgentSpaceName}/optimizetask/{#OptimizeTaskName}
Pipeline
  • acs:agentloop:{#regionId}:{#accountId}:agentspace/{#AgentSpaceName}/pipeline/*
  • acs:agentloop:{#regionId}:{#accountId}:agentspace/{#AgentSpaceName}/pipeline/{#PipelineName}
ContextStoreAPIKey
  • acs:agentloop:{#regionId}:{#accountId}:agentspace/{#AgentSpaceName}/contextstore/{#ContextStoreName}
Evaluator
  • acs:agentloop:{#regionId}:{#accountId}:agentspace/{#AgentSpaceName}/evaluator/{#EvaluatorName}
  • acs:agentloop:{#regionId}:{#accountId}:agentspace/{#AgentSpaceName}/evaluator/*
Workspace
  • acs:agentloop:{#regionId}:{#accountId}:agentspace/{#AgentSpaceName}
Dataset
  • acs:agentloop:{#regionId}:{#accountId}:agentspace/{#AgentSpaceName}/dataset/{#DatasetName}
  • acs:agentloop:{#regionId}:{#accountId}:agentspace/{#AgentSpaceName}/dataset/*
  • acs:agentloop:{#regionId}:{#accountId}:agentspace/{#AgentSpace}/dataset/{#DatasetName}
EvaluationTask
  • acs:agentloop:{#regionId}:{#accountId}:agentspace/{#AgentSpaceName}/evaluationtask/{#TaskId}
  • acs:agentloop:{#regionId}:{#accountId}:agentspace/{#AgentSpaceName}/evaluationtask/*
EvaluatorSkill
  • acs:agentloop:{#regionId}:{#accountId}:agentspace/{#AgentSpaceName}/evaluator/{#EvaluatorName}/skill/{#SkillName}
  • acs:agentloop:{#regionId}:{#accountId}:agentspace/{#AgentSpaceName}/evaluator/{#EvaluatorName}/skill/*
AgentSpace
  • acs:agentloop:{#regionId}:{#accountId}:agentspace/{#AgentSpaceName}
  • acs:agentloop:{#regionId}:{#accountId}:agentspace/*
ContextStore
  • acs:agentloop:{#regionId}:{#accountId}:agentspace/{#AgentSpaceName}/contextstore/{#ContextStoreName}
  • acs:agentloop:{#regionId}:{#accountId}:agentspace/{#AgentSpaceName}/contextstore/*

Condition

AgentLoop does not define product-level condition keys. However, you can use Alibaba Cloud common condition keys for access control. For more information, see Common condition keys.

How to create custom RAM policies?

You can create custom policies and grant them to RAM users, RAM user groups, or RAM roles. For instructions, see: