信頼できるAlibaba Cloudサービスは、RAM (Resource Access Management) ロールを引き受けて、他のAlibaba Cloudサービスにアクセスできます。 信頼できるAlibaba Cloudサービスが引き受けることができるRAMロールは、通常のサービスロールとサービスにリンクされたロールに分類されます。 このトピックでは、Function Computeのサービスにリンクされたロールについて説明します。
概要
Function ComputeのサービスにリンクされたロールAliyunServiceRoleForFCを使用して、他のAlibaba Cloudサービスにアクセスし、操作を実行できます。 Function Computeは3.0、AliyunServiceRoleForFCとサービスとしての機能 (FaaS) 関数のバインドをサポートしており、最小権限の原則に基づいて他のクラウドサービスにアクセスする権限を関数に付与します。
次の項目は、Function Computeのサービスにリンクされたロールと添付されたシステムポリシーを示しています。
サービスにリンクされたロール: AliyunServiceRoleForFC
システムポリシー: AliyunServiceRolePolicyForFC
AliyunServiceRoleForFC
AliyunServiceRoleForFCロールには、Virtual Private Cloud、Elastic Compute Service、Simple Log Service、Container Registryなどの特定のAlibaba Cloudサービスにアクセスする権限があります。 ロールを使用して、関数のVPCへの接続、イメージのダウンロード、リソースの再利用、ログのエクスポートなどの特定の機能を実装できます。
AliyunServiceRoleForFCロールには、AliyunServiceRolePolicyForFCポリシーが付属しています。 次のコードは、ポリシーの内容を示しています。
{
"Version": "1",
"Statement": [
{
"Action": [
"vpc:DescribeVSwitchAttributes" 、
"vpc:DescribeVpcAttribute"
],
"Resource": "*",
"Effect": "Allow"
},
{
"Action": [
"ecs:CreateNetworkInterface",
"ecs:DeleteNetworkInterface",
"ecs:DescribeNetworkInterfaces",
"ecs: DescribeNetworkInterfaces"、
"ecs:DeleteNetworkInterfacePermission",
"ecs:DescribeNetworkInterfacePermissions"
],
"Resource": "*",
"Effect": "Allow"
},
{
"Action": [
"cr:PullRepository" 、
"cr:GetArtifactTag" 、
"cr:GetAuthorizationToken" 、
"cr:GetRepository" 、
"cr:GetRepositoryTag" 、
"cr:GetRepoTagManifest" 、
"cr:GetRepositoryManifest" 、
"cr:GetInstanceVpcEndpoint" 、
"cr:GetInstance" 、
"cr:GetNamespace" 、
"cr:GetArtifactBuildRule" 、
"cr:CreateArtifactBuildTask"
],
"Resource": "*",
"Effect": "Allow"
},
{
"Action": [
"fc:InvokeFunction" 、
"eventbridge:PutEvents" 、
"mq:PUB" 、
"mq:OnsInstanceBaseInfo" 、
"mns:SendMessage",
"mns:PublishMessage" 、
"fnf:ReportTaskSucceeded" 、
"fnf:ReportTaskFailed"
],
"Resource": "*",
"Effect": "Allow"
},
{
"Action": [
"log:CreateProject",
"log:GetLogStore"
"log:GetProject",
"log:GetLogStore",
"log:DeleteProject" 、
"log:DeleteLogStore" 、
"log:GetLogStoreLogs"
],
"Resource": [
"acs:log:*:*:project/aliyun-fc-*" 、
"acs:log:*:*:project/*/logstore/function-log *"
],
"Effect": "Allow"
},
{
"Action": [
"log:PostLogStoreLogs"、
],
"Resource": "*",
"Effect": "Allow"
},
{
"Action": [
"ram:GetRole"
],
"Resource": "*",
"Effect": "Allow"
},
{
"Effect": "Allow",
"アクション": "ram:DeleteServiceLinkedRole" 、
"Resource": "*",
"Condition": {
"StringEquals": {
"ram:ServiceName": "fc.aliyuncs.com"
}
}
}
]
}
Function Computeのサービスにリンクされたロールが必要なシナリオを次に示します。
Function ComputeのVPC、スイッチ、またはelastic network Interface (ENI) を設定して、データセキュリティを向上させ、VPCでネットワーク通信を実装します。
Container Registryリポジトリにアクセスして、イメージベース関数の作成に使用するイメージを取得します。 コンテナイメージを使用して、関数を柔軟にデプロイできます。
ApsaraMQやEventBridgeなどのメッセージサービスへのアクセスを設定し、Function Computeを使用してメッセージソースからのイベントを監視します。 新しいメッセージまたはイベントが生成されると、関数の実行を直接トリガーして、イベント駆動型コンピューティングモデルを実装できます。
Simple Log Serviceに関連する権限を設定して、機能実行ログの自動収集を可能にし、ログの検索、分析、視覚化された表示を容易にします。 これにより、問題をすばやく見つけて解決できます。
サービスにリンクされたロールの作成
Function Compute 3.0コンソールにログインすると、サービスにリンクされたロールAliyunServiceRoleForFCが作成されているかどうかが確認されます。 そうでない場合は、サービスにリンクされたロールを作成するかどうかを尋ねるメッセージが表示されます。 サービスにリンクされたロールAliyunServiceRoleForFCの作成を確認し、AliyunServiceRolePolicyForFCポリシーをアタッチすると、システムは自動的にAliyunServiceRoleForFCロールを作成します。
サービスにリンクされたロールが作成された後、RAMコンソールの [ロール] ページで、またはCLIまたは別のツールで [リストロール] 操作を呼び出して、作成されたサービスにリンクされたロールを表示できます。 Function Compute 3.0コンソールに再度ログインして、サービスにリンクされたロールが正常に作成されたかどうかを確認することもできます。 ログインが成功すると、サービスにリンクされたロールが作成されます。
サービスにリンクされたロールの削除
RAMコンソールでサービスにリンクされたロールを削除できます。 サービスにリンクされたロールが削除されると、Function Compute 3.0コンソールは期待どおりに使用できなくなります。 この操作は慎重に行ってください。
管理者権限を持つRAMユーザーとしてRAMコンソールにログインします。
左側のナビゲーションウィンドウで、 を選択します。
On theロールページで、削除するRAMユーザーを見つけて、アクション列でロールの削除をクリックします。
では、ロールの削除ダイアログボックスで、削除するRAMロールの名前を入力し、ロールの削除.
サービスにリンクされたロールを削除すると、RAMはそのロールがクラウドリソースによって使用されているかどうかを確認します。 ロールが1つ以上のクラウドリソースによって使用されている場合、ロールは削除されません。 表示されたメッセージに基づいて、ロールを使用しているクラウドリソースを確認できます。 対応するクラウドリソースを使用する必要がなくなった場合は、サービスにリンクされたロールを削除する前に、リソースを見つけて削除してください。
RAMユーザーがサービスにリンクされたロールを使用するために必要な権限
RAMユーザーとしてサービスにリンクされたロールを作成または削除する場合は、Alibaba Cloudアカウントを使用してRAMユーザーにram:CreateServiceLinkRoleおよびram:DeleteServiceLinkedRole権限を付与するか、AliyunRAMFullAccessポリシーをRAMユーザーにアタッチする必要があります。
次のコードスニペットは、RAMユーザーがFunction Computeのサービスにリンクされたロールを作成および削除できるようにするサンプルのカスタムポリシーを示しています。
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": [
"ram:CreateServiceLinkedRole",
"ram:DeleteServiceLinkedRole"
],
"Resource": "*",
"Condition": {
"StringEquals": {
"ram:ServiceName": "fc.aliyuncs.com"
}
}
}
]
}