このページでは、 Cloud de Confiance by S3NS のタグと、Cloud DNS での使用方法について説明します。タグは Cloud DNS ポリシーに適用できます。
タグについて
タグは、Cloud de Confiance by S3NS内のリソースに適用できる Key-Value ペアです。タグを使用すると、リソースに特定のタグが付加されているかどうかに基づいて、条件付きでポリシーの許可や拒否を行うことができます。たとえば、リソースに特定のタグがあるかどうかに基づいて、Identity and Access Management(IAM)のロールを条件付きで付与できます。タグの詳細については、タグの概要をご覧ください。
タグは、タグと Cloud de Confiance by S3NS リソースを結びつけるタグ バインディング リソースを作成することによって、リソースに適用されます。
必要な権限
タグの管理に必要な権限を取得するため、次の IAM ロールを付与するように管理者に依頼してください。
-
タグが適用されているリソースに対する タグ閲覧者(
roles/resourcemanager.tagViewer) -
組織レベルでタグを表示および管理する: 組織に対する組織閲覧者(
roles/resourcemanager.organizationViewer) -
タグの定義を作成、更新、削除する: タグの作成、更新、削除を行うリソースに対する Tag Administrator(
roles/resourcemanager.tagAdmin) -
リソースにタグを適用する、リソースからタグを削除する: タグの値、タグの値を適用または削除するリソースに対する Tag User(
roles/resourcemanager.tagUser)
ロールの付与については、プロジェクト、フォルダ、組織に対するアクセス権の管理をご覧ください。
必要な権限は、カスタムロールや他の事前定義ロールから取得することもできます。
Cloud DNS ポリシーにタグを適用するには、Cloud DNS 管理者ロール(roles/dns.admin)が必要です。
タグキーとタグ値を作成する
タグを適用する前に、タグを作成してその値を構成する必要があります。タグキーとタグ値を作成する方法については、タグの作成とタグ値の追加をご覧ください。
必須タグを適用する
リソースに必須タグを適用すると、リソースの作成時に特定のタグ(コストセンター タグなど)が存在することを確認し、組織のポリシーへの準拠を維持できます。これを行うには、組織のポリシーとカスタム制約を使用します。適用はリソースの作成時に行われ、必要なタグのないリソースのプロビジョニングを防ぎます。詳細については、組織のポリシーを使用した必須タグの適用をご覧ください。
タグを適用するカスタム制約を設定する
コンソール
Cloud de Confiance コンソールで、[組織のポリシー] ページに移動します。
ページの上部にあるプロジェクト選択ツールを選択します。
プロジェクト選択ツールから、カスタム制約を適用する組織を選択します。
次のパラメータを使用してカスタム制約を設定します。
- 適用方法:
Govern tags - リソースタイプ: 必須タグを適用する Cloud de ConfianceREST リソースの完全修飾名(例:
file.googleapis.com/Instance) - 条件: リソースに適用するタグキーを指定する Common Expression Language(CEL)条件。たとえば、
resource.hasDirectTagKey("1234567890/owner")は、タグキー1234567890/ownerのタグ バインディングを適用します。resource.hasDirectTagKeyCEL 関数は、リソースに直接適用されたタグのみを照合し、リソース階層内の祖先から継承されたタグは考慮しません。 - アクション:
AllowまたはDeny。- 許可: 指定された条件が満たされた場合、リソースを作成または更新するアクションが許可されます。
- 拒否: 指定された条件が満たされると、リソースを作成または更新するアクションがブロックされます。
- 適用方法:
[制約を作成] をクリックします。
gcloud
カスタム制約の YAML ファイルを作成します。
name: organizations/ORGANIZATION_ID/customConstraints/CONSTRAINT_NAME
resourceTypes:
- RESOURCE_NAME
methodTypes:
- GOVERN_TAGS
condition: "CONDITION"
actionType: ACTION
displayName: DISPLAY_NAME
description: DESCRIPTION
次のように置き換えます。
ORGANIZATION_ID: 組織 ID(1234567890など)。CONSTRAINT_NAME: 新しいカスタム制約に付ける名前。カスタム制約はcustom.で始める必要があります。また、使用できるのは、大文字、小文字、数字のみです(例:custom.enforceMandatoryTags)。RESOURCE_NAME: 必須タグを適用するCloud de Confiance REST リソースの完全修飾名(例:file.googleapis.com/Instance)。CONDITION: リソースに適用するタグキーを指定する Common Expression Language(CEL)条件。たとえば、1234567890/ownerタグキーのタグ バインディングを適用するには、resource.hasDirectTagKey("1234567890/owner")を指定します。ACTION:conditionが満たされている場合に実行するアクション。ALLOWまたはDENYになります。拒否アクションは、指定された条件が満たされた場合に、リソースを作成または更新するオペレーションがブロックされることを意味します。
許可アクションは、指定された条件が満たされた場合に、リソースを作成または更新するオペレーションが許可されることを意味します。これは、条件に明示的にリストされているケースを除き、他のすべてのケースがブロックされることも意味します。
DISPLAY_NAME: 制約の名前。わかりやすい名前を入力してください。このフィールドの最大長は 200 文字です。DESCRIPTION: ポリシー違反時にエラー メッセージとして表示される制約の説明。わかりやすい説明を入力してください。このフィールドの最大長は 2,000 文字です。
カスタム制約を設定して、組織のポリシーで使用できるようにします。
カスタム制約を定義したら、組織のポリシーの変更をテストして分析し、制約を適用できます。
既存のリソースにタグを追加する
既存のポリシーにタグを追加する手順は次のとおりです。
コンソール
- Cloud de Confiance コンソールの [Cloud DNS] ページに移動します。
- タグを付加するリソースのページを選択します。 たとえば、ポリシーにタグを付加するには、[ポリシー] ページに移動します。
- [タグ] をクリックします。
- 組織が [タグ] パネルに表示されない場合は、[スコープの選択] をクリックします。組織を選択して [開く] をクリックします。
- [タグを追加] をクリックします。
- リストから付加するタグのキーを選択します。リストは、キーワードを入力してフィルタできます。
- リストから付加するタグの値を選択します。リストは、キーワードを入力してフィルタできます。
- [保存] をクリックします。
- [確認] ダイアログで、[確認] をクリックしてタグを適用します。
タグが更新されたことは、通知で確認します。
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はリソースの完全な ID で、リソースのタイプ(//dns.googleapis.com/)を識別するために API ドメイン名が含まれています。たとえば、/projects/PROJECT_ID/policies/POLICY_IDにタグを付加する場合、完全な ID は//dns.googleapis.com/projects/PROJECT_ID/policies/POLICY_IDです。
リソースに適用されたタグを一覧表示する
ポリシーに直接適用されているか、ポリシーによって継承されているタグ バインディングのリストを表示できます。
コンソール
- Cloud de Confiance コンソールの [Cloud DNS] ページに移動します。
タグを表示するリソースのページを選択します。 たとえば、ポリシーのタグを表示するには、[ポリシー] ページに移動します。
タグは、コンソールのポリシー ページの [タグ] セクションに表示されます。
gcloud
リソースに適用されたタグ バインディングのリストを取得するには、gcloud resource-manager tags bindings list コマンドを使用します。
gcloud resource-manager tags bindings list \
--parent=RESOURCE_ID
次のように置き換えます。
-
RESOURCE_IDはリソースの完全な ID で、リソースのタイプ(//dns.googleapis.com/)を識別するために API ドメイン名が含まれています。たとえば、/projects/PROJECT_ID/policies/POLICY_IDにタグを付加する場合、完全な ID は//dns.googleapis.com/projects/PROJECT_ID/policies/POLICY_IDです。
次のようなレスポンスが返されます。
name: tagBindings/%2F%2Fcloudresourcemanager.googleapis.com%2Fprojects%2F7890123456/tagValues/567890123456
tagValue: tagValues/567890123456
resource: //dns.googleapis.com/projects/PROJECT_ID/policies/POLICY_ID
リソースからタグを削除する
ポリシーに直接適用されたタグを解除できます。継承されたタグは、同じキーと別の値を持つタグを適用することでオーバーライドできますが、削除することはできません。
コンソール
- Cloud de Confiance コンソールの [Cloud DNS] ページに移動します。
- タグを削除するリソースのページを選択します。 たとえば、ポリシーからタグを削除するには、[ポリシー] ページに移動します。
- [タグ] をクリックします。
- [タグ] パネルで、削除するタグの横にある [項目を削除] をクリックします。
- [保存] をクリックします。
- [確認] ダイアログで、[確認] をクリックしてタグを削除します。
タグが更新されたことは、通知で確認します。
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はリソースの完全な ID で、リソースのタイプ(//dns.googleapis.com/)を識別するために API ドメイン名が含まれています。たとえば、/projects/PROJECT_ID/policies/POLICY_IDにタグを付加する場合、完全な ID は//dns.googleapis.com/projects/PROJECT_ID/policies/POLICY_IDです。
タグキーとタグ値を削除する
タグキーまたは値の定義を削除する場合は、タグがポリシーから切断されていることを確認します。タグ定義自体を削除する前に、既存のタグの適用(タグ バインディング)を削除する必要があります。タグキーとタグ値を削除するには、タグの削除をご覧ください。
Identity and Access Management の条件とタグ
タグと IAM Conditions を使用すると、階層内のユーザーに条件付きでロール バインディングを付与できます。条件付きロール バインディングを含む IAM ポリシーが適用されている場合、リソースに適用されたタグを変更または削除すると、そのリソースへのユーザー アクセスを削除できます。詳細については、Identity and Access Management の条件とタグをご覧ください。
次のステップ
- タグをサポートするその他のサービス確認する。
- タグとアクセス制御で、IAM でタグを使用する方法を確認する。