Cloud Service
OCI Tagging
リソースを横断してメタデータで分類・整理。OCI Tagging はコスト配賦・アクセス制御・自動化のキーとなるタグを一元管理する。AWS の Tags(タグ)に相当する。
- 1.定義済みタグと自由形式タグでリソースにメタデータを付与する。
- 2.タグ名前空間とコスト追跡タグでガバナンスとコスト配賦を支える。
- 3.タグはIAMポリシーや既定タグ・自動付与でも活用できる。
解決する課題
リソースが増えるほど「これは誰の・どのプロジェクトの・どの環境のものか」が分からなくなり、コスト配賦も棚卸しも難しくなります。OCI Tagging は リソースにキーと値のメタデータ(タグ)を付与して横断的に分類・整理する仕組み により、この課題を解決します。
- コストをプロジェクト・チーム・環境(本番/検証)別に配賦したい
- 大量のリソースを用途やオーナー単位で検索・棚卸ししたい
- タグを条件にアクセス制御(IAM)や自動化を効かせたい
- 部署ごとに乱立する自由なタグの表記ゆれを抑え、統制したい
- リソース作成時に必須タグを自動で付与・強制したい
AWS で言えばリソースに付ける Tags(タグ) に相当しますが、OCI では**タグ名前空間(Tag Namespace)と定義済みタグ(Defined Tag)**でスキーマを中央管理し、ガバナンスを効かせやすい点が特徴です。
主要概念と用語
- 自由形式タグ(Free-form Tag): 名前空間に属さない、単純なキーと値のペア。手軽に付けられるがスキーマ管理がなく表記ゆれが起きやすい
- 定義済みタグ(Defined Tag): タグ名前空間に属するキーを使うタグ。キーの定義・許可値・権限を中央管理でき、ガバナンス用途の本命
- タグ名前空間(Tag Namespace): 定義済みタグのキー(タグキー定義)をまとめるコンテナ。コンパートメントに作成し、IAM で誰がそのタグを使えるかを制御する
- タグキー定義(Tag Key Definition): 名前空間内のキー。**許可値リスト(Validator)**を設定すれば、決められた値以外を弾ける
- コスト追跡タグ(Cost-Tracking Tag): 定義済みタグに「コスト追跡」属性を付けたもの。Cost Analysis や Budgets でグルーピング・絞り込みできるようになる
- 既定タグ(Tag Default): コンパートメントに設定すると、そこに作成されるリソースへタグを自動付与する仕組み。必須タグの強制に使う
- タグ変数(Tag Variable): 既定タグなどで値に差し込める変数。リソース作成者やタイムスタンプなどを動的に埋め込む
- タグベースのアクセス制御: IAM ポリシーの条件でタグを参照し、タグの値に応じて操作可否を分ける(ABAC 的な制御)
仕様・制限・クォータ
- タグには自由形式タグと定義済みタグの2種類があり、ガバナンスが要る用途は定義済みタグを使う
- タグ名前空間はコンパートメントに作成し、リージョン横断でテナンシ内のリソースに付与できる
- タグキーには**許可値(Validator)**を設定でき、列挙した値以外の入力を拒否してデータの一貫性を保てる
- コスト追跡タグにできるのは定義済みタグのみで、自由形式タグはコスト配賦のキーにできない
- **既定タグ(Tag Default)**は、適用後に作成されるリソースに付与される。過去に作成済みのリソースには遡及しない
- 名前空間・タグキー・1リソースあたりのタグ数などには**テナンシ単位の上限(クォータ)**があり、必要に応じてサービスリクエストで引き上げる
- 名前空間やタグキーは、使われている間はいったん「リタイア(Retire)」して新規利用を止めてから削除する流れになる(誤削除の防止)
試行的なメモ程度なら自由形式タグでも十分ですが、コスト配賦・アクセス制御・自動化のキーにするタグは定義済みタグにしてください。名前空間と許可値でスキーマを固めることで、表記ゆれや打ち間違いによる「集計が合わない」事故を防げます。
内部の仕組み
タグはリソースに付随するメタデータとして保存され、コスト集計・検索・IAM 評価など複数の機能から参照されます。
- 定義済みタグは「名前空間.キー = 値」という構造を持ち、名前空間とキーが中央のスキーマとして管理される。リソース側にはその参照と値が記録される
- コスト追跡属性を付けたタグは、課金エンジンの集計時にグルーピングのキーとして扱われ、Cost Analysis や Budgets で内訳・絞り込みに使える
- 既定タグは、対象コンパートメントでリソースが作成される瞬間に評価され、設定されたタグ(およびタグ変数で解決した動的値)を自動的に付与する
- IAM ポリシー評価では、リクエスト対象や操作者に紐づくタグを条件として参照でき、タグの値に応じてアクセスを許可・拒否できる
- タグの付与・変更操作は Audit に記録され、いつ誰がどのタグを変えたかを追跡できる
既定タグ(Tag Default)を設定しても、すでに存在するリソースには自動で付きません。必須タグを後から導入する場合は、棚卸しして既存リソースへ一括でタグを付ける作業(CLI/Terraform など)が別途必要です。「設定したのに古いリソースに付いていない」のは仕様です。
設計パターン / ベストプラクティス
- 命名規約を先に決める:
Operations.CostCenter・Operations.Project・Operations.Environmentのように名前空間とキーを標準化し、ドキュメント化する - 許可値で表記ゆれを封じる: 環境タグを「prod/stg/dev」など列挙値に限定し、自由入力による集計ブレを防ぐ
- コスト配賦タグは定義済みで早期に整備: コスト追跡は付与前のコストを遡れないため、プロジェクト開始時にタグ設計を固める
- 必須タグは既定タグで強制: チーム用コンパートメントに既定タグを設定し、作成時に必須メタデータを自動付与する
- IaC でタグ付けを徹底: Terraform 等でリソース定義にタグを必ず含め、手作業の付け忘れをなくす
- タグの権限を分離: 名前空間ごとに IAM で「このタグを使える人」を絞り、勝手なタグ付与・改変を防ぐ
- 棚卸しはタグ検索で: オーナー不明・タグなしのリソースを定期的に洗い出し、放置リソースを是正する
運用・監視
- コストがタグ別に割れない: コスト追跡属性が付いた定義済みタグを使っているか、リソースに実際にタグが付いているか、タグ付け前の期間ではないかを確認する
- タグなしリソースが多い: 既定タグの設定漏れや IaC でのタグ付け漏れを疑い、検索で抽出して是正する
- 誰がタグを変えたか追う: タグの付与・変更は OCI Audit に記録されるため、ガバナンス上の追跡に使う
- 名前空間を消せない: 使用中のタグはいきなり削除できない。リタイア(Retire)→ 利用停止 → 削除の順で進める
- 値が弾かれる: 許可値(Validator)を設定したキーは列挙値以外を拒否する。意図した値が許可リストにあるか確認する
- 権限不足: タグを使えない・名前空間を作れない場合は、後述の IAM ポリシー(タグ名前空間の利用・管理権限)を点検する
コスト
OCI Tagging の機能そのものには、基本的に追加料金がかからないのが一般的です。タグの付与・名前空間の管理・コスト追跡属性の利用などに対して、別途の課金は発生しないのが通例です。
タグの価値はむしろコスト最適化を支える基盤にあります。コスト追跡タグでプロジェクトやチーム単位の内訳を可視化し、無駄なリソースを特定して削減する、という形で本体リソース費用の最適化に貢献します。
| 費目 | 考え方 | 最適化のヒント |
|---|---|---|
| タグ機能の利用 | 名前空間・タグ付与・コスト追跡は基本的に追加料金なし | コストを気にせずタグ統制を徹底できる |
| コスト配賦 | コスト追跡タグで内訳を可視化 | プロジェクト・チーム別に無駄を特定して削減 |
| 放置リソース | タグなしの孤児リソースが課金され続ける | タグ検索で棚卸しし不要分を停止・削除 |
| 運用工数 | 表記ゆれの修正や手作業棚卸しが負担 | 許可値と既定タグで自動化し工数を抑える |
セキュリティ
- タグ名前空間の権限を分離: 名前空間ごとに IAM ポリシーで「使える人・管理できる人」を絞り、勝手なタグ付与や改変を防ぐ
- タグベースのアクセス制御(ABAC 的運用): IAM の条件でタグの値を参照し、たとえば特定の環境タグが付いたリソースだけ操作を許す、といった制御を組める
- 機微な値をタグに入れない: タグの値は広く参照され得るため、パスワードやトークンなどの機密情報を値に書かない。秘密は Vault(Secrets)で管理する
- 既定タグで統制を効かせる: 必須メタデータを既定タグで自動付与し、付け忘れによるガバナンスの穴を塞ぐ
- 変更を Audit で監査: タグの付与・変更は OCI Audit に残るため、誰がいつ分類を変えたかを追跡できる
タグ名前空間の管理権限を広く配りすぎると、コスト配賦やアクセス制御の前提となるタグが勝手に書き換えられ、集計や権限判定が壊れます。名前空間の管理は限定したグループに絞り、利用者には「使う」権限だけを与えてください。機密値をタグに入れるのも厳禁です。
関連サービス・比較
OCI Tagging は、コスト配賦では Cost Analysis / Budgets、アクセス制御では IAM、操作監査では Audit と密接に連携します。相当する AWS のタグ機能と並べると位置づけが明確になります。
| 観点 | OCI Tagging | AWS Tags |
|---|---|---|
| 基本のタグ | 自由形式タグ | ユーザー定義タグ |
| 統制されたタグ | 定義済みタグ(名前空間でスキーマ管理) | タグポリシー(Organizations)で統制 |
| コスト配賦 | コスト追跡タグ | コスト配分タグ |
| 値の検証 | 許可値(Validator)で列挙制限 | タグポリシーで許可値を制御 |
| 自動付与 | 既定タグ(Tag Default) | リソース作成時のタグ付け/自動化 |
| アクセス制御 | タグを条件にした IAM ポリシー | タグベースの IAM(ABAC) |
なお OCI 内では、配賦結果の可視化に Cost Analysis / Budgets、操作の監査に Audit、リソース作成時のタグ強制に Tag Default や Terraform を組み合わせて使います。
ハンズオン / CLI例
oci iam tag-namespace と oci iam tag コマンドで名前空間とタグキーを作り、リソースにタグを付与できます。次はコスト追跡用の名前空間とキーを作成し、許可値を設定する例です。
# 1) タグ名前空間を作成する(定義済みタグの入れ物)
oci iam tag-namespace create \
--compartment-id "$COMPARTMENT_OCID" \
--name "Operations" \
--description "Cost allocation and governance tags"
# 2) コスト追跡を有効にしたタグキーを作成する
# is-cost-tracking を true にすると Cost Analysis / Budgets で使える
oci iam tag create \
--tag-namespace-id "$TAG_NAMESPACE_OCID" \
--name "CostCenter" \
--description "Cost center identifier" \
--is-cost-tracking true
# 3) 環境タグに許可値(Validator)を設定し、表記ゆれを防ぐ
oci iam tag create \
--tag-namespace-id "$TAG_NAMESPACE_OCID" \
--name "Environment" \
--description "Deployment environment" \
--validator '{"validatorType":"ENUM","values":["prod","stg","dev"]}'
# 4) 既存リソース(例: インスタンス)に定義済みタグを付与する
oci compute instance update \
--instance-id "$INSTANCE_OCID" \
--defined-tags '{"Operations":{"CostCenter":"1001","Environment":"prod"}}'
# 5) 作成済みの名前空間とタグキーを一覧で確認する
oci iam tag-namespace list --compartment-id "$COMPARTMENT_OCID" --output table
oci iam tag list --tag-namespace-id "$TAG_NAMESPACE_OCID" --output table
OCI Service
OCI Taggingを実務で読む
TL;DRは入口です。実際に選ぶ・使う段階では、何を解決するか、何と比較するか、導入後にどこで詰まるかまで見る必要があります。
解決すること
管理・ガバナンス
比較で見る軸
クラウド: OCI / カテゴリ: 管理・ガバナンス / 難易度: basic
導入後に効く点
タグ名前空間とコスト追跡タグでガバナンスとコスト配賦を支える。
先に潰すリスク
サービス単体ではなく、権限、ネットワーク、監視、課金、バックアップを含めて設計する必要がある。
- クラウド
- OCI
- カテゴリ
- 管理・ガバナンス
- 難易度
- basic
- 関連資格
- —
- 設計柱
- cost / operational / security
判断チェックリスト
- 自社の用途が「管理・ガバナンス / cost」に近いか確認する。
- 強みである「定義済みタグと自由形式タグでリソースにメタデータを付与する。」が本当に評価軸になるか確認する。
- 注意点の「サービス単体ではなく、権限、ネットワーク、監視、課金、バックアップを含めて設計する必要がある。」を運用で吸収できるか確認する。
- 公開値や仕様値は、対象プラン・対象機種・対象リージョンまで確認する。
- 既存システム、ID、ネットワーク、監視、バックアップとの接続方法を先に洗い出す。
- 小さく試してから、本番移行、権限設計、障害時手順、コスト監視を決める。