リソースグループを使用して、Function Compute (FC) リソースをグループ化し、より効率的に管理できます。リソースグループを使用すると、部門、プロジェクト、環境などのディメンションでリソースをグループ化できます。Resource Access Management (RAM) と併用すると、リソースグループは、単一の Alibaba Cloud アカウント内でリソースの隔離と詳細な権限管理を実装するのに役立ちます。
シナリオ
ある企業が Alibaba Cloud アカウントを使用して複数の関数を作成します。この企業は、ビジネスグループに基づいて、これらの関数の権限を異なるチームに付与する必要があります。各チームは、承認された関数のみを表示および管理する権限を持つ必要があります。
例:
開発チームは、開発環境の関数のみを管理できます。
O&M チームは、本番環境の関数のみを管理できます。
メリット
リソースグループを使用して関数にグループ別の権限を付与すると、次のメリットがあります。
権限管理の簡素化: リソースグループを使用すると、複数の関数の権限を一元的に管理できます。これにより、各関数に個別に権限を付与する複雑さを回避できます。
明確なリソース分割: リソースグループは、リソースがどのようにグループ化されているかを直感的に表示する方法を提供し、管理とメンテナンスを簡素化します。
柔軟なアクセスの制御: リソースグループに基づいて詳細なアクセスの制御を実装できます。
安全な隔離: 異なるチームは承認されたリソースグループにのみアクセスできるため、リソースの隔離が強制されます。
使用上の注意
リソースグループには、異なるリージョンのリソースを含めることができます。
リソースの作成時にリソースグループを指定しない場合、リソースはデフォルトのリソースグループに追加されます。
エイリアス、トリガー、非同期構成などの関数のサブリソースは、関数のアクセスの制御ルールを継承します。
RAM ユーザーは、対応する関数を表示および管理するために、コンソールで正しいリソースグループを選択する必要があります。
RAM ユーザーが操作のために選択したリージョンが、リソースグループ内の関数が存在するリージョンと同じであることを確認してください。
手順
次の例では、開発チーム用のリソースグループを作成し、チームに権限を付与する方法を示します。これにより、チームは指定された関数のみを表示および管理できるようになります。
ステップ 1: RAM ユーザーとユーザーグループの作成
Alibaba Cloud アカウントを使用して、次の操作を実行します。
RAM コンソールにログインし、developer などの RAM ユーザーを作成します。
詳細については、「RAM ユーザーの作成」をご参照ください。
developer などの RAM ユーザーグループを作成し、作成した RAM ユーザーを developer ユーザーグループに追加します。
詳細については、「RAM ユーザーグループの作成」および「RAM ユーザーを RAM ユーザーグループに追加する」をご参照ください。
RAM ユーザーは、所属するユーザーグループからすべての権限を継承します。
ステップ 2: リソースグループの作成
Resource Management コンソールにログインし、dev などのリソースグループを作成します。詳細については、「リソースグループの作成」をご参照ください。
ステップ 3: リソースグループに関数を追加する
関数を作成するときに、リソースグループに関数を追加できます。詳細については、「関数の作成」をご参照ください。既存の関数をターゲットリソースグループに追加するには、次の手順を実行します。
Function Compute コンソールにログインします。左側のナビゲーションウィンドウで、 を選択します。
上部のナビゲーションバーで、リージョンを選択します。[関数] ページで、ターゲット関数をクリックします。
関数の詳細ページで、[設定] タブをクリックします。 セクションで、リソースグループの横にある
アイコンをクリックします。表示される [リソースグループの変更] ダイアログボックスで、[リソースグループ] を ステップ 2 で作成したリソースグループに設定し、[OK] をクリックします。
Resource Management コンソールでリソースグループに関数を追加することもできます。詳細については、「リソースグループ内のリソースを管理する」をご参照ください。
ステップ 4: リソースグループに対する権限を RAM ユーザーグループに付与する
RAM コンソールにログインします。左側のナビゲーションウィンドウで、 を選択します。ターゲットユーザーグループの [アクション] 列で、[権限の追加] をクリックします。
[権限の追加] パネルで、[スコープ] を [リソースグループ] に設定し、ターゲットリソースグループを選択し、[アクセスポリシー] セクションで AliyunFCFullAccess などのターゲットポリシーを選択してから、[OK] をクリックします。
重要本番環境では、最小権限の原則 (PoLP) に従ってください。カスタムポリシーを作成して、RAM ユーザーに必要な最小限の権限のみを付与します。これにより、過剰な権限によるセキュリティリスクを防ぐことができます。詳細については、「カスタムポリシーの作成」をご参照ください。

ステップ 5: 結果の確認
RAM ユーザーが Function Compute コンソールにログインします。左側のナビゲーションウィンドウで、 を選択します。
RAM ユーザーがコンソールにログインする方法については、「RAM ユーザーとして Alibaba Cloud 管理コンソールにログインする」をご参照ください。
上部のメニューバーで、ステップ 3 の関数と同じリージョンを選択し、ターゲットリソースグループ dev を選択します。
RAM ユーザーは、そのリソースグループを選択した後にのみ、リソースグループ内の関数を表示できます。そうしないと、関数リストは空になります。

関数リストで、選択したリソースグループ内の関数を表示および管理します。他のリソースグループに切り替えて、承認されていない関数を表示できないことを確認します。
追加の権限付与構成
カスタムポリシーの作成
最小権限の原則 (PoLP) に従い、レイヤーやカスタムドメイン名に対する権限など、Function Compute の日常的な使用に必要な、より詳細な権限を付与するには、カスタムポリシーを作成して RAM ユーザーに権限を付与できます。
Alibaba Cloud アカウントを使用して RAM コンソールにログインし、FCPolicyForDevelopers などのカスタムポリシーを作成します。次のコードはポリシーの内容を示しています。
{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": [ "log:Get*", "log:List*", "log:Query*", "log:CreateProject", "log:CreateLogStore", "log:CreateIndex" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "fc:GetLayerVersionByArn", "fc:ListLayers", "fc:PutLayerACL", "fc:ListLayerVersions", "fc:CreateLayerVersion", "fc:DeleteLayerVersion", "fc:GetLayerVersion" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "fc:ListCustomDomains", "fc:GetCustomDomain", "fc:DeleteCustomDomain", "fc:UpdateCustomDomain", "fc:CreateCustomDomain" ], "Resource": "*" }, { "Effect": "Allow", "Action": "ram:ListRoles", "Resource": "*" } ] }ステップ 1 で作成した developer ユーザーグループに、カスタムポリシー FCPolicyForDevelopers を付与します。
ユーザーグループに権限を付与する方法の詳細については、「RAM ユーザーグループに権限を付与する」をご参照ください。
他のプロダクトに対する権限
関数が他の Alibaba Cloud プロダクトを使用する必要がある場合は、それらのプロダクトに必要な権限も付与する必要があります。たとえば、Simple Log Service (SLS) を管理するための AliyunLogFullAccess、Object Storage Service (OSS) を管理するための AliyunOSSFullAccess、File Storage NAS を管理するための AliyunNASFullAccess などのシステムポリシーを付与します。
詳細については、「Function Compute のアクセスポリシーと例」をご参照ください。