タグポリシーを使用して、リソースに準拠していないタグのイベント前のインターセプトを実装し、タグ関連の操作を標準化できます。
シナリオ
シナリオ1: リソースを作成するときに非準拠タグを阻止する
非準拠タグが存在する状況
状況1: リソースを作成するときに、タグポリシーでキーが定義されているタグをリソースに追加します。 ただし、タグの値はタグポリシーで定義されていません。
状況2: リソースを作成するとき、タグポリシーで定義されているタグキーはリソースに追加されません。
デフォルト機能と強力な検証機能
デフォルト機能: 非準拠タグのイベント前のインターセプトは、状況1でのみトリガーされます。
既定の機能をサポートするリソースタイプとAPI操作の詳細については、概要トピックの [タグポリシーをサポートするサービス] セクションの [既定の機能をサポートするAPI操作] 列を参照してください。
強力な検証機能: この機能を有効にすると、状況1と状況2の両方で、非準拠タグのイベント前のインターセプトがトリガーされます。 リソースディレクトリの場合、この機能は有効になった後、リソースディレクトリ内のすべてのメンバーに対して有効になります。
強力な検証機能は、リソース管理コンソールの [ポリシーライブラリ] ページで有効にできます。 この機能が必要ない場合は、いつでも無効にすることができます。
強力な検証機能をサポートするリソースタイプとAPI操作の詳細については、「概要」トピックの [タグポリシーをサポートするサービス] セクションの [非準拠タグのイベント前のインターセプトの強力な検証をサポートするAPI操作] 列を参照してください。
例
Elastic Compute Service (ECS) インスタンスに対してCostCenter:Beijing
タグが定義されたタグポリシーが作成され、Alibaba Cloudアカウントにアタッチされます。 Alibaba Cloudアカウント内にECSインスタンスを作成する場合、インスタンスにタグを追加する必要があります。 それ以外の場合、インスタンスの作成に失敗します。 デフォルト機能を使用する場合、システムはインスタンスの作成時にタグキーCostCenter
のみに基づいてインスタンスのタグコンプライアンスをチェックします。 チェックは、タグキーのケースの機密性に関係なくトリガーできます。 CostCenter:Beijing
などのタグがインスタンスに追加された場合、タグは準拠しており、インスタンスを正常に作成できます。 costcenter:Shanghai
などのタグがインスタンスに追加された場合、タグは非準拠であり、インスタンスを作成できません。 強力な検証機能を有効にすると、インスタンスの作成時にタグキーCostCenter
がインスタンスに追加されているかどうかも確認されます。 CostCenter:Beijing
タグがインスタンスに追加されていない場合、インスタンスは作成されません。
シナリオ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つのタグ値が指定されています。[イベント前の傍受] を選択し、[リソースタイプの指定] をクリックします。
[イベント前傍受のスコープの指定] ダイアログボックスで、イベント前傍受のリスクに関するプロンプトメッセージを読み、リスクを受け入れ、リソースタイプとしてECSインスタンスを選択し、[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. | タグキーの |