サービスにリンクされたロールを使用して、VPC ドメインとダイレクトクエリデータソースを作成する
Amazon OpenSearch Service は、AWS Identity and Access Management (IAM) サービスにリンクされたロールを使用します。サービスにリンクされたロールは、OpenSearch Service に直接リンクされた一意のタイプの (IAM) ロールです。サービスにリンクされたロールは、OpenSearch Service によって事前定義されており、ユーザーの代わりにサービスから他の AWS サービスを呼び出すために必要なアクセス許可をすべて含んでいます。
OpenSearch Service は AWSServiceRoleForAmazonOpenSearchService と呼ばれるサービスにリンクされたロールを使用します。このロールは、ドメインまたはダイレクトクエリデータソースの VPC アクセスを有効にするために、ロールで必要な最小限の Amazon EC2 および Elastic Load Balancing のアクセス許可を提供します。
従来の Elasticsearch ロール
Amazon OpenSearch Service は、AWSServiceRoleForAmazonOpenSearchService と呼ばれるサービスにリンクされたロールを使用します。アカウントには、AWSServiceRoleForAmazonElasticsearchService と呼ばれるサービスにリンクされたロールも含まれることがあります。これは、非推奨の Elasticsearch API エンドポイントと連携します。
従来の Elasticsearch ロールがアカウントに存在しない場合、OpenSearch ドメインを初めて作成するときに、OpenSearch サービスによって新しい OpenSearch サービスにリンクされたロールが自動的に作成されます。そうでない場合、アカウントでは Elasticsearch ロールが引き続き使用されます。この自動作成を成功させるためには、iam:CreateServiceLinkedRole アクションへのアクセス許可が必要です。
アクセス許可
AWSServiceRoleForAmazonOpenSearchService サービスリンクロールは、以下のサービスを信頼してロールを引き受けます。
-
opensearchservice.amazonaws.com
AmazonOpenSearchServiceRolePolicy という名前のロール許可ポリシーは、OpenSearch Service が次のアクションを指定されたリソースで完了することを許可します。
-
アクション:
*でのacm:DescribeCertificate -
アクション:
cloudwatch:PutMetricData上で* -
アクション:
ec2:CreateNetworkInterface上で* -
アクション:
ec2:DeleteNetworkInterface上で* -
アクション:
ec2:DescribeNetworkInterfaces上で* -
アクション:
ec2:ModifyNetworkInterfaceAttribute上で* -
アクション:
ec2:DescribeSecurityGroups上で* -
アクション:
ec2:DescribeSubnets上で* -
アクション:
ec2:DescribeVpcs上で* -
アクション: すべてのネットワークインターフェースと VPC エンドポイントで
ec2:CreateTags -
アクション:
*でのec2:DescribeTags -
アクション: すべての VPC、セキュリティグループ、サブネット、およびルートテーブル、ならびにリクエストにタグ
OpenSearchManaged=trueが含まれる場合、すべての VPC エンドポイントでec2:CreateVpcEndpoint -
アクション: すべての VPC、セキュリティグループ、サブネット、およびルートテーブル、ならびにリクエストにタグ
OpenSearchManaged=trueが含まれる場合、すべての VPC エンドポイントでec2:ModifyVpcEndpoint -
アクション: リクエストにタグ
OpenSearchManaged=trueが含まれる場合、すべてのエンドポイントでec2:DeleteVpcEndpoints -
アクション:
*でのec2:AssignIpv6Addresses -
アクション:
ec2:UnAssignIpv6Addresses上で* -
アクション:
elasticloadbalancing:AddListenerCertificates上で* -
アクション:
elasticloadbalancing:RemoveListenerCertificates上で*
サービスにリンクされたロールの作成、編集、削除を IAM エンティティ (ユーザー、グループ、ロールなど) に許可するには、権限を設定する必要があります。詳細についてはIAM ユーザーガイド の「サービスにリンクされた役割のアクセス許可」を参照してください。
サービスリンクロールの作成
サービスリンクロールを手動で作成する必要はありません。AWS マネジメントコンソール を使用して VPC 対応のドメインまたはダイレクトクエリデータソースを作成すると、OpenSearch Service によってサービスにリンクされたロールが作成されます。この自動作成を成功させるためには、iam:CreateServiceLinkedRole アクションへのアクセス許可が必要です。
サービスにリンクされたロールは、IAM コンソール、IAM CLI、または IAM API を使用して手動で作成することもできます。詳細については、「IAM ユーザーガイド」の「サービスリンクロールの作成」を参照してください。
サービスにリンクされたロールを編集する
OpenSearch Service では、AWSServiceRoleForAmazonOpenSearchService サービスにリンクされたロールを編集できません。サービスリンクロールを作成すると、多くのエンティティによってロールが参照される可能性があるため、ロール名を変更することはできません。ただし、IAM を使用したロール記述の編集はできます。詳細については、「IAM ユーザーガイド」の「サービスリンクロールの編集」を参照してください。
サービスにリンクされたロールの削除
サービスリンクロールを必要とする機能やサービスが不要になった場合は、ロールを削除することをお勧めします。そうすることで、モニタリングや保守が積極的に行われていない未使用のエンティティを排除できます。ただし、手動で削除する前に、サービスリンクロールをクリーンアップする必要があります。
サービスにリンクされたロールのクリーンアップ
IAM を使用してサービスにリンクされたロールを削除するには、まずそのロールにアクティブなセッションがないことを確認し、そのロールで使用されているリソースをすべて削除する必要があります。
サービスにリンクされたロールにアクティブなセッションがあるかどうかを、IAM コンソールで確認するには
AWS マネジメントコンソール にサインインして、IAM コンソール (https://console.aws.amazon.com/iam/
) を開きます。 -
IAM コンソールのナビゲーションペインで [ロール] を選択します。次に、
AWSServiceRoleForAmazonOpenSearchServiceロールの名前 (チェックボックスではありません) を選択します。 -
選択したロールの [概要] ページで、[アクセスアドバイザー] タブを選択します。
-
[アクセスアドバイザー] タブで、サービスにリンクされたロールの最新のアクティビティを確認します。
注記
OpenSearch Service で
AWSServiceRoleForAmazonOpenSearchServiceロールが使用されているかどうかが不明な場合は、このロールの削除を試みることができます。サービスでロールが使用されている場合、削除は失敗し、ロールが使用されているリソースを表示できます。ロールが使用されている場合は、ロールを削除する前、またはロールを使用しているリソースを削除する前にセッションが終了するのを待つ必要があります。サービスにリンクされたロールのセッションを取り消すことはできません。
サービスにリンクされたロールの手動削除
サービスにリンクされたロールを IAM コンソール、API、または AWS CLI から削除します。手順については、IAM ユーザーガイド の「サービスにリンクされたロールの削除」を参照してください。