Todos los productos
Search
Centro de documentos

OpenSearch:Reglas de control de acceso

Última actualización: Sep 04, 2026

Las aplicaciones de OpenSearch que crea con su cuenta de Alibaba Cloud son recursos propiedad de dicha cuenta. De forma predeterminada, su cuenta tiene permisos completos para operar estos recursos. Use el servicio Resource Access Management (RAM) de Alibaba Cloud para otorgar a los usuarios de RAM permiso para acceder y gestionar sus recursos de OpenSearch.

Nota

Nota:

  • La nueva consola ofrece permisos de RAM más detallados que la consola anterior. Si usa usuarios de RAM en la nueva consola, debe crear nuevas directivas de autorización de RAM.

  • La función de usuario de RAM solo es compatible con las versiones V3 o posteriores de la API y el SDK.

  • Los productos de fuentes de datos de terceros deben usar el sistema de permisos de RAM. Otorgue los permisos correspondientes a los usuarios de RAM dentro del producto de terceros. No se admite la concesión de permisos del servicio ODPS a usuarios de RAM. Esto se debe a que, cuando una cuenta de Alibaba Cloud autoriza un proyecto para un usuario de RAM, este no puede enumerar todos los proyectos de la cuenta debido a limitaciones de la nube. Por lo tanto, el usuario de RAM no puede usar el proyecto como fuente de datos para OpenSearch. Se recomienda conectarse primero a ODPS con su cuenta de Alibaba Cloud y luego usar un usuario de RAM para operar las aplicaciones de OpenSearch.

  • Cuando use un usuario de RAM para configurar una fuente de datos de RDS en la consola, también debe otorgarle los permisos de fuente de datos obligatorios. De lo contrario, la conexión al servicio RDS fallará. Para obtener más información, consulte la sección de autorización de acceso a RDS.

  • Las acciones que comienzan con Search, como SearchApp y SearchSuggest, actualmente no admiten comprobaciones de condición basadas en IP para la autorización. El uso de condiciones de IP con estas acciones provocará errores.

Tiempo de efectividad

Los cambios en los permisos de un usuario de RAM surten efecto después de un retraso de 5 minutos.

Conjuntos mínimos de permisos comunes

Un usuario de RAM necesita un conjunto mínimo de permisos comunes para iniciar sesión en la consola de OpenSearch. Esto suele incluir permisos para buscar en una aplicación, consultar la lista de aplicaciones, consultar los detalles de la aplicación, acceder al monitoreo y alertas, y autorizar el acceso a RDS. A continuación se muestran ejemplos solo de referencia.

Permisos mínimos para buscar en una aplicación

Para probar la función de recuperación de documentos mediante el envío de solicitudes de búsqueda a una aplicación con un SDK, necesita permisos para buscar en esa aplicación. El siguiente ejemplo muestra una directiva para una prueba de búsqueda en una aplicación llamada app_schema_demo.

{
    "Statement": [
    {
            "Effect": "Allow",
            "Action": "opensearch:SearchApp",
            "Resource": "acs:opensearch:*:*:apps/app_schema_demo"
        }
    ],
    "Version": "1"
}

Permisos para consultar la lista de aplicaciones

Después de que un usuario de RAM inicia sesión, necesita permiso para consultar la lista de aplicaciones en la consola.

{
    "Statement": [
        {
            "Action": [
                "opensearch:ListAppGroup",
                "opensearch:DescribeAppStatistics",
                "opensearch:ListAppGroupErrors"
            ],
            "Effect": "Allow",
            "Resource": "acs:opensearch:*:*:app-groups/*"
        }
    ],
    "Version": "1"
}

Permisos para consultar los detalles de la aplicación

La función de monitoreo y alertas está integrada en la página de detalles de la aplicación. Por lo tanto, el usuario de RAM requiere permiso para consultar los detalles de la aplicación. El siguiente ejemplo muestra la directiva para consultar los detalles de una aplicación llamada app_schema_demo.

{
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "opensearch:DescribeAppGroup",
                "opensearch:ListApp",
                "opensearch:DescribeApp"
            ],
            "Resource": "acs:opensearch:*:*:app-groups/app_schema_demo"
        },
        {
            "Action": "opensearch:ListUserAnalyzers",
            "Effect": "Allow",
            "Resource": "acs:opensearch:*:*:user-analyzers/*"
        }
    ],
    "Version": "1"
}

Permisos para monitoreo y alertas

La función de monitoreo y alertas utiliza el servicio CloudMonitor de Alibaba Cloud. Busque AliyunCloudMonitorReadOnlyAccess en las plantillas de directivas de RAM para consultar la directiva de solo lectura para CloudMonitor.

{
    "Version": "1",
    "Statement": [
        {
            "Action": [
                "cms:Get*",
                "cms:List*",
                "cms:Query*",
                "cms:BatchQuery*"
            ],
            "Resource": "*",
            "Effect": "Allow"
        },
        {
            "Action": "opensearch:DescribeApp",
            "Resource": "acs:opensearch:*:*:app-groups/*",
            "Effect": "Allow"
        }
    ]
}

Autorización de acceso a RDS

El acceso a RDS implica dos operaciones de API: tablas y campos. Dado que acceder a RDS requiere agregar su dirección IP a una lista de permitidos, también debe otorgar al usuario de RAM permiso para configurar la lista de permitidos de IP. (Sin este permiso, la conexión a RDS fallará con un error que indica que no se pudo establecer la lista de permitidos de IP). Configure la autorización de RDS directamente en la consola de RAM. En la página de descripción general, cree una directiva o rol de autorización personalizado y luego otorgue permisos al usuario de RAM en la página de gestión de usuarios (RDS authorization reference). El conjunto mínimo de permisos para que OpenSearch use RDS es el siguiente:

  • Para obtener más información, consulte Meanings of variables in Resource (por ejemplo, $regionid, $accountid y $dbinstanceid).

  • También puede usar el carácter comodín * para los valores de parámetro en Resource.

    {
      "Version": "1",
      "Statement": [
          {
              "Action": "rds:DescribeDBInstanceAttribute",
              "Resource": "acs:rds:$regionid:$accountid:dbinstance/$dbinstanceid",
              "Effect": "Allow"
          },
          {
              "Action": "rds:ModifySecurityIps",
              "Resource": "acs:rds:$regionid:$accountid:dbinstance/$dbinstanceid",
              "Effect": "Allow"
          },
          {
              "Action": "rds:DescribeDBInstanceIPArrayList",
              "Resource": "acs:rds:$regionid:$accountid:dbinstance/$dbinstanceid",
              "Effect": "Allow"
          },
          {
              "Action": "rds:DescribeDBInstanceNetInfoForChannel",
              "Resource": "acs:rds:$regionid:$accountid:dbinstance/$dbinstanceid",
              "Effect": "Allow"
          }
      ]
    }

Permisos de acceso a la API

Para buscar, insertar datos o acceder a modelos de sugerencias mediante APIs, otorgue los siguientes permisos.

{
	"Statement": [
	 {
	  "Effect": "Allow",
	  "Action": [
	   "opensearch:PushDoc",
	   "opensearch:SearchApp"
	  ],
	  "Resource": [
	   "acs:opensearch:$regionId:*:apps/$appGroupName",
	   "acs:opensearch:$regionId:*:app-groups/$appGroupName"
	  ]
	 },
	 {
	  "Action": "opensearch:SearchSuggest",
	  "Effect": "Allow",
	  "Resource": "acs:opensearch:$regionId:*:suggestions/$suggestionIdentity"
	 }
	],
	"Version": "1"
   }

Referencia de autorización

Una vez que determine qué aplicaciones necesita operar un usuario de RAM, a menudo se requiere una combinación de varios permisos de action para iniciar sesión en la consola. Otorgue al usuario de RAM permisos Describe* y List*, o asigne una combinación específica de permisos según su caso de uso.

Referencia (1)

Esta directiva otorga a un usuario de RAM bajo la cuenta de Alibaba Cloud 1234 permiso completo para operar todas las aplicaciones en todas las regiones. Después de crear esta directiva en la consola de la cuenta de Alibaba Cloud, otórguela al usuario de RAM en la consola de RAM o mediante el SDK de RAM. 1. Cree una directiva.

{
  "Statement": [
    {
      "Action": "opensearch:*",
      "Effect": "Allow",
      "Resource": "acs:opensearch:*:1234:apps/*"
    }
  ],
  "Version": "1"
}
  1. Otorgue esta directiva al usuario de RAM especificado.

Referencia (2)

Esta directiva otorga a un usuario de RAM bajo la cuenta de Alibaba Cloud 1234 permiso completo para operar todas las aplicaciones en la región China (Hangzhou). Después de crear esta directiva en la consola de la cuenta de Alibaba Cloud, otórguela al usuario de RAM en la consola de RAM o mediante el SDK de RAM.

  1. Cree una directiva.

    {
      "Statement": [
        {
          "Action": "opensearch:*",
          "Effect": "Allow",
          "Resource": "acs:opensearch:cn-hangzhou:1234:apps/*"
        }
      ],
      "Version": "1"
    }
  2. Otorgue esta directiva al usuario de RAM especificado.

    Nota

    Nota:

    • En el formato de recurso, el uso del carácter comodín * coincide con todos los tipos de recursos.

    • Si especifica un nombre de aplicación en el formato de recurso, incluso si especifica opensearch:* en la Action de la directiva, esta solo incluirá acciones para el tipo de recurso de la aplicación especificada y no incluirá opensearch:ListApp ni opensearch:CreateApp.

    • Cada Action debe corresponder al formato de resource en la misma declaración. Por ejemplo, opensearch:ListApp y opensearch:CreateApp se aplican a todas las aplicaciones y deben usar * para el recurso. Tenga en cuenta que estas dos acciones requieren un formato de recurso diferente al de otras acciones.

    • Si su directiva de autorización otorga permisos solo a una aplicación específica, pero también necesita los permisos opensearch:ListApp y opensearch:CreateApp, debe crear otra directiva. Esta nueva directiva debe incluir estas dos acciones con el formato de resource establecido en *. Luego, asocie ambas directivas al usuario de RAM especificado.

    Solución de problemas de autenticación en la consola

Cuando un usuario de RAM accede a la consola, puede aparecer un mensaje de "error de autenticación de usuario de RAM". Si ocurre este error, primero haga clic en el enlace Error Details. Luego, en la sección PARAMS, busque el campo action. Su valor es la acción POP solicitada. Siga estos pasos:

  • Busque la acción POP solicitada, por ejemplo, ListAppGroups. Si la action tiene un sufijo DryRun, la acción correspondiente es el nombre sin el sufijo. Por ejemplo, CreateAppDryRun corresponde a la acción CreateApp.

  • Vaya a List of application authorization rules para encontrar la RAM Action y el Resource Pattern correspondientes para ListAppGroups. (Nota: La

    RAM Action puede no ser la misma que la POP Action).

  • Finalmente, cree una directiva de autorización que otorgue los permisos obligatorios al usuario de RAM.