All Products
Search
Document Center

DataWorks:Service-linked roles of Data Integration

Last Updated:Mar 27, 2026

Data Integration uses two service-linked roles (SLRs) to connect to data sources and call their APIs.

How the two roles work together

When you add a data source (such as an Object Storage Service (OSS) data source) and select a custom RAM role for Data Integration to assume, the following happens:

  1. Data Integration uses AliyunServiceRoleForDataWorksDI to look up and retrieve the custom RAM role you specified.

  2. Data Integration uses AliyunDIDefaultRole to call the data source's APIs — for example, to query instance details or update IP whitelists during data synchronization.

AliyunServiceRoleForDataWorksDI is an identity-resolution role: it lets Data Integration find the custom RAM role you want it to assume. AliyunDIDefaultRole is an access role: it carries the actual permissions Data Integration uses to reach each data source.

AliyunServiceRoleForDataWorksDI

This role lets Data Integration retrieve the list of available custom RAM roles, so you can select one when configuring a data source.

Field Value
Role name AliyunServiceRoleForDataWorksDI
Policy name AliyunServiceRolePolicyForDataWorksDI
Permissions granted ram:ListRoles, ram:GetRole

Policy document:

{
    "Version": "1",
    "Statement": [
        {
            "Action": [
                "ram:ListRoles",
                "ram:GetRole"
            ],
            "Resource": "*",
            "Effect": "Allow"
        }
    ]
}

AliyunDIDefaultRole

This role lets Data Integration access the resources of other Alibaba Cloud services during data source configuration, node configuration, and data synchronization.

Field Value
Role name AliyunDIDefaultRole
Policy name AliyunDIRolePolicy
Services covered ApsaraDB RDS, ApsaraDB for Redis, ApsaraDB for MongoDB, PolarDB-X, HybridDB for MySQL, AnalyticDB for PostgreSQL, PolarDB, Data Management (DMS), Data Lake Formation (DLF)

The role has read and write access across these services — primarily to describe instance attributes and modify IP whitelists and security groups, enabling Data Integration to connect to your data sources.

Policy document:

{
  "Version": "1",
  "Statement": [
    {
      "Action": [
        "rds:DescribeDBInstanceAttribute",
        "rds:DescribeDBInstanceNetInfo",
        "rds:DescribeDBInstances",
        "rds:DescribeRegions",
        "rds:DescribeDatabases",
        "rds:DescribeSecurityGroupConfiguration",
        "rds:DescribeDBInstanceIPArrayList",
        "rds:ModifySecurityGroupConfiguration",
        "rds:ModifySecurityIps"
      ],
      "Resource": "*",
      "Effect": "Allow"
    },
    {
      "Action": [
        "kvstore:DescribeInstances",
        "kvstore:DescribeInstanceAttribute",
        "kvstore:DescribeRegions",
        "kvstore:ModifySecurityIps"
      ],
      "Resource": "*",
      "Effect": "Allow"
    },
    {
      "Action": [
        "dds:DescribeDBInstanceAttribute",
        "dds:DescribeSecurityIps",
        "dds:DescribeRegions",
        "dds:DescribeDBInstances",
        "dds:DescribeReplicaSetRole",
        "dds:ModifySecurityIps"
      ],
      "Resource": "*",
      "Effect": "Allow"
    },
    {
      "Action": [
        "drds:DescribeDrdsInstanceList",
        "drds:DescribeDrdsInstance",
        "drds:DescribeDrdsDbList",
        "drds:DescribeDrdsDb",
        "drds:DescribeLogicTableList",
        "drds:DescribeRegions",
        "drds:ModifyDrdsIpWhiteList"
      ],
      "Resource": "*",
      "Effect": "Allow"
    },
    {
      "Action": [
        "petadata:DescribeInstanceInfo",
        "petadata:DescribeInstances",
        "petadata:DescribeDatabases",
        "petadata:DescribeTables",
        "petadata:DescribeTableInfo",
        "petadata:DescribeInstancePerformance",
        "petadata:DescribeDatabasePerformance",
        "petadata:DescribeInstanceResourceUsage",
        "petadata:DescribeDatabaseResourceUsage",
        "petadata:DescribeRegions",
        "petadata:DescribeSecurityIPs",
        "petadata:ModifySecurityIPs"
      ],
      "Resource": "*",
      "Effect": "Allow"
    },
    {
      "Action": [
        "gpdb:DescribeDBInstanceAttribute",
        "gpdb:DescribeDBInstances",
        "gpdb:DescribeResourceUsage",
        "gpdb:DescribeDBInstanceIPArrayList",
        "gpdb:DescribeDBClusterIPArrayList",
        "gpdb:DescribeDBInstancePerformance",
        "gpdb:DescribeDBInstanceNetInfo",
        "gpdb:DescribeRegions",
        "gpdb:ModifySecurityIps"
      ],
      "Resource": "*",
      "Effect": "Allow"
    },
    {
      "Action": [
        "polardb:DescribeClusterInfo",
        "polardb:DescribeDBClusterParameters",
        "polardb:DescribeDBClusterEndpoints",
        "polardb:ModifyDBClusterAccessWhitelist",
        "polardb:DescribeDBClusterAccessWhitelist",
        "polardb:DescribeRegions"
      ],
      "Resource": "*",
      "Effect": "Allow"
    },
    {
      "Action": [
        "dms:ListUsers",
        "dms:ListDatabases",
        "dms:ListLogicTables",
        "dms:GetLogicDatabase",
        "dms:SearchDatabase",
        "dms:GetMetaTableDetailInfo",
        "dms:SearchTable",
        "dms:ExecuteScript",
        "dms:ListTables",
        "dms:GetDatabase",
        "dms:ListInstances",
        "dms:GetTableDBTopology"
      ],
      "Resource": "*",
      "Effect": "Allow"
    },
    {
      "Action": [
        "dlf:GetServiceStatus",
        "dlf:ListDatabases",
        "dlf:CreateDatabase",
        "dlf:CreateTable",
        "dlf:BatchCreateTables",
        "dlf:CreatePartition",
        "dlf:ListTableNames",
        "dlf:GetTable",
        "dlf:UpdateDatabase",
        "dlf:UpdateTable",
        "dlf:DescribeRegions"
      ],
      "Resource": "*",
      "Effect": "Allow"
    }
  ]
}

Delete a service-linked role

You can delete either role at any time, but doing so will affect Data Integration's ability to work with data sources.

Role Impact of deletion
AliyunServiceRoleForDataWorksDI Data Integration can no longer retrieve custom RAM roles. The RAM role selector is unavailable when adding a data source.
AliyunDIDefaultRole Data Integration may fail to query service information during data source configuration, node configuration, or data synchronization. This can result in connectivity test errors, node configuration errors, or data synchronization errors.

For deletion steps, see Delete an SLR.

Grant a RAM user permission to create service-linked roles

Attach the appropriate policy to the RAM user before they configure Data Integration.

AliyunServiceRoleForDataWorksDI

Attach either DataWorksFullAccess or the following custom policy:

{
    "Version": "1",
    "Statement": [
        {
            "Action": "dataworks:*",
            "Resource": "*",
            "Effect": "Allow"
        },
        {
            "Action": "ram:CreateServiceLinkedRole",
            "Resource": "*",
            "Effect": "Allow",
            "Condition": {
                "StringEquals": {
                    "ram:ServiceName": "di.dataworks.aliyuncs.com"
                }
            }
        }
    ]
}

The Condition clause restricts the permission to the Data Integration service only (di.dataworks.aliyuncs.com), preventing the RAM user from creating service-linked roles for other services.

AliyunDIDefaultRole

Attach the following policy:

{
    "Version": "1",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ram:CreateRole",
                "ram:AttachPolicyToRole"
            ],
            "Resource": "*"
        }
    ]
}