All Products
Search
Document Center

AnalyticDB for PostgreSQL:RAM authorization

Last Updated:Jan 22, 2024
Resource Access Management (RAM) is a service provided by Alibaba Cloud to manage user identities and resource access permissions. You can use RAM to prevent RAM users from sharing the AccessKey pairs of your Alibaba Cloud account. You can also use RAM to grant minimum permissions to RAM users. RAM uses policies to define permissions.
This topic describes the elements, such as Action, Resource, and Condition, which are defined by GPDB. You can use the elements to create policies in RAM. The code (RamCode) in RAM that is used to indicate GPDB is gpdb. You can grant permissions on GPDB at the RESOURCE.

General structure of a policy

Policies can be stored as JSON files. The following code provides an example on the general structure of a policy:
{
  "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:
  • Effect: specifies the authorization effect. Valid values: Allow, Deny.
  • Action: specifies one or more API operations that are allowed or denied. For more information, see the Action section of this topic.
  • Resource: specifies one or more resources to which the policy applies. You can use an Alibaba Cloud Resource Name (ARN) to specify a resource. For more information, see the Resource section of this topic.
  • Condition: specifies one or more conditions that are required for the policy to take effect. This is an optional field. For more information, see the Condition section of this topic.
    • Condition_operator: specifies the conditional operators. Different types of conditions support different conditional operators. For more information, see Policy elements.
    • Condition_key: specifies the condition keys.
    • Condition_value: specifies the condition values.

Action

GPDB defines the values that you can use in the Action element of a policy statement. The following table describes the values.
  • Operation: the value that you can use in the Action element to specify the operation on a resource.
  • API operation: the API operation that you can call to perform the operation.
  • Access level: the access level of each operation. The levels are read, write, and list.
  • Resource type: the type of the resource on which you can authorize the RAM user or the RAM role to perform the operation. Take note of the following items:
    • The required resource types are displayed in bold characters.
    • If the permissions cannot be granted at the resource level, All Resources is used in the Resource type column of the operation.
  • Condition key: the condition keys that are defined by the Alibaba Cloud service. The Condition key column does not list the common condition keys that are defined by Alibaba Cloud. For more information about the common condition keys, see Generic Condition Keyword.
  • Associated operation: other operations that the RAM user or the RAM role must have permissions to perform to complete the operation. To complete the operation, the RAM user or the RAM role must have the permissions to perform the associated operations.
ActionsAPI operationAccess levelResource typeCondition keyAssociated operation
gpdb:AllocateInstancePublicConnectionAllocateInstancePublicConnectionWrite
DBInstance
acs:gpdb:*:{#accountId}:dbinstance/{#DBInstanceId}
NoneNone
gpdb:CheckServiceLinkedRoleCheckServiceLinkedRoleRead
NoneNone
gpdb:CreateAccountCreateAccountWrite
DBInstance
acs:gpdb:*:{#accountId}:dbinstance/{#DBInstanceId}
NoneNone
gpdb:CreateDBInstanceCreateDBInstanceWrite
DBInstance
acs:gpdb:{#regionId}:{#accountId}:dbinstance/*
gpdb:EncryptionType
None
gpdb:CreateDBInstancePlanCreateDBInstancePlanRead
DBInstance
acs:gpdb:*:{#accountId}:dbinstance/{#dbinstanceId}
NoneNone
gpdb:CreateNamespaceCreateNamespaceWrite
Namespace
acs:gpdb:{#regionId}:{#accountId}:namespace/{#DBInstanceId}
NoneNone
gpdb:CreateSampleDataCreateSampleDataRead
DBInstance
acs:gpdb:*:{#accountId}:dbinstance/{#DBInstanceId}
NoneNone
gpdb:CreateServiceLinkedRoleCreateServiceLinkedRoleWrite
NoneNone
gpdb:DeleteCollectionDeleteCollectionWrite
Collection
acs:gpdb:{#regionId}:{#accountId}:collection/{#DBInstanceId}
NoneNone
gpdb:DeleteCollectionDataDeleteCollectionDataWrite
Collection
acs:gpdb:{#regionId}:{#accountId}:collection/{#DBInstanceId}
NoneNone
gpdb:DeleteDBInstanceDeleteDBInstanceWrite
DBInstance
acs:gpdb:*:{#accountId}:dbinstance/{#DBInstanceId}
NoneNone
gpdb:DeleteDBInstancePlanDeleteDBInstancePlanRead
DBInstance
acs:gpdb:*:{#accountId}:dbinstance/{#DBInstanceId}
NoneNone
gpdb:DeleteNamespaceDeleteNamespaceWrite
Namespace
acs:gpdb:{#regionId}:{#accountId}:namespace/{#DBInstanceId}
NoneNone
gpdb:DeleteVectorIndexDeleteVectorIndexWrite
Collection
acs:gpdb:{#regionId}:{#accountId}:collection/{#DBInstanceId}
NoneNone
gpdb:DescribeAccountsDescribeAccountsRead
DBInstance
acs:gpdb:*:{#accountId}:dbinstance/{#DBInstanceId}
NoneNone
gpdb:DescribeAvailableResourcesDescribeAvailableResourcesRead
NoneNone
gpdb:DescribeBackupPolicyDescribeBackupPolicyRead
DBInstance
acs:gpdb:*:{#accountId}:dbinstance/{#DBInstanceId}
NoneNone
gpdb:DescribeCollectionDescribeCollectionWrite
Collection
acs:gpdb:{#regionId}:{#accountId}:collection/{#DBInstanceId}
NoneNone
gpdb:DescribeDBClusterNodeDescribeDBClusterNodeRead
DBInstance
acs:gpdb:*:{#accountId}:dbinstance/{#DBInstanceId}
NoneNone
gpdb:DescribeDBClusterPerformanceDescribeDBClusterPerformanceRead
DBInstance
acs:gpdb:*:{#accountId}:dbinstance/{#DBInstanceId}
NoneNone
gpdb:DescribeDBInstanceAttributeDescribeDBInstanceAttributeRead
DBInstance
acs:gpdb:*:{#accountId}:dbinstance/{#DBInstanceId}
NoneNone
gpdb:DescribeDBInstanceDataBloatDescribeDBInstanceDataBloatRead
DBInstance
acs:gpdb:*:{#accountId}:dbinstance/{#DBInstanceId}
NoneNone
gpdb:DescribeDBInstanceDataSkewDescribeDBInstanceDataSkewRead
DBInstance
acs:gpdb:*:{#accountId}:dbinstance/{#DBInstanceId}
NoneNone
gpdb:DescribeDBInstanceDiagnosisSummaryDescribeDBInstanceDiagnosisSummaryRead
DBInstance
acs:gpdb:*:{#accountId}:dbinstance/{#DBInstanceId}
NoneNone
gpdb:DescribeDBInstanceErrorLogDescribeDBInstanceErrorLogRead
ElasticDBInstance
acs:gpdb:{#regionId}:{#accountId}:elasticdbinstance/{#DBInstanceId}
NoneNone
gpdb:DescribeDBInstanceIPArrayListDescribeDBInstanceIPArrayListRead
DBInstance
acs:gpdb:*:{#accountId}:dbinstance/{#DBInstanceId}
NoneNone
gpdb:DescribeDBInstanceIndexUsageDescribeDBInstanceIndexUsageRead
DBInstance
acs:gpdb:*:{#accountId}:dbinstance/{#DBInstanceId}
NoneNone
gpdb:DescribeDBInstanceNetInfoDescribeDBInstanceNetInfoRead
DBInstance
acs:gpdb:*:{#accountId}:dbinstance/{#DBInstanceId}
NoneNone
gpdb:DescribeDBInstancePerformanceDescribeDBInstancePerformanceRead
DBInstance
acs:gpdb:*:{#accountId}:dbinstance/{#DBInstanceId}
NoneNone
gpdb:DescribeDBInstancePlansDescribeDBInstancePlansRead
DBInstance
acs:gpdb:*:{#accountId}:dbinstance/{#dbinstanceId}
NoneNone
gpdb:DescribeDBInstanceSSLDescribeDBInstanceSSLRead
DBInstance
acs:gpdb:*:{#accountId}:dbinstance/{#DBInstanceId}
NoneNone
gpdb:DescribeDBInstancesDescribeDBInstancesRead
DBInstance
acs:gpdb:{#regionId}:{#accountId}:dbinstance/*
ElasticDBInstance
acs:gpdb:{#regionId}:{#accountId}:elasticdbinstance/*
NoneNone
gpdb:DescribeDBVersionInfosDescribeDBVersionInfosRead
dbInstance
acs:gpdb:{#regionId}:{#accountId}:dbInstance/*
NoneNone
gpdb:DescribeDataBackupsDescribeDataBackupsRead
DBInstance
acs:gpdb:*:{#accountId}:dbinstance/{#DBInstanceId}
NoneNone
gpdb:DescribeDataReDistributeInfoDescribeDataReDistributeInfoRead
DBInstance
acs:gpdb:*:{#accountId}:dbinstance/{#dbinstanceId}
NoneNone
gpdb:DescribeDataShareInstancesDescribeDataShareInstancesRead
DataShare
acs:gpdb:{#regionId}:{#accountId}:datashare/*
NoneNone
gpdb:DescribeDataSharePerformanceDescribeDataSharePerformanceRead
DataShare
acs:gpdb:{#regionId}:{#accountId}:datashare/{#RegionId}
NoneNone
gpdb:DescribeDiagnosisDimensionsDescribeDiagnosisDimensionsRead
DBInstance
acs:gpdb:*:{#accountId}:dbinstance/{#DBInstanceId}
NoneNone
gpdb:DescribeDiagnosisMonitorPerformanceDescribeDiagnosisMonitorPerformanceRead
DBInstance
acs:gpdb:*:{#accountId}:dbinstance/{#DBInstanceId}
NoneNone
gpdb:DescribeDiagnosisRecordsDescribeDiagnosisRecordsRead
DBInstance
acs:gpdb:*:{#accountId}:dbinstance/{#DBInstanceId}
NoneNone
gpdb:DescribeDiagnosisSQLInfoDescribeDiagnosisSQLInfoRead
DBInstance
acs:gpdb:*:{#accountId}:dbinstance/{#DBInstanceId}
NoneNone
gpdb:DescribeDownloadRecordsDescribeDownloadRecordsRead
DBInstance
acs:gpdb:*:{#accountId}:dbinstance/{#DBInstanceId}
NoneNone
gpdb:DescribeDownloadSQLLogsDescribeDownloadSQLLogsRead
DBInstance
acs:gpdb:*:{#accountId}:dbinstance/{#dbinstanceId}
NoneNone
gpdb:DescribeHealthStatusDescribeHealthStatusRead
DBInstance
acs:gpdb:*:{#accountId}:dbinstance/{#DBInstanceId}
NoneNone
gpdb:DescribeLogBackupsDescribeLogBackupsRead
DBInstance
acs:gpdb:*:{#accountId}:dbinstance/{#DBInstanceId}
NoneNone
gpdb:DescribeModifyParameterLogDescribeModifyParameterLogRead
DBInstance
acs:gpdb:*:{#accountId}:dbinstance/{#DBInstanceId}
NoneNone
gpdb:DescribeNamespaceDescribeNamespaceWrite
Namespace
acs:gpdb:{#regionId}:{#accountId}:namespace/{#DBInstanceId}
NoneNone
gpdb:DescribeParametersDescribeParametersRead
DBInstance
acs:gpdb:*:{#accountId}:dbinstance/{#DBInstanceId}
NoneNone
gpdb:DescribeRdsVSwitchsDescribeRdsVSwitchsRead
NoneNone
gpdb:DescribeRdsVpcsDescribeRdsVpcsRead
NoneNone
gpdb:DescribeSQLLogCountDescribeSQLLogCountRead
DBInstance
acs:gpdb:*:{#accountId}:dbinstance/{#DBInstanceId}
NoneNone
gpdb:DescribeSQLLogsDescribeSQLLogsRead
DBInstance
acs:gpdb:*:{#accountId}:dbinstance/{#DBInstanceId}
NoneNone
gpdb:DescribeSQLLogsV2DescribeSQLLogsV2Read
DBInstance
acs:gpdb:{#regionId}:{#accountId}:dbinstance/{#DBInstanceId}
NoneNone
gpdb:DescribeSampleDataDescribeSampleDataRead
DBInstance
acs:gpdb:*:{#accountId}:dbinstance/{#DBInstanceId}
NoneNone
gpdb:DescribeSupportFeaturesDescribeSupportFeaturesRead
DBInstance
acs:gpdb:*:{#accountId}:dbinstance/{#DBInstanceId}
NoneNone
gpdb:DescribeTagsDescribeTagsRead
DBInstance
acs:gpdb:{#regionId}:{#accountId}:dbinstance/*
NoneNone
gpdb:DescribeUserEncryptionKeyListDescribeUserEncryptionKeyListRead
NoneNone
gpdb:DescribeWaitingSQLInfoDescribeWaitingSQLInfoRead
DBInstance
acs:gpdb:*:{#accountId}:dbinstance/{#DBInstanceId}
NoneNone
gpdb:DescribeWaitingSQLRecordsDescribeWaitingSQLRecordsRead
DBInstance
acs:gpdb:*:{#accountId}:dbinstance/{#DBInstanceId}
NoneNone
gpdb:DownloadDiagnosisRecordsDownloadDiagnosisRecordsWrite
DBInstance
acs:gpdb:*:{#accountId}:dbinstance/{#DBInstanceId}
NoneNone
gpdb:DownloadSQLLogsRecordsDownloadSQLLogsRecordsRead
DBInstance
acs:gpdb:*:{#accountId}:dbinstance/{#dbinstanceId}
NoneNone
gpdb:GrantCollectionGrantCollectionWrite
Collection
acs:gpdb:{#regionId}:{#accountId}:collection/{#DBInstanceId}
NoneNone
gpdb:InitVectorDatabaseInitVectorDatabaseWrite
DBInstance
acs:gpdb:{#regionId}:{#accountId}:dbinstance/{#DBInstanceId}
NoneNone
gpdb:ListCollectionsListCollectionsWrite
Collection
acs:gpdb:{#regionId}:{#accountId}:collection/{#DBInstanceId}
NoneNone
gpdb:ListNamespacesListNamespacesWrite
Namespace
acs:gpdb:{#regionId}:{#accountId}:namespace/{#DBInstanceId}
NoneNone
gpdb:ListTagResourcesListTagResourcesRead
DBInstance
acs:gpdb:{#regionId}:{#accountId}:dbinstance/{#DBInstanceId}
NoneNone
gpdb:ModifyAccountDescriptionModifyAccountDescriptionWrite
Account
acs:gpdb:*:{#accountId}:account/{#DbInstanceId}/{#AccountName}
NoneNone
gpdb:ModifyBackupPolicyModifyBackupPolicyWrite
DBInstance
acs:gpdb:*:{#accountId}:dbinstance/{#DBInstanceId}
NoneNone
gpdb:ModifyDBInstanceConfigModifyDBInstanceConfigRead
DBInstance
acs:gpdb:*:{#accountId}:dbinstance/{#dbinstanceId}
NoneNone
gpdb:ModifyDBInstanceConnectionStringModifyDBInstanceConnectionStringWrite
ElasticInstance
acs:gpdb:{#regionId}:{#accountId}:elasticinstance/{#DbInstanceId}
NoneNone
gpdb:ModifyDBInstanceDescriptionModifyDBInstanceDescriptionWrite
DBInstance
acs:gpdb:*:{#accountId}:dbinstance/{#DBInstanceId}
NoneNone
gpdb:ModifyDBInstanceMaintainTimeModifyDBInstanceMaintainTimeWrite
DBInstance
acs:gpdb:*:{#accountId}:dbinstance/{#DBInstanceId}
NoneNone
gpdb:ModifyDBInstanceResourceGroupModifyDBInstanceResourceGroupWrite
DBInstance
acs:gpdb:*:{#accountId}:dbinstance/{#DBInstanceId}
NoneNone
gpdb:ModifyDBInstanceSSLModifyDBInstanceSSLWrite
DBInstance
acs:gpdb:*:{#accountId}:dbinstance/{#DBInstanceId}
gpdb:SSLEnabled
None
gpdb:ModifyParametersModifyParametersWrite
DBInstance
acs:gpdb:*:{#accountId}:dbinstance/{#DBInstanceId}
NoneNone
gpdb:ModifySQLCollectorPolicyModifySQLCollectorPolicyWrite
DBInstance
acs:gpdb:*:{#accountId}:dbinstance/{#DBInstanceId}
NoneNone
gpdb:ModifySecurityIpsModifySecurityIpsWrite
DBInstance
acs:gpdb:*:{#accountId}:dbinstance/{#DBInstanceId}
NoneNone
gpdb:ModifyVectorConfigurationModifyVectorConfigurationRead
DBInstance
acs:gpdb:*:{#accountId}:dbinstance/{#dbinstanceId}
NoneNone
gpdb:PauseInstancePauseInstanceRead
DBInstance
acs:gpdb:*:{#accountId}:dbinstance/{#DBInstanceId}
NoneNone
gpdb:RebalanceDBInstanceRebalanceDBInstanceRead
DBInstance
acs:gpdb:*:{#accountId}:dbinstance/{#dbinstanceId}
NoneNone
gpdb:ReleaseInstancePublicConnectionReleaseInstancePublicConnectionWrite
DBInstance
acs:gpdb:*:{#accountId}:dbinstance/{#DBInstanceId}
NoneNone
gpdb:ResetAccountPasswordResetAccountPasswordWrite
DBInstance
acs:gpdb:*:{#accountId}:dbinstance/{#DBInstanceId}
NoneNone
gpdb:RestartDBInstanceRestartDBInstanceWrite
DBInstance
acs:gpdb:*:{#accountId}:dbinstance/{#DBInstanceId}
NoneNone
gpdb:ResumeInstanceResumeInstanceWrite
DBInstance
acs:gpdb:*:{#accountId}:dbinstance/{#DBInstanceId}
NoneNone
gpdb:SetDBInstancePlanStatusSetDBInstancePlanStatusRead
DBInstance
acs:gpdb:*:{#accountId}:dbinstance/{#dbinstanceId}
NoneNone
gpdb:SetDataShareInstanceSetDataShareInstanceWrite
DBInstance
acs:gpdb:{#regionId}:{#accountId}:dbinstance/{#DBInstanceId}
NoneNone
gpdb:SwitchDBInstanceNetTypeSwitchDBInstanceNetTypeWrite
ElasticInstance
acs:gpdb:{#regionId}:{#accountId}:elasticinstance/{#DbInstanceId}
NoneNone
gpdb:TagResourcesTagResourcesWrite
DBInstance
acs:gpdb:{#regionId}:{#accountId}:dbinstance/{#DBInstanceId}
NoneNone
gpdb:UnTagResourcesUntagResourcesWrite
DBInstance
acs:gpdb:{#regionId}:{#accountId}:dbinstance/{#DBInstanceId}
NoneNone
gpdb:UnloadSampleDataUnloadSampleDataRead
DBInstance
acs:gpdb:*:{#accountId}:dbinstance/{#DBInstanceId}
NoneNone
gpdb:UpdateDBInstancePlanUpdateDBInstancePlanRead
DBInstance
acs:gpdb:*:{#accountId}:dbinstance/{#dbinstanceId}
NoneNone
gpdb:UpgradeDBInstanceUpgradeDBInstanceWrite
DBInstance
acs:gpdb:{#regionId}:{#accountId}:dbinstance/{#DBInstanceId}
NoneNone
gpdb:UpgradeDBVersionUpgradeDBVersionWrite
DBInstance
acs:gpdb:{#regionId}:{#accountId}:dbinstance/{#DBInstanceId}
NoneNone
gpdb:UpsertCollectionDataUpsertCollectionDataWrite
Collection
acs:gpdb:{#regionId}:{#accountId}:collection/{#DBInstanceId}
NoneNone

Resource

GPDB defines the values that you can use in the Resource. You can attach the policy to a RAM user or a RAM role so that the RAM user or the RAM role can perform a specific operation on a specific resource. The ARN is the unique identifier of the resource on Alibaba Cloud. Take note of the following items:
  • {#}indicates a variable. {#} must be replaced with an actual value. For example, {#ramcode} must be replaced with the actual code of an Alibaba Cloud service in RAM.
  • An asterisk (*) is used as a wildcard. Examples:
    • {#resourceType} is set to *, all resources are specified.
    • {#regionId} is set to *, all regions are specified.
    • {#accountId} is set to *, all Alibaba Cloud accounts are specified.
Resource typeARN
DBInstanceacs:gpdb:{#regionId}:{#accountId}:dbinstance/{#DBInstanceId}
DataShareacs:{#ramcode}:{#regionId}:{#accountId}:datashare/{#RegionId}
Collectionacs:gpdb:{#regionId}:{#accountId}:instance/{#DBInstanceId}/collection/{#Collection}
Namespaceacs:gpdb:{#regionId}:{#accountId}:instance/{#DBInstanceId}/namespace/{#Namespace}
ElasticDBInstanceacs:gpdb:{#regionId}:{#accountId}:elasticdbinstance/{#DBInstanceId}
Accountacs:{#ramcode}:{#regionId}:{#accountId}:account/{#DBInstanceId}/{#AccountName}

Condition

GPDB defines the values that you can use in the Condition element of a policy statement. The following table describes the values. The following table describes the service-specific condition keys. The common condition keys that are defined by Alibaba Cloud also apply to GPDB. For more information about the common condition keys, see Generic Condition Keyword.
The data type determines the conditional operators that you can use to compare the value in a request with the value in a policy statement. You must use conditional operators that are supported by the data type. Otherwise, you cannot compare the value in the request with the value in the policy statement. In this case, the authorization is invalid. For more information about the conditional operators that are supported by each data type, see Policy elements.
Condition keyDescriptionData type
gpdb:SSLEnabledSSL encryption status.String
gpdb:EncryptionTypeType of encryption. Off: Encryption is not enabled. CloudDisk: enable disk encryption and specify the key as the EncryptionKey parameter.String

What to do next

You can create a custom policy and attach the policy to a RAM user, RAM user group, or RAM role. For more information, see the following topics: