すべてのプロダクト
Search
ドキュメントセンター

Function Compute:Function Computeのサービスにリンクされたロール

最終更新日:Jul 15, 2024

信頼できる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 CloudElastic Compute ServiceSimple Log ServiceContainer 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コンソールは期待どおりに使用できなくなります。 この操作は慎重に行ってください。

  1. 管理者権限を持つRAMユーザーとしてRAMコンソールにログインします。

  2. 左側のナビゲーションウィンドウで、アイデンティティ > ロールを選択します。

  3. On theロールページで、削除するRAMユーザーを見つけて、アクション列でロールの削除をクリックします。

  4. では、ロールの削除ダイアログボックスで、削除する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"
                }
            }
        }
    ]
}