Elasticsearch utilise des rôles liés au service (SLR) pour accéder à d'autres services Alibaba Cloud lorsque vous accédez à Kibana ou aux clusters via un VPC par le biais de PrivateLink, que vous gérez les expéditeurs Beats, que vous travaillez avec des snapshots manuels ou que vous utilisez la mise à l'échelle élastique pour les clusters ES. Elasticsearch crée automatiquement ces rôles s'ils n'existent pas. Cette rubrique présente les SLR pour Elasticsearch et ES Serverless, ainsi que la procédure pour les supprimer.
, ou utilisez la mise à l'échelle élastique pour les clusters ES
et ES Serverless
Scénarios
Elasticsearch utilise les rôles liés au service suivants :
AliyunServiceRoleForElasticsearch : requis pour accéder à Kibana ou à un nœud d'un cluster Elasticsearch déployé dans l'architecture de contrôle cloud-native via votre VPC.
AliyunServiceRoleForElasticsearchCollector : requis pour créer et gérer les expéditeurs Beats.
AliyunServiceRoleForElasticsearchOSS : requis pour créer ou restaurer des snapshots manuels. Accorde à Elasticsearch l'accès aux buckets OSS.
La rubrique Rôles liés au service explique le fonctionnement des SLR.
Détails des rôles
AliyunServiceRoleForElasticsearch
Lorsque vous accédez à Kibana ou à un nœud d'un cluster Elasticsearch déployé dans l'architecture de contrôle cloud-native via votre VPC, Elasticsearch crée automatiquement ce SLR s'il n'existe pas. Elasticsearch assume ensuite le rôle pour appeler les API PrivateLink et ECS, et créer des endpoints et des configurations réseau pour l'accès VPC.
Nom du rôle : AliyunServiceRoleForElasticsearch
Nom de la politique : AliyunServiceRolePolicyForElasticsearch
Document de politique (la politique suivante s'applique aux régions Chine (Pékin), Chine (Shanghai), Chine (Hangzhou), Chine (Shenzhen), Chine (Zhangjiakou) et Chine (Qingdao) ; les autres régions conservent la politique d'origine) :
{
"Version": "1",
"Statement": [
{
"Action": [
"ecs:AssignIpv6Addresses",
"ecs:AssignPrivateIpAddresses",
"ecs:AttachNetworkInterface",
"ecs:AuthorizeSecurityGroup",
"ecs:AuthorizeSecurityGroupEgress",
"ecs:CreateNetworkInterface",
"ecs:CreateNetworkInterfacePermission",
"ecs:CreateSecurityGroup",
"ecs:DeleteNetworkInterface",
"ecs:DeleteSecurityGroup",
"ecs:DescribeInstanceAttribute",
"ecs:DescribeInstances",
"ecs:DescribeNetworkInterfaceAttribute",
"ecs:DescribeNetworkInterfaces",
"ecs:DescribeSecurityGroupAttribute",
"ecs:DescribeSecurityGroupReferences",
"ecs:DescribeSecurityGroups",
"ecs:DetachNetworkInterface",
"ecs:JoinSecurityGroup",
"ecs:LeaveSecurityGroup",
"ecs:ModifyNetworkInterfaceAttribute",
"ecs:ModifySecurityGroupAttribute",
"ecs:ModifySecurityGroupEgressRule",
"ecs:ModifySecurityGroupPolicy",
"ecs:ModifySecurityGroupRule",
"ecs:RevokeSecurityGroup",
"ecs:RevokeSecurityGroupEgress",
"ecs:UnassignIpv6Addresses",
"ecs:UnassignPrivateIpAddresses"
],
"Resource": [
"*"
],
"Effect": "Allow"
},
{
"Action": [
"elasticsearch:ListInstance",
"elasticsearch:DescribeInstance",
"elasticsearch:RunEsDiagnosticCommand"
],
"Resource": [
"*"
],
"Effect": "Allow"
},
{
"Action": [
"pvtz:AddZone",
"pvtz:AddZoneRecord",
"pvtz:DeleteZone",
"pvtz:DeleteZoneRecord",
"pvtz:DescribeZoneRecords",
"pvtz:UpdateZoneRecord"
],
"Resource": [
"*"
],
"Effect": "Allow"
},
{
"Action": [
"vpc:DescribeVSwitches"
],
"Resource": [
"*"
],
"Effect": "Allow"
},
{
"Action": [
"privatelink:CreateVpcEndpoint",
"privatelink:ListVpcEndpoints",
"privatelink:UpdateVpcEndpointAttribute",
"privatelink:GetVpcEndpointAttribute",
"privatelink:ListVpcEndpointSecurityGroups",
"privatelink:AttachSecurityGroupToVpcEndpoint",
"privatelink:DetachSecurityGroupFromVpcEndpoint",
"privatelink:AddZoneToVpcEndpoint",
"privatelink:RemoveZoneFromVpcEndpoint",
"privatelink:ListVpcEndpointZones",
"privatelink:OpenPrivateLinkService",
"privatelink:CheckProductOpen",
"privatelink:DeleteVpcEndpoint"
],
"Resource": "*",
"Effect": "Allow"
},
{
"Action": [
"cms:DescribeAlertLogCount",
"cms:DescribeAlertLogList",
"cms:DescribeAlertLogHistogram",
"cms:DescribeSubscriptionList",
"cms:DescribeContactListByContactGroup",
"cms:DescribeContactGroupList",
"cms:DescribeContactList",
"cms:PutContact",
"cms:PutContactGroup",
"cms:DescribeSystemEventHistogram",
"cms:DescribeSystemEventMetaList",
"cms:DescribeSystemEventAttribute",
"cms:DescribeSystemEventCount",
"cms:DescribeMetricList",
"cms:DescribeMetricLast",
"cms:DescribeMetricMetaList",
"cms:DescribeConsoleViews",
"cms:QueryMetricLast",
"cms:QueryMetricList",
"cms:DescribeMetricListFromProxy",
"cms:DescribeMetricLastFromProxy"
],
"Resource": "*",
"Effect": "Allow"
},
{
"Action": "ram:CreateServiceLinkedRole",
"Resource": "*",
"Effect": "Allow",
"Condition": {
"StringEquals": {
"ram:ServiceName": "privatelink.aliyuncs.com"
}
}
},
{
"Action": "ram:DeleteServiceLinkedRole",
"Resource": "*",
"Effect": "Allow",
"Condition": {
"StringEquals": {
"ram:ServiceName": "elasticsearch.aliyuncs.com"
}
}
}
]
}
Par rapport à la politique des autres régions, la politique des régions précédentes ajoute les fonctionnalités suivantes :
Interrogation et diagnostic des instances ES : ajoute les permissions elasticsearch (ListInstance, DescribeInstance et RunEsDiagnosticCommand) pour interroger et diagnostiquer les instances ES.
Activation du service PrivateLink : ajoute les permissions privatelink (OpenPrivateLinkService et CheckProductOpen) pour activer PrivateLink et vérifier l'état d'activation du produit.
CloudMonitor : ajoute les permissions cms (21 actions au total) pour l'interrogation des journaux d'alertes, la gestion des contacts et des groupes de contacts, l'interrogation des événements système et l'interrogation des données de métriques.
La politique suivante s'applique aux autres régions :
{
"Version": "1",
"Statement": [
{
"Action": [
"ecs:AssignIpv6Addresses",
"ecs:AssignPrivateIpAddresses",
"ecs:AttachNetworkInterface",
"ecs:AuthorizeSecurityGroup",
"ecs:AuthorizeSecurityGroupEgress",
"ecs:CreateNetworkInterface",
"ecs:CreateNetworkInterfacePermission",
"ecs:CreateSecurityGroup",
"ecs:DeleteNetworkInterface",
"ecs:DeleteSecurityGroup",
"ecs:DescribeInstanceAttribute",
"ecs:DescribeInstances",
"ecs:DescribeNetworkInterfaceAttribute",
"ecs:DescribeNetworkInterfaces",
"ecs:DescribeSecurityGroupAttribute",
"ecs:DescribeSecurityGroupReferences",
"ecs:DescribeSecurityGroups",
"ecs:DetachNetworkInterface",
"ecs:JoinSecurityGroup",
"ecs:LeaveSecurityGroup",
"ecs:ModifyNetworkInterfaceAttribute",
"ecs:ModifySecurityGroupAttribute",
"ecs:ModifySecurityGroupEgressRule",
"ecs:ModifySecurityGroupPolicy",
"ecs:ModifySecurityGroupRule",
"ecs:RevokeSecurityGroup",
"ecs:RevokeSecurityGroupEgress",
"ecs:UnassignIpv6Addresses",
"ecs:UnassignPrivateIpAddresses"
],
"Resource": [
"*"
],
"Effect": "Allow"
},
{
"Action": [
"pvtz:AddZone",
"pvtz:AddZoneRecord",
"pvtz:DeleteZone",
"pvtz:DeleteZoneRecord",
"pvtz:DescribeZoneRecords",
"pvtz:UpdateZoneRecord"
],
"Resource": [
"*"
],
"Effect": "Allow"
},
{
"Action": [
"vpc:DescribeVSwitches"
],
"Resource": [
"*"
],
"Effect": "Allow"
},
{
"Action": [
"privatelink:CreateVpcEndpoint",
"privatelink:ListVpcEndpoints",
"privatelink:UpdateVpcEndpointAttribute",
"privatelink:GetVpcEndpointAttribute",
"privatelink:ListVpcEndpointSecurityGroups",
"privatelink:AttachSecurityGroupToVpcEndpoint",
"privatelink:DetachSecurityGroupFromVpcEndpoint",
"privatelink:AddZoneToVpcEndpoint",
"privatelink:RemoveZoneFromVpcEndpoint",
"privatelink:ListVpcEndpointZones",
"privatelink:DeleteVpcEndpoint"
],
"Resource": "*",
"Effect": "Allow"
},
{
"Action": "ram:CreateServiceLinkedRole",
"Resource": "*",
"Effect": "Allow",
"Condition": {
"StringEquals": {
"ram:ServiceName": "privatelink.aliyuncs.com"
}
}
},
{
"Action": "ram:DeleteServiceLinkedRole",
"Resource": "*",
"Effect": "Allow",
"Condition": {
"StringEquals": {
"ram:ServiceName": "elasticsearch.aliyuncs.com"
}
}
}
]
}
Nom du service : elasticsearch.aliyuncs.com
Permission requise pour créer le rôle : ram:CreateServiceLinkedRole
AliyunServiceRoleForElasticsearchCollector
Lorsque vous créez ou gérez un expéditeur Beats, Elasticsearch crée automatiquement ce SLR s'il n'existe pas. Elasticsearch assume ensuite le rôle pour permettre la collecte de données Beats à partir des instances ECS ou des clusters ACK.
Nom du rôle : AliyunServiceRoleForElasticsearchCollector
Nom de la politique : AliyunServiceRolePolicyForElasticsearchCollector
-
Document de politique :
{ "Version": "1", "Statement": [ { "Action": [ "oos:CancelExecution", "oos:DeleteExecutions", "oos:GenerateExecutionPolicy", "oos:GetExecutionTemplate", "oos:ListExecutionLogs", "oos:ListExecutions", "oos:ListTaskExecutions", "oos:NotifyExecution", "oos:StartExecution", "oos:ListTagResources", "oos:TagResources", "oos:UntagResources", "oos:CreateTemplate", "oos:DeleteTemplate", "oos:GetTemplate", "oos:ListExecutionRiskyTasks", "oos:ListTemplates", "oos:UpdateTemplate" ], "Resource": "*", "Effect": "Allow" }, { "Action": [ "ecs:DescribeInstances", "ecs:DescribeCloudAssistantStatus" ], "Resource": "*", "Effect": "Allow" }, { "Action": [ "cs:GetUserConfig", "cs:GetClusters", "cs:GetClusterById" ], "Resource": "*", "Effect": "Allow" }, { "Action": "ram:DeleteServiceLinkedRole", "Resource": "*", "Effect": "Allow", "Condition": { "StringEquals": { "ram:ServiceName": "collector.elasticsearch.aliyuncs.com" } } }, { "Effect": "Allow", "Action": "ram:PassRole", "Resource": "acs:ram:*:*:role/aliyunoosaccessingecs4esrole", "Condition": { "StringEquals": { "acs:Service": "oos.aliyuncs.com" } } } ] } Nom du service : collector.elasticsearch.aliyuncs.com
Permission requise pour créer le rôle : ram:CreateServiceLinkedRole
AliyunServiceRoleForElasticsearchOSS
Lorsque vous créez ou restaurez un snapshot manuel, Elasticsearch crée automatiquement ce SLR s'il n'existe pas. Elasticsearch assume ensuite le rôle pour accéder à votre bucket OSS.
Nom du rôle : AliyunServiceRoleForElasticsearchOSS
Nom de la politique : AliyunServiceRolePolicyForElasticsearchOSS
Document de politique :
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": [
"oss:ListObjects",
"oss:GetObject",
"oss:GetObjectVersion",
"oss:GetObjectVersionTagging",
"oss:GetObjectMeta",
"oss:DeleteObject",
"oss:PutObject",
"oss:GetBucketVersioning",
"oss:GetBucketInfo",
"oss:GetBucketAcl"
],
"Resource": [
"acs:oss:*:*:es-alicloud-*/*",
"acs:oss:*:*:es-alicloud-*",
"acs:oss:*:*:*/*es-alicloud*/*"
]
},
{
"Effect": "Allow",
"Action": [
"oss:ListObjects",
"oss:GetObject",
"oss:GetObjectMeta",
"oss:GetObjectVersion",
"oss:GetObjectVersionTagging",
"oss:DeleteObject",
"oss:PutObject",
"oss:GetBucketVersioning",
"oss:GetBucketInfo",
"oss:GetBucketAcl"
],
"Resource": "*",
"Condition": {
"StringEquals": {
"oss:BucketTag/es-alicloud": [
"es-alicloud"
]
}
}
},
{
"Action": "ram:DeleteServiceLinkedRole",
"Resource": "*",
"Effect": "Allow",
"Condition": {
"StringEquals": {
"ram:ServiceName": "oss.elasticsearch.aliyuncs.com"
}
}
}
]
}
Nom du service : oss.elasticsearch.aliyuncs.com
Permission requise pour créer le rôle : ram:CreateServiceLinkedRole
Supprimer un rôle lié au service
Avant de supprimer un SLR, supprimez toutes les tâches ou tous les dispositifs qui dépendent du rôle. Supprimer un SLR.
FAQ
Q : Pourquoi ne puis-je pas utiliser mon utilisateur RAM pour créer un rôle lié au service Elasticsearch ?
R : Seuls les comptes Alibaba Cloud et les utilisateurs RAM disposant de la permission CreateServiceLinkedRole peuvent créer ou supprimer des SLR. Joignez la politique suivante à votre utilisateur RAM (Accorder des autorisations aux utilisateurs RAM) :
{
"Version": "1",
"Statement": [
{
"Action": "elasticsearch:InitializeOperationRole",
"Resource": "acs:ram:*:133071096032****:role/*",
"Effect": "Allow"
},
{
"Action": "ram:CreateServiceLinkedRole",
"Resource": "acs:ram:*:133071096032****:role/*",
"Effect": "Allow",
"Condition": {
"StringEquals": {
"ram:ServiceName": [
"XXX.aliyuncs.com"
]
}
}
}
]
}
-
Remplacez
133071096032****dans l'élément Resource par votre ID de compte Alibaba Cloud.Pour trouver votre ID de compte, placez le pointeur sur votre photo de profil dans le coin supérieur droit de la console et consultez votre Account ID.
-
Remplacez
XXX.aliyuncs.comdans ram:ServiceName par le nom du service du SLR cible :AliyunServiceRoleForElasticsearch : elasticsearch.aliyuncs.com
AliyunServiceRoleForElasticsearchCollector : collector.elasticsearch.aliyuncs.com
AliyunServiceRoleForElasticsearchOSS : oss.elasticsearch.aliyuncs.com