Function Computeでは、タグを使用して同じ機能を持つサービスリソースを分類できます。 タグは、リソース検索および集約を容易にする。 タグ付け機能を使用して、サービスをグループ化し、異なるロールを許可して、異なるグループのサービスを管理できます。 このトピックでは、タグの使用方法と制限、およびFunction Computeコンソールでのタグの管理方法について説明します。
使用上の注意
タグとサービスリソースは多対多の関係にあります。
各タグは、キーと値のペアで構成されます。
タグは、指定されたスコープ内のリソースに対してきめ細かい許可を実装するための条件として機能します。
バージョン、エイリアス、関数、トリガーなど、サービスのすべてのリソースは、サービスにアタッチされたタグを継承します。
APIリクエストでサービスを指定すると、タグベースの認証がサポートされます。
サービスの異なるバージョンのタグのメタデータは同じです。 したがって、サービスのタグを変更すると、サービスのすべてのバージョンとエイリアスに関係するタグベースの承認に影響します。
制限事項
各タグキーの長さは、大文字と小文字を区別するUnicode文字である必要があります。
各タグ値は、大文字と小文字を区別するUnicode文字の長さが1〜128である必要があります。
各リソースに最大20個のタグを付けることができます。
タグキーは、ASCIIコード、数字、および次の特殊文字をサポートします。
-\.!@#$%?/^&*)(+ ={}[\\]",'<>~ ・' :;|_
タグキーの先頭をaliyun
またはacs:
、http://
またはhttps://
、または空の文字列にすることはできません。タグ値は、ASCIIコード、数字、および次の特殊文字をサポートします。
-\.!@#$%?/^&*)(+ ={}[\\]",'<>~ ・' :|;_
タグ値にhttp://
またはhttps://
を含めることも、空の文字列にすることもできません。タグ情報はリージョン間で共有できません。 たとえば、中国 (上海) リージョンを選択した場合、中国 (杭州) リージョンで作成されたインスタンスのタグを表示できません。
タグの作成
Function Computeコンソールにログインします。 左側のナビゲーションウィンドウで、[サービスと機能] をクリックします。
上部のナビゲーションバーで、リージョンを選択します。 [サービス] ページで、目的のサービスをクリックします。
左側のナビゲーションウィンドウで、サービス詳細.
[基本設定] セクションで、[タグ] の横にあるアイコンの上にポインターを移動し、[バインド] をクリックします。
[タグの変更] ダイアログボックスで、[キー] と [値] を指定し、[OK] をクリックします。
タグを作成したら、[サービスの詳細] ページのアイコンの上にポインターを移動します。 新しいタグが表示されます。 コンソールの画面の指示に従って、ビジネス要件に基づいてタグを更新または削除することもできます。
タグを使用したグループベースのサービス認証の実行
たとえば、Function Computeコンソールで10個のサービスを作成したとします。 開発チームが5つのサービスを管理し、opsチームが他の5つのサービスを管理することを許可する必要があります。 さらに、開発チームと運用チームは、管理を許可されているサービスのみを表示する必要があります。 この場合、異なるチームのサービスに異なるタグをアタッチしたり、異なるチームのRAMユーザーを異なるユーザーグループに追加したり、これらのグループに対応する権限を付与したりできます。 team: devタグを5つのサービスに、team: opsタグを他の5つのサービスにアタッチできます。
、開発チームに管理を許可する5つのサービスにteam:devタグをアタッチし、opsチームに管理を許可する5つのサービスにteam:opsタグをアタッチします。 詳細については、「タグの作成」をご参照ください。
devとopsという名前の2つのユーザーグループを作成します。
異なるチームのRAMユーザーを異なるユーザーグループに追加します。
2つのユーザーグループに異なる権限を付与します。
Function Computeは、システムポリシーとカスタムポリシーをサポートしています。 ビジネス要件に基づいてポリシーを選択できます。
システムポリシーを使用して、さまざまなユーザーグループに権限を付与します。
詳細については、「RAMユーザーグループへの権限付与」をご参照ください。
カスタムポリシーを使用して、異なるユーザーグループに権限を付与します。
カスタムポリシーを作成します。
たとえば、開発チームに権限を付与するために使用されるpolicyForDevTeamという名前のカスタムポリシーを作成できます。 次のサンプルコードは、ポリシーを示しています:
{ "Statement": [ { "Action": "fc:*", "Effect": "Allow", "Resource": "*", "Condition": { "StringEquals": { "fc:tag/team": "dev" } } }, { "Action": "fc:ListServices", "Effect": "Allow", "Resource": "*" }, { "Action": "fc:GetResourceTags", "Effect": "Allow", "Resource": "*" } ], "Version": "1" }
次に、opsチームに権限を付与するために使用されるpolicyForOpsTeamという名前のカスタムポリシーを作成できます。 次のサンプルコードは、ポリシーを示しています:
{ "Statement": [ { "Action": "fc:*", "Effect": "Allow", "Resource": "*", "Condition": { "StringEquals": { "fc:tag/team": "ops" } } }, { "Action": "fc:ListServices", "Effect": "Allow", "Resource": "*" }, { "Action": "fc:GetResourceTags", "Effect": "Allow", "Resource": "*" } ], "Version": "1" }
2つのユーザーグループに権限を付与するときに、作成したカスタムポリシーを選択します。
承認が完了すると、devユーザーグループのRAMユーザーはteam:devでタグ付けされたサービスのみを管理でき、opsユーザーグループのRAMユーザーはteam:opsでタグ付けされたサービスのみを管理できます。