サービスリンクロールは、Resource Access Management (RAM) ロールの一種です。Alibaba Cloud サービスがこのロールを使用して、特定の機能のために他の Alibaba Cloud サービスにアクセスします。特定の操作を実行すると、システムはサービスリンクロールを自動的に作成します。自動作成に失敗した場合や、ApsaraMQ for RocketMQ でサポートされていない場合は、サービスリンクロールを手動で作成できます。
背景情報
Resource Access Management (RAM) は、各サービスリンクロールにシステムポリシーを提供します。このポリシーは変更できません。対応するサービスリンクロールの製品ページで、システムポリシーの詳細を表示できます。詳細については、「システムポリシーリファレンス」をご参照ください。
サポートされているサービスリンクロール
ApsaraMQ for RocketMQ は、以下のサービスリンクロールを提供します。関連機能の初回使用時に、システムが必要なロールを自動的に作成します。
たとえば、ApsaraMQ for RocketMQ のダッシュボードを初めて使用すると、システムは AliyunServiceRoleForOns サービスリンクロールを自動的に作成します。
ロール名 | ロールアクセスポリシー | 権限 |
AliyunServiceRoleForOns | AliyunServiceRolePolicyForOns | ApsaraMQ for RocketMQ は、この RAM ロールを引き受けて、以下の権限を取得します。
|
AliyunServiceRoleForRMQMigration | AliyunServiceRolePolicyForRMQMigration | ApsaraMQ for RocketMQ は、この RAM ロールを引き受けて、仮想プライベートクラウド (VPC) にアクセスします。これは、セルフマネージド RocketMQ クラスターをクラウドへ移行するために必要です。 |
AliyunServiceRoleForRMQDisasterRecovery | AliyunServiceRolePolicyForRMQDisasterRecovery | ApsaraMQ for RocketMQ は、この RAM ロールを引き受けて、EventBridge にアクセスします。これは、グローバルメッセージレプリケーション機能を使用するために必要です。 |
AliyunServiceRoleForRMQ | AliyunServiceRolePolicyForRMQ | これは、ApsaraMQ for RocketMQ 5.x インスタンスのデフォルトポリシーです。ApsaraMQ for RocketMQ 5.x インスタンスを作成すると、システムは AliyunServiceRoleForRMQ サービスリンクロールを自動的に作成します。 |
Serverless インスタンス作成時のロールエラーのトラブルシューティング
Terraform または OpenAPI を使用して ApsaraMQ for RocketMQ 5.x Serverless インスタンスを作成する際に、EntityNotExist.Role エラーや、Container Service for Kubernetes (ACK) クラスターを作成する前にサービスロールの権限付与が必要であるというメッセージが表示される場合があります。この問題を解決するには、次の手順を実行します。
Resource Access Management (RAM) コンソール にログインし、[ロール] ページで
AliyunServiceRoleForRMQを検索します。ロールが存在しない場合は、Alibaba Cloud アカウントを使用して次のコマンドを実行し、ロールを作成します。
aliyun ram CreateServiceLinkedRole --ServiceName rmq.aliyuncs.com --force --region cn-hangzhouまたは、ApsaraMQ for RocketMQ コンソールのホームページに移動して、ロールの自動作成をトリガーします。
ロールが作成されたら、インスタンスの作成操作を再試行してください。
エラーメッセージ内のリンクは、廃止された ACK のアクティベーションページ (https://www.aliyun.com/product/ack/serverless は HTTP 404 を返します) を指しています。ACK ロールは作成しないでください。ApsaraMQ for RocketMQ Serverless インスタンスには ACK ロールではなく、AliyunServiceRoleForRMQ サービスリンクロールが必要です。
ポリシーの内容
AliyunServiceRoleForOns
以下は、AliyunServiceRoleForOns サービスリンクロールに付与されるアクセスポリシーである AliyunServiceRolePolicyForOns のポリシードキュメントです。
{ "Version": "1", "Statement": [ { "Action": [ "cms:DescribeMetricRuleList", "cms:DescribeMetricList", "cms:DescribeMetricData" ], "Resource": "*", "Effect": "Allow" }, { "Action": [ "arms:OpenVCluster", "arms:ListDashboards", "arms:CheckServiceStatus" ], "Resource": "*", "Effect": "Allow" }, { "Action": "ram:DeleteServiceLinkedRole", "Resource": "*", "Effect": "Allow", "Condition": { "StringEquals": { "ram:ServiceName": "ons.aliyuncs.com" } } } ] }AliyunServiceRoleForRMQMigration
以下は、AliyunServiceRoleForRMQMigration サービスリンクロールに付与されるアクセスポリシーである AliyunServiceRolePolicyForRMQMigration のポリシードキュメントです。
{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": [ "privatelink:CreateVpcEndpoint", "privatelink:ListVpcEndpoints", "privatelink:GetVpcEndpointAttribute", "privatelink:AddZoneToVpcEndpoint", "privatelink:ListVpcEndpointZones", "privatelink:RemoveZoneFromVpcEndpoint", "privatelink:DeleteVpcEndpoint", "privatelink:AttachSecurityGroupToVpcEndpoint", "privatelink:ListVpcEndpointSecurityGroups", "privatelink:DetachSecurityGroupFromVpcEndpoint" ], "Resource": "*" }, { "Action": "ram:DeleteServiceLinkedRole", "Resource": "*", "Effect": "Allow", "Condition": { "StringEquals": { "ram:ServiceName": "migration.rmq.aliyuncs.com" } } }, { "Action": "ram:CreateServiceLinkedRole", "Resource": "*", "Effect": "Allow", "Condition": { "StringEquals": { "ram:ServiceName": "privatelink.aliyuncs.com" } } } ] }AliyunServiceRoleForRMQDisasterRecovery
以下は、AliyunServiceRoleForRMQDisasterRecovery サービスリンクロールに付与されるアクセスポリシーである AliyunServiceRolePolicyForRMQDisasterRecovery のポリシードキュメントです。
{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": [ "eventbridge:ListEventStreamings", "eventbridge:DeleteEventStreaming", "eventbridge:CreateEventStreaming", "eventbridge:StartEventStreaming", "eventbridge:UpdateEventStreaming", "eventbridge:PauseEventStreaming", "eventbridge:GetEventStreaming", "Ecs:DescribeSecurityGroups" ], "Resource": "*" }, { "Action": "ram:DeleteServiceLinkedRole", "Resource": "*", "Effect": "Allow", "Condition": { "StringEquals": { "ram:ServiceName": "disaster-recovery.rmq.aliyuncs.com" } } } ] }AliyunServiceRoleForRMQ
以下は、AliyunServiceRoleForRMQ サービスリンクロールに付与されるアクセスポリシーである AliyunServiceRolePolicyForRMQ のポリシードキュメントです。
{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": [ "privatelink:CreateVpcEndpoint", "privatelink:ListVpcEndpoints", "privatelink:GetVpcEndpointAttribute", "privatelink:AddZoneToVpcEndpoint", "privatelink:ListVpcEndpointZones", "privatelink:RemoveZoneFromVpcEndpoint", "privatelink:DeleteVpcEndpoint", "privatelink:AttachSecurityGroupToVpcEndpoint", "privatelink:ListVpcEndpointSecurityGroups", "privatelink:DetachSecurityGroupFromVpcEndpoint", "privatelink:UpdateVpcEndpointZoneConnectionResourceAttribute", "Ecs:CreateSecurityGroup", "Ecs:DeleteSecurityGroup", "Ecs:DescribeSecurityGroupAttribute", "Ecs:DescribeSecurityGroups", "kms:DescribeRegions", "kms:GetKmsInstance", "kms:ListKeys", "kms:ListAliases", "kms:ListResourceTags", "kms:DescribeKey", "kms:TagResource", "kms:UntagResource" ], "Resource": "*" }, { "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": "*", "Effect": "Allow", "Condition": { "StringEqualsIgnoreCase": { "kms:tag/acs:rocketmq:instance-encryption": "true" } } }, { "Action": "ram:DeleteServiceLinkedRole", "Resource": "*", "Effect": "Allow", "Condition": { "StringEquals": { "ram:ServiceName": "rmq.aliyuncs.com" } } }, { "Action": "ram:CreateServiceLinkedRole", "Resource": "*", "Effect": "Allow", "Condition": { "StringEquals": { "ram:ServiceName": "privatelink.aliyuncs.com" } } } ] }
サービスリンクロールの表示
サービスリンクロールが作成された後、RAM コンソールの [ロール] ページで、ロールに関する以下の情報を表示できます。
基本情報
ロールの製品ページの [基本情報] セクションで、ロール名、作成時間、ARN、説明など、ロールの詳細を表示できます。
アクセスポリシー
ロールの製品ページの [権限管理] タブで、ポリシー名をクリックしてポリシードキュメントを表示します。
説明サービスリンクロールのポリシードキュメントは、ロール自体からのみ表示できます。ポリシーは、RAM コンソールの [ポリシー] ページには表示されません。
信頼ポリシー
ロールの製品ページの [信頼ポリシー] タブで、信頼ポリシードキュメントを表示できます。信頼ポリシーは、RAM ロールの信頼されたエンティティを定義します。信頼されたエンティティとは、RAM ロールを引き受けることができるエンティティです。サービスリンクロールの信頼されたエンティティは Alibaba Cloud サービスです。信頼ポリシーの
Serviceフィールドでサービスを表示できます。
サービスリンクロールの表示方法の詳細については、「RAM ロールの表示」をご参照ください。
サービスリンクロールの削除
サービスリンクロールを削除すると、そのロールに依存する機能が動作しなくなります。ロールの削除は慎重に行ってください。
ApsaraMQ for RocketMQ を使用しなくなった場合、または Alibaba Cloud アカウントを登録解除する必要がある場合は、Resource Access Management (RAM) コンソールでサービスリンクロールを手動で削除できます。詳細については、「RAM ロールの削除」をご参照ください。
よくある質問
RAM ユーザーが ApsaraMQ for RocketMQ の AliyunServiceRoleForOns サービスリンクロールを自動的に作成できないのはなぜですか?
Alibaba Cloud アカウントがサービスリンクロールをすでに作成している場合、RAM ユーザーはアカウントからロールを継承します。ロールが継承されない場合は、RAM コンソールにログインし、次のアクセスポリシーを RAM ユーザーにアタッチしてください。
{
"Statement": [
{
"Action": [
"ram:CreateServiceLinkedRole"
],
"Resource": "acs:ram:*:Alibaba Cloud account ID:role/*",
"Effect": "Allow",
"Condition": {
"StringEquals": {
"ram:ServiceName": "ons.aliyuncs.com"
}
}
}
],
"Version": "1"
}Alibaba Cloud account ID を実際の Alibaba Cloud アカウント ID に置き換えてください。
上記のポリシーを付与した後も RAM ユーザーがサービスリンクロールを自動的に作成できない場合は、次のいずれかのシステムポリシーを RAM ユーザーに付与してください。
AliyunMQFullAccess
AliyunMQReadOnlyAccess
詳細については、「システムポリシー」をご参照ください。