このガイドでは、サービス アカウント リソースのタグを作成して管理する方法について説明します。
タグについて
タグは、Google Cloud内のリソースに適用できる Key-Value ペアです。タグを使用すると、リソースに特定のタグが付加されているかどうかに基づいて、条件付きでポリシーの許可や拒否を行うことができます。たとえば、リソースに特定のタグがあるかどうかに基づいて、Identity and Access Management(IAM)のロールを条件付きで付与できます。タグの詳細については、タグの概要をご覧ください。
タグは、タグと Google Cloud リソースを結びつけるタグ バインディング リソースを作成することによって、リソースに適用されます。
必要な権限
タグの管理に必要な権限を取得するには、サービス アカウントに対する次の IAM ロールを付与するよう管理者に依頼します。
-
タグ閲覧者(
roles/resourcemanager.tagViewer
) - タグが適用されているリソース -
組織レベルでタグを表示および管理する: 組織閲覧者(
roles/resourcemanager.organizationViewer
) - 組織 -
タグの定義を作成、更新、削除する: タグ管理者(
roles/resourcemanager.tagAdmin
) - タグの作成、更新、削除を行うリソース -
リソースにタグを適用またはリソースからタグを削除する: タグユーザー(
roles/resourcemanager.tagUser
) - タグ値と、タグ値を適用または削除するリソース
ロールの付与については、プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。
必要な権限は、カスタムロールや他の事前定義ロールから取得することもできます。
サービス アカウントにタグを適用するために必要な権限を取得するには、サービス アカウントに対するサービス アカウント管理者(roles/iam.ServiceAccountAdmin
)IAM ロールを付与するよう管理者に依頼してください。ロールの付与については、プロジェクト、フォルダ、組織へのアクセスを管理するをご覧ください。
必要な権限は、カスタムロールや他の事前定義ロールから取得することもできます。
タグキーとタグ値を作成する
タグを適用する前に、タグを作成してその値を構成する必要があります。タグキーとタグ値を作成する方法については、タグの作成とタグ値の追加をご覧ください。
既存のリソースにタグを追加する
既存のサービス アカウントにタグを追加する手順は次のとおりです。
gcloud
サービス アカウントにタグを適用するには、gcloud resource-manager tags bindings create
コマンドを使用してタグ バインディング リソースを作成する必要があります。
gcloud resource-manager tags bindings create \ --tag-value=TAGVALUE_NAME \ --parent=RESOURCE_ID
次のように置き換えます。
TAGVALUE_NAME
: 適用されるタグ値の永続 ID または名前空間名(例:tagValues/567890123456
)。-
RESOURCE_ID
: API ドメイン名(//iam.googleapis.com/
)を含むサービス アカウントの一意の ID またはメールアドレス。たとえば、プロジェクトtest-project
の一意の ID1029384756
を持つサービス アカウントの完全な ID は//iam.googleapis.com/projects/test-project/serviceAccounts/1029384756
です。
リソースに適用されたタグを一覧表示する
サービス アカウントに直接適用されているか、サービス アカウントによって継承されているタグ バインディングのリストを表示できます。
gcloud
リソースに適用されたタグ バインディングのリストを取得するには、gcloud resource-manager tags bindings list
コマンドを使用します。
gcloud resource-manager tags bindings list \ --parent=RESOURCE_ID
次のように置き換えます。
-
RESOURCE_ID
: API ドメイン名(//iam.googleapis.com/
)を含むサービス アカウントの一意の ID またはメールアドレス。たとえば、プロジェクトtest-project
の一意の ID1029384756
を持つサービス アカウントの完全な ID は//iam.googleapis.com/projects/test-project/serviceAccounts/1029384756
です。
次のようなレスポンスが返されます。
name: tagBindings/%2F%2Fcloudresourcemanager.googleapis.com%2Fprojects%2F7890123456/tagValues/567890123456 tagValue: tagValues/567890123456 resource: //iam.googleapis.com/projects/test-project/serviceAccounts/1029384756
リソースからタグを削除する
サービス アカウントに直接適用されたタグは解除できます。継承されたタグは、同じキーと別の値を持つタグを適用することでオーバーライドできますが、削除することはできません。
gcloud
タグ バインディングを削除するには、gcloud resource-manager tags bindings delete
コマンドを使用します。
gcloud resource-manager tags bindings delete \ --tag-value=TAGVALUE_NAME \ --parent=RESOURCE_ID
次のように置き換えます。
TAGVALUE_NAME
: 適用されるタグ値の永続 ID または名前空間名(例:tagValues/567890123456
)。-
RESOURCE_ID
: API ドメイン名(//iam.googleapis.com/
)を含むサービス アカウントの一意の ID またはメールアドレス。たとえば、プロジェクトtest-project
の一意の ID1029384756
を持つサービス アカウントの完全な ID は//iam.googleapis.com/projects/test-project/serviceAccounts/1029384756
です。
タグキーとタグ値を削除する
タグキーまたは値の定義を削除する場合は、タグがサービス アカウントから削除されていることを確認します。タグ定義自体を削除する前に、既存のタグの適用(タグ バインディング)を削除する必要があります。タグキーとタグ値を削除するには、タグの削除をご覧ください。
Identity and Access Management の条件とタグ
タグと IAM Conditions を使用すると、階層内のユーザーに条件付きでロール バインディングを付与できます。条件付きロール バインディングを含む IAM ポリシーが適用されている場合、リソースに適用されたタグを変更または削除すると、そのリソースへのユーザー アクセスを削除できます。詳細については、Identity and Access Management の条件とタグをご覧ください。
次のステップ
- タグをサポートするその他のサービス確認する。
- タグとアクセス制御で、IAM でタグを使用する方法を確認する。