AI ゲートウェイのサービスリンクロールは、事前定義された RAM ロールであり、AI ゲートウェイがご利用の Alibaba Cloud サービスに代わって他の Alibaba Cloud サービスにアクセスするために必要な権限を付与します。
ユースケース
-
AliyunServiceRoleForNativeApiGw:AI ゲートウェイが Virtual Private Cloud (VPC)、Container Service for Kubernetes (ACK)、Function Compute (FC)、Enterprise Distributed Application Service (EDAS)、Microservices Engine (MSE)、Server Load Balancer (SLB)、Network Load Balancer (NLB)、Elastic Compute Service (ECS)、および Application Real-Time Monitoring Service (ARMS) などの他のクラウドサービスのリソースにアクセスする必要がある場合、自動的に作成されるサービスリンクロール AliyunServiceRoleForNativeApiGw を使用して、必要なアクセス権限を取得します。
-
AliyunServiceRoleForNativeApiGwInvokeFC:AI ゲートウェイが Function Compute (FC) を呼び出す必要がある場合、自動的に作成されるサービスリンクロール AliyunServiceRoleForNativeApiGwInvokeFC を使用して、ゲートウェイ機能を有効にします。
-
AliyunServiceRoleForNativeApiGwInvokeKMS:Cloud-native API Gateway が Key Management Service (KMS) を呼び出す必要がある場合、自動的に作成されるサービスリンクロール
AliyunServiceRoleForNativeApiGwInvokeKMSを使用して、アクセス権限を取得します。
RAM ユーザーの権限
RAM ユーザーがサービスリンクロールを作成または削除するには、管理者がその RAM ユーザーに管理者権限(AliyunNativeApiGwFullAccess)を付与するか、カスタム権限ポリシーの Action 文に以下の権限を追加する必要があります。
-
サービスリンクロールの作成:
ram:CreateServiceLinkedRole -
サービスリンクロールの削除:
ram:DeleteServiceLinkedRole
権限の付与方法の詳細については、「サービスリンクロールの管理に必要な権限」をご参照ください。
権限
AliyunServiceRoleForNativeApiGw
AI ゲートウェイのサービスリンクロール(AliyunServiceRoleForNativeApiGw)には、以下の権限が付与されます。
VPC
{
"Effect": "Allow",
"Action": [
"vpc:AllocateEipAddress",
"vpc:AllocateEipAddressPro",
"vpc:DescribeEipAddresses",
"vpc:AssociateEipAddress",
"vpc:UnassociateEipAddress",
"vpc:ReleaseEipAddress",
"vpc:ModifyEipAddressAttribute",
"vpc:ModifyBypassToaAttribute",
"vpc:AddCommonBandwidthPackageIp",
"vpc:RemoveCommonBandwidthPackageIp",
"vpc:TagResources",
"vpc:DescribeVSwitches",
"vpc:DescribeVSwitchAttributes",
"vpc:DescribeVpcs",
"vpc:CreateVSwitch",
"vpc:DescribeVpcAttribute",
"vpc:DescribeVRouters",
"vpc:DescribeRouteTables",
"vpc:DescribeRouteEntryList"
],
"Resource": "*"
}
ACK
{
"Effect": "Allow",
"Action": [
"cs:DescribeClusterDetail",
"cs:DescribeClusterInnerServiceKubeconfig",
"cs:RevokeClusterInnerServiceKubeconfig",
"cs:GetUserConfig",
"cs:DescribeClusterUserKubeconfig",
"cs:GetClusterById",
"cs:GetClustersByUid",
"cs:DescribeClustersV1",
"cs:ListClusters",
"cs:GetClusters",
"cs:DescribeClusterNodePools"
],
"Resource": "*"
}
FC
{
"Effect": "Allow",
"Action": [
"fc:ListAliases",
"fc:ListServices",
"fc:ListServiceVersions",
"fc:ListFunctions",
"fc:ListFunctionVersions",
"fc:ListTriggers"
],
"Resource": "*"
}
EDAS
{
"Effect": "Allow",
"Action": [
"edas:ReadNamespace",
"edas:ReadService",
"edas:ListUserDefineRegion"
],
"Resource": "*"
}
MSE
{
"Effect": "Allow",
"Action": [
"mse:ListAnsServices",
"mse:ListEngineNamespaces",
"mse:ListClusters",
"mse:QueryConfig"
],
"Resource": "*"
}
SLB
{
"Effect": "Allow",
"Action": [
"slb:SetLoadBalancerName",
"slb:CreateLoadBalancer",
"slb:AddBackendServers",
"slb:SetBackendServers",
"slb:RemoveBackendServers",
"slb:CreateLoadBalancerTCPListener",
"slb:DescribeLoadBalancerTCPListenerAttribute",
"slb:SetLoadBalancerTCPListenerAttribute",
"slb:CreateLoadBalancerHTTPListener",
"slb:DescribeLoadBalancerHTTPListenerAttribute",
"slb:SetLoadBalancerHTTPListenerAttribute",
"slb:CreateLoadBalancerHTTPSListener",
"slb:DescribeLoadBalancerHTTPSListenerAttribute",
"slb:SetLoadBalancerHTTPSListenerAttribute",
"slb:StartLoadBalancerListener",
"slb:StopLoadBalancerListener",
"slb:DeleteLoadBalancerListener",
"slb:DescribeLoadBalancers",
"slb:DescribeLoadBalancerAttribute",
"slb:DescribeHealthStatus",
"slb:CreateLoadBalancerForCloudService",
"slb:DeleteLoadBalancer",
"slb:ModifyLoadBalancerInternetSpec",
"slb:RemoveTags",
"slb:AddTags",
"slb:SetLoadBalancerUDPListenerAttribute",
"slb:CreateLoadBalancerUDPListener",
"slb:CreateVServerGroup",
"slb:DeleteVServerGroup",
"slb:SetVServerGroupAttribute",
"slb:ModifyVServerGroupBackendServers",
"slb:AddVServerGroupBackendServers",
"slb:ModifyLoadBalancerInstanceSpec",
"slb:ModifyLoadBalancerInternetSpec",
"slb:RemoveVServerGroupBackendServers",
"slb:SetLoadBalancerModificationProtection",
"slb:SetLoadBalancerDeleteProtection",
"slb:DescribeLoadBalancerUDPListenerAttribute ",
"slb:DescribeTags",
"slb:DescribeVServerGroups",
"slb:DescribeVServerGroupAttribute",
"slb:DescribeLoadBalancerListeners",
"slb:ListTagResources",
"slb:TagResources",
"slb:UntagResources"
],
"Resource": "*"
}
NLB
{
"Effect": "Allow",
"Action": [
"nlb:TagResources",
"nlb:UnTagResources",
"nlb:ListTagResources",
"nlb:CreateLoadBalancer",
"nlb:DeleteLoadBalancer",
"nlb:GetLoadBalancerAttribute",
"nlb:ListLoadBalancers",
"nlb:UpdateLoadBalancerAttribute",
"nlb:UpdateLoadBalancerAddressTypeConfig",
"nlb:UpdateLoadBalancerZones",
"nlb:CreateListener",
"nlb:DeleteListener",
"nlb:ListListeners",
"nlb:UpdateListenerAttribute",
"nlb:StopListener",
"nlb:StartListener",
"nlb:GetListenerAttribute",
"nlb:GetListenerHealthStatus",
"nlb:CreateServerGroup",
"nlb:DeleteServerGroup",
"nlb:UpdateServerGroupAttribute",
"nlb:AddServersToServerGroup",
"nlb:RemoveServersFromServerGroup",
"nlb:UpdateServerGroupServersAttribute",
"nlb:ListServerGroups",
"nlb:ListServerGroupServers",
"nlb:LoadBalancerLeaveSecurityGroup",
"nlb:LoadBalancerJoinSecurityGroup",
"nlb:GetJobStatus",
"nlb:UpdateLoadBalancerProtection"
],
"Resource": "*"
}
ECS
{
"Effect": "Allow",
"Action": [
"ecs:CreateSecurityGroup",
"ecs:AuthorizeSecurityGroup",
"ecs:AuthorizeSecurityGroupEgress",
"ecs:RevokeSecurityGroup",
"ecs:RevokeSecurityGroupEgress",
"ecs:DeleteSecurityGroup",
"ecs:JoinSecurityGroup",
"ecs:LeaveSecurityGroup",
"ecs:DescribeSecurityGroups",
"ecs:DescribeInstances",
"ecs:CreateNetworkInterface",
"ecs:DeleteNetworkInterface",
"ecs:DescribeNetworkInterfaces",
"ecs:CreateNetworkInterfacePermission",
"ecs:DescribeNetworkInterfacePermissions",
"ecs:DeleteNetworkInterfacePermission",
"ecs:DescribeSecurityGroupAttribute",
"ecs:AddTags",
"ecs:DescribeEipAddresses",
"ecs:DescribeNetworkInterfaceAttribute",
"ecs:ModifyNetworkInterfaceAttribute",
"ecs:AssignPrivateIpAddresses",
"ecs:UnassignPrivateIpAddresses",
"ecs:AssignIpv6Addresses",
"ecs:UnassignIpv6Addresses",
"ecs:AttachNetworkInterface",
"ecs:DetachNetworkInterface",
"ecs:ListTagResources"
],
"Resource": "*"
}
ARMS
{
"Effect": "Allow",
"Action": [
"arms:OpenArmsService",
"arms:GetAlertRules",
"arms:ReportCustomIncidents",
"arms:AddPrometheusInstance",
"arms:GetAuthToken",
"arms:GetClusterAllUrl",
"arms:OpenArmsServiceSecondVersion",
"arms:CheckServiceStatus",
"arms:OpenVCluster",
"arms:GetPrometheusApiToken",
"arms:ListDashboards",
"arms:GetExploreUrl",
"arms:CreateDefaultCloudProductPrometheusAlertRule",
"arms:ListNotificationPolicies",
"arms:ListDispatchRule",
"arms:CreateDispatchRule",
"arms:CreateOrUpdateNotificationPolicy",
"arms:DescribeContactGroups",
"arms:SearchContactGroup",
"arms:CreatePrometheusAlertRule"
],
"Resource": "*"
}
AliyunServiceRoleForNativeApiGwInvokeFC
AI ゲートウェイのサービスリンクロール(AliyunServiceRoleForNativeApiGwInvokeFC)には、以下の権限が付与されます。
{
"Effect": "Allow",
"Action": "fc:InvokeFunction",
"Resource": "*"
}
AliyunServiceRoleForNativeApiGwInvokeKMS
AI ゲートウェイのサービスリンクロール(AliyunServiceRoleForNativeApiGwInvokeKMS)には、以下の権限が付与されます。
{
"Effect": "Allow",
"Action": [
"kms:ListKmsInstances",
"kms:ListKeys",
"kms:GenerateDataKey",
"kms:Decrypt",
"kms:CreateSecret",
"kms:DeleteSecret",
"kms:UpdateSecret",
"kms:DescribeSecret",
"kms:GetSecretValue",
"kms:PutSecretValue",
"kms:TagResource",
"kms:UntagResource"
],
"Resource": "*"
}
サービスリンクロールの確認
サービスリンクロールが作成された後は、RAM コンソールのロールページ にアクセスし、AliyunServiceRoleForNativeApiGw や AliyunServiceRoleForNativeApiGwInvokeFC などのロール名を検索することで、以下の情報を確認できます。
-
基本情報
ロールの詳細ページで、Basic Information セクションに移動し、ロール名、作成時刻、ARN、説明を確認します。
-
権限ポリシー
AliyunServiceRoleForNativeApiGw または AliyunServiceRoleForNativeApiGwInvokeFC ロールの詳細ページで、権限 タブをクリックします。その後、ポリシー名をクリックして、ポリシードキュメントおよびロールがアクセス可能なクラウドリソースを確認します。
-
信頼ポリシー
AliyunServiceRoleForNativeApiGw または AliyunServiceRoleForNativeApiGwInvokeFC ロールの詳細ページで、信頼ポリシーの管理 タブをクリックして、信頼ポリシーを確認します。信頼ポリシーは、RAM ロールを偽装できる信頼できるエンティティを定義します。サービスリンクロールの場合、信頼できるエンティティはクラウドサービスであり、信頼ポリシーの
Serviceフィールドで識別できます。
RAM ロールの確認方法の詳細については、「RAM ロールの情報の確認」をご参照ください。
サービスリンクロールの削除
AI ゲートウェイを今後使用しない場合は、RAM コンソール で手動でサービスリンクロールを削除できます。
-
Alibaba Cloud アカウントを使用して RAM コンソール にログインします。左側のナビゲーションウィンドウで、 を選択します。
-
ロール ページで、削除するロールの名前(例:
AliyunServiceRoleForNativeApiGw)を検索ボックスに入力します。 -
検索結果から対象のロールを見つけ、Actions 列の ロールの削除 をクリックします。
-
確認ダイアログボックスで、ロール名を入力して検証し、ロールの削除 をクリックします。
Cloud-native API Gateway のサービスリンクロールを削除すると、そのロールに依存する機能が正しく動作しなくなります。慎重に操作してください。
よくある質問
RAM ユーザーが AliyunServiceRoleForNativeApiGw ロールを作成できない理由
AliyunServiceRoleForNativeApiGw ロールの作成または削除には特定の権限が必要です。RAM ユーザーが自動的にロールを作成できない場合は、管理者が以下の権限ポリシーを RAM ユーザーにアタッチする必要があります。
{
"Statement": [
{
"Action": [
"ram:CreateServiceLinkedRole"
],
"Resource": "acs:ram:*:Alibaba Cloud アカウント ID:role/*",
"Effect": "Allow",
"Condition": {
"StringEquals": {
"ram:ServiceName": [
"nativeapigw.aliyuncs.com"
]
}
}
}
],
"Version": "1"
}
Alibaba Cloud アカウント ID は、ご利用の Alibaba Cloud アカウント ID に置き換えてください。
RAM ユーザーが AliyunServiceRoleForNativeApiGwInvokeFC ロールを作成できない理由
AliyunServiceRoleForNativeApiGwInvokeFC ロールの作成または削除には特定の権限が必要です。RAM ユーザーが自動的にロールを作成できない場合は、管理者が以下の権限ポリシーを RAM ユーザーにアタッチする必要があります。
{
"Statement": [
{
"Action": [
"ram:CreateServiceLinkedRole"
],
"Resource": "acs:ram:*:Alibaba Cloud アカウント ID:role/*",
"Effect": "Allow",
"Condition": {
"StringEquals": {
"ram:ServiceName": [
"invokefc.nativeapigw.aliyuncs.com"
]
}
}
}
],
"Version": "1"
}
Alibaba Cloud アカウント ID は、ご利用の Alibaba Cloud アカウント ID に置き換えてください。
参照
サービスリンクロールの詳細については、「サービスリンクロール」をご参照ください。