PrivateLink エンドポイントを使用して仮想プライベートクラウド (VPC) 経由で Kibana または Elasticsearch クラスターにアクセスする場合、Beats シッパーを作成および管理する場合、手動スナップショットを作成する場合、または手動スナップショットからデータを復元する場合、Elasticsearch は他の Alibaba Cloud サービスのリソースにアクセスするために関連するサービスリンクロールを引き受ける必要があります。 サービスリンクロールが存在しない場合、Elasticsearch は上記の操作を実行するときに自動的にロールを作成します。 このトピックでは、Elasticsearchサービスリンクロールと、サービスリンクロールを削除する方法について説明します。
シナリオ
このセクションでは、Elasticsearch サービスリンクロールのユースケースについて説明します。
AliyunServiceRoleForElasticsearch: このロールは、VPC 経由でクラウドネイティブ制御アーキテクチャにデプロイされた Elasticsearch クラスターの Kibana またはノードにアクセスするときに必要です。
AliyunServiceRoleForElasticsearchCollector: このロールは、Beats シッパーを作成および管理するときに必要です。
AliyunServiceRoleForElasticsearchOSS: このロールは、手動スナップショットを作成する場合、または手動スナップショットからデータを復元する場合に必要です。 このロールにより、Elasticsearch はオブジェクトストレージサービス (OSS) バケットにアクセスできます。
サービスリンクロールの詳細については、「サービスリンクロール」をご参照ください。
説明
AliyunServiceRoleForElasticsearch
VPC 経由でクラウドネイティブ制御アーキテクチャにデプロイされた Elasticsearch クラスターの Kibana またはノードにアクセスするときに、必要な権限を持つロールが存在しない場合、Elasticsearch は自動的にサービスリンクロールを作成し、必要な権限をロールに付与します。 次に、Elasticsearch はロールを引き受けて、PrivateLink または Elastic Compute Service (ECS) のネットワーク設定関連の API オペレーションを呼び出し、エンドポイントなどのリソースを作成し、設定を完了します。 これにより、VPC 経由で Kibana またはノードにアクセスできます。 次の説明は、ロールに関する詳細情報を提供します。
ロール名: AliyunServiceRoleForElasticsearch
ポリシー名: AliyunServiceRolePolicyForElasticsearch
ポリシードキュメント:
{
"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"
}
}
}
]
}
サービス名: elasticsearch.aliyuncs.com
ロールを作成するために必要な権限: ram:CreateServiceLinkedRole
AliyunServiceRoleForElasticsearchCollector
Beats シッパーを作成および管理するときに、必要な権限を持つロールが存在しない場合、Elasticsearch は自動的にサービスリンクロールを作成し、必要な権限をロールに付与します。 次に、Elasticsearch はロールを引き受けて関連する API オペレーションを呼び出し、Beats シッパーが ECS インスタンスまたは Container Service for Kubernetes (ACK) クラスターからデータを収集できるようにします。 次の説明は、ロールに関する詳細情報を提供します。
ロール名: AliyunServiceRoleForElasticsearchCollector
ポリシー名: AliyunServiceRolePolicyForElasticsearchCollector
ポリシードキュメント:
{ "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" } } } ] }
サービス名: collector.elasticsearch.aliyuncs.com
ロールを作成するために必要な権限: ram:CreateServiceLinkedRole
AliyunServiceRoleForElasticsearchOSS
手動スナップショットを作成する場合、または手動スナップショットからデータを復元する場合に、必要な権限を持つロールが存在しない場合、Elasticsearch は自動的にサービスリンクロールを作成し、必要な権限をロールに付与します。 次に、Elasticsearch はロールを引き受けて関連する API オペレーションを呼び出し、OSS バケットにアクセスします。 次の説明は、ロールに関する詳細情報を提供します。
ロール名: AliyunServiceRoleForElasticsearchOSS
ポリシー名: AliyunServiceRolePolicyForElasticsearchOSS
ポリシードキュメント:
{
"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"
}
}
}
]
}
サービス名: oss.elasticsearch.aliyuncs.com
ロールを作成するために必要な権限: ram:CreateServiceLinkedRole
サービスリンクロールの削除
サービスリンクロールを削除する前に、ロールに依存するすべてのタスクまたはデバイスを削除する必要があります。 サービスリンクロールの削除方法の詳細については、「サービスリンクロールの削除」をご参照ください。
FAQ
Q: RAM ユーザーを使用して Elasticsearch サービスリンクロールを作成できないのはなぜですか?
A: CreateServiceLinkedRole
権限を持つ Alibaba Cloud アカウントと RAM ユーザーのみが、サービスリンクロールを作成または削除するために使用できます。 したがって、RAM ユーザーを使用してサービスリンクロールを自動的に作成できない場合は、次のポリシーを RAM ユーザーにアタッチする必要があります。 詳細については、「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"
]
}
}
}
]
}
Resource 要素で指定された ID
133071096032****
を Alibaba Cloud アカウントの ID に置き換える必要があります。Alibaba Cloud アカウントの ID を取得するには、次の操作を実行します。Alibaba Cloud 管理コンソールにログインし、右上隅のプロフィール画像にポインターを移動します。 次に、[alibaba Cloud アカウント ID] を表示できます。
ram:ServiceName に指定された
XXX.aliyuncs.com
を、作成するサービスリンクロールのサービス名に置き換える必要があります。サービスリンクロール AliyunServiceRoleForElasticsearch のサービス名: elasticsearch.aliyuncs.com
サービスリンクロール AliyunServiceRoleForElasticsearchCollector のサービス名: collector.elasticsearch.aliyuncs.com
サービスリンクロール AliyunServiceRoleForElasticsearchOSS のサービス名: oss.elasticsearch.aliyuncs.com