タグポリシーを使用して、リソースに準拠していないタグのイベント前のインターセプトを実装し、タグ関連の操作を標準化できます。
シナリオ
シナリオ1: リソースを作成するときに非準拠タグを阻止する
デフォルト機能
リソースを作成するときは、タグポリシーでキーが定義されているタグをリソースに追加します。 ただし、タグの値はタグポリシーで定義されていません。 この場合、システムは、タグが非準拠であると判定し、リソース作成をブロックする。 その結果、リソースの作成に失敗します。
たとえば、Elastic Compute Service (ECS) インスタンスにCostCenter:Beijing
タグが定義されているタグポリシーを作成し、そのタグポリシーをAlibaba Cloudアカウントにアタッチします。 ECSインスタンスを作成するときに、CostCenter:beijing
やCostCenter:Shenzhen
などの非準拠タグをインスタンスに追加すると、インスタンスの作成に失敗します。
既定の機能をサポートするリソースタイプとAPI操作の詳細については、概要トピックの [タグポリシーをサポートするサービス] セクションの [既定の機能をサポートするAPI操作] 列を参照してください。
強力な検証機能
リソースを作成するとき、タグポリシーで定義されたタグはリソースに追加されません。 この場合、システムはリソース作成をブロックします。 その結果、リソースの作成に失敗します。
たとえば、ECSインスタンスに対してCostCenter:Beijing
タグが定義されているタグポリシーを作成し、そのタグポリシーをAlibaba Cloudアカウントにアタッチします。 ECSインスタンスを作成するときに、準拠タグCostCenter:Beijing
を追加しない場合、またはインスタンスにタグを追加しない場合、インスタンスの作成に失敗します。
強力な検証機能は、手動で有効にした後にのみ有効になります。 リソースディレクトリの場合、この機能は有効になった後、リソースディレクトリ内のすべてのメンバーに対して有効になります。
強力な検証機能は、リソース管理コンソールの [ポリシーライブラリ] ページで有効にできます。 この機能が必要ない場合は、いつでも無効にすることができます。
強力な検証機能をサポートするリソースタイプとAPI操作の詳細については、「概要」トピックの [タグポリシーをサポートするサービス] セクションの [非準拠タグのイベント前のインターセプトの強力な検証をサポートするAPI操作] 列を参照してください。
シナリオ2: リソースにタグを追加するときに非準拠タグを阻止する
リソースにタグを追加すると、タグのタグキーとタグ値がタグポリシーの要件を満たしているかどうかがチェックされます。 タグのタグキーとタグ値がタグポリシーの要件を満たしている場合にのみ、リソースにタグを追加できます。
ベストプラクティス
非準拠タグのイベント前のインターセプトを有効にすると、リソースの運用が影響を受ける可能性があります。 運用環境で非準拠タグのイベント前インターセプトを有効にする前に、テストアカウントを使用してテストを実行することをお勧めします。
クラウドサービスの非準拠タグのイベント前傍受を有効にすると、他のクラウドサービスに影響を与える可能性があります。 たとえば、ECSインスタンスの非準拠タグのイベント前インターセプトを有効にした場合、関連するECSインスタンスに準拠タグが追加されていないため、Auto scalingまたはContainer Service For Kubernetes (ACK) でのリソーススケーリングが失敗する可能性があります。 非準拠タグのイベント前インターセプトを有効にする前に、関連サービスの要件を満たすタグ関連の操作を実行できることを確認してください。
手順
非準拠タグのイベント前のインターセプトを使用して、現在のアカウントまたはリソースディレクトリ内のメンバー内の非準拠タグ関連の操作をインターセプトできます。 この例では、リソースディレクトリの管理アカウントを使用して、リソースディレクトリモードのタグポリシー機能を有効にし、タグポリシーを作成します。 作成するタグポリシーには、リソースディレクトリ内のメンバーを使用して ECS インスタンスを作成する場合、コストセンタータグを ECS インスタンスに追加する必要があることを定義します。 コストセンタータグのタグキーはCostCenter
で、タグ値はBeijing
またはShanghai
です。 定義されたコストセンタータグがインスタンスに追加されている場合にのみ、ECSインスタンスを正常に作成できます。
セキュリティ上の理由から、リソースディレクトリの管理アカウント内に RAM ユーザーを作成し、RAM ユーザーに AdministratorAccess ポリシーをアタッチした上で、リソースディレクトリの管理者としてこの RAM ユーザーを使用することを推奨します。 RAMユーザーを使用して、次の操作を実行する必要があります。 RAMユーザーを作成し、RAMユーザーに権限を付与する方法については、「RAMユーザーの作成」および「RAMユーザーに権限を付与する」をご参照ください。
リソース管理コンソールにログインします。
リソースディレクトリモードのタグポリシー機能を有効にします。
詳細については、「タグポリシー機能の有効化」をご参照ください。
タグポリシーを作成します。
ポリシーライブラリページのリソースディレクトリタブで、タグポリシーの作成をクリックします。
[タグポリシーの作成] ページで、[ポリシー名] フィールドにポリシー名を入力します。
[ポリシーの説明] フィールドにポリシーの説明を入力します。
クイックモードタブのタグポリシーを設定します。
[ポリシーシナリオ] パラメーターとして、[指定したタグ値を持つタグをリソースに追加] を選択します。
[タグキー] フィールドに
[CostCenter]
と入力します。[許容されるタグ値の指定] フィールドに 1 つ以上のタグ値を入力します。
タグキーごとに、複数のタグ値を指定できます。 各タグ値を 1 行ずつ入力してください。 この例では、タグキーに
北京
と上海
の2つのタグ値が指定されています。[イベント前の傍受] を選択し、[リソースタイプの指定] をクリックします。
[イベント前傍受のスコープの指定] ダイアログボックスで、イベント前傍受のリスクに関するプロンプトメッセージを読み、リスクを受け入れ、[リソースタイプ] 列で
を選択し、[OK] をクリックします。
作成をクリックします。
タグポリシーをアタッチします。
[ポリシーライブラリ] ページの [リソースディレクトリ] タブに戻り、[ステップ] 3で作成したタグポリシーを見つけ、アクション列の添付をクリックします。
添付ダイアログボックスで、タグポリシーをアタッチするオブジェクトを選択し、OKをクリックします。
タグポリシーは、以下のいずれかの対象にアタッチできます。 テスト用に、タグポリシーをメンバーにアタッチできます。 テストが成功した場合は、タグポリシーを Root フォルダーまたは特定のフォルダーにアタッチできます。
Root フォルダー:タグポリシーを Root フォルダーにアタッチすると、アタッチされたタグポリシーはリソースディレクトリ内のすべてのメンバーに対して適用されます。
特定のフォルダー:タグポリシーを特定のフォルダーにアタッチすると、タグポリシーはフォルダー内のすべてのメンバーとそのサブフォルダーに対して適用されます。
特定のメンバー:タグポリシーを特定のメンバーにアタッチすると、アタッチされたタグポリシーはそのメンバーに対してのみ適用されます。
タグポリシーが有効かどうかを確認します。
ステップ4でタグポリシーがアタッチされているメンバーを使用して、Alibaba Cloud管理コンソールにログインします。
詳細については、「メンバーを使用したAlibaba Cloud管理コンソールへのログイン」をご参照ください。
メンバー内にECSインスタンスを作成し、タグポリシーが有効かどうかを確認します。
正常に作成される場合
ECSインスタンスの作成時に
CostCenter:Beijing
またはCostCenter:Shanghai
タグをECSインスタンスに追加すると、ECSインスタンスは正常に作成されます。作成に失敗する場合
既定では、非準拠タグのイベント前のインターセプトは、タグポリシーで定義されているタグに対してのみ有効になります。 以下のようなシナリオでは、ECS インスタンスの作成に失敗します。
ECS インスタンスにタグを追加する際に入力したタグキーまたはタグ値の文字ケースが、タグポリシーで定義されているタグキーまたはタグ値のケースと一致しない場合。 たとえば、
costCenter:beijing
は非準拠タグです。タグキー
CostCenter
をECSインスタンスに追加しますが、タグ値を追加しないか、非準拠のタグ値をECSインスタンスに追加します。
強力な検証機能を有効にしても、ECSインスタンスにタグを追加しないか、ECSインスタンスに他のタグを追加すると、ECSインスタンスの作成に失敗します。
エラーコード
エラーコード | サンプルエラーメッセージ | 説明 |
Forbidden.TagPolicy | The operation is failure, because the valid tag policy values of 'TagValue' are ["red","green","orange","blue","pink","white","black","grey"], but the value is "xxx". | タグ値が非準拠であり、リソースの作成に失敗します。 タグポリシーで定義されている |
The operation is failure, because the valid tag policy values of 'TagKey' are ["colorful"], but the value is "colorFul". | タグキーのケースは非準拠であり、リソースの作成に失敗します。 タグポリシーで定義されている | |
The operation is failure, because the tag policy keys ["color"] are necessary. | タグキーの |