タグの操作
タグを使用して整理し、利用コストを追跡し、リソースやサービスIDへのアクセスを管理することもできます。 関連するリソースにタグを付けておくと、リソース・リストからタグでフィルター操作を行うことによって、アカウント全体でそれらのリソースを表示できます。
アカウント内のすべてのタグのリストを表示するには、IBM Cloud® コンソールで 「管理」 > 「アカウント」 と進み、「タグ」 を選択します。
ユーザー・タグ を適用して、リソースとサービス ID を編成し、後で簡単に見つけることができます。 ユーザー・タグは、特定のチームの使用量またはコストの割り振りを識別するのにも役立ちます。 アクセス管理タグ を作成することで、IAM ポリシーを更新することなく、リソースおよびサービス ID へのアクセスを制御できます。
タグ・タイプ
タグには、サービス、ユーザー、アクセス管理の 3 種類があります。
- ユーザー・タグ
- ユーザー・タグは、アカウント内の許可ユーザーによってリソースまたはサービス ID に追加されます。 リソースにユーザータグを追加して、関連リソースの整理、追跡、コスト管理を行います。 一貫したタグ付けスキーマを使用して、どのリソースが特定のチームに関連付けられているかを識別すると、エクスポートした使用状況レポート内のコストを分析する際に、それらのタグでグループ化およびフィルタリングすることができます。
プロジェクトを使用して、複数のアカウントにわたってリソースを編成および追跡することを検討してください。 プロジェクトのデプロイによって作成されたリソースには、プロジェクト ID と構成 ID を使用してサービス・タグが自動的に付加されます。 これにより、関連リソースのタグ付けを視覚的に管理する必要がなくなります。
- サービス・タグ
- サービス・タグはサービスによって付加されます。 たとえリソース上のタグを管理する権限があっても、リソースにサービスタグを添付したり削除したりする権限はユーザーに与えられていません。
プロジェクトのデプロイによって作成されたリソースには、プロジェクト ID と構成 ID が自動的にタグ付けされます。これらの ID は、使用量レポートで確認できます。 プロジェクトを使用すると、プロジェクトの支出を追跡するのに役立ちます。 詳しくは、 プロジェクトの使用量と支出の追跡 を参照してください。
- アクセス管理タグ
- アクセス管理タグは、リソースへのアクセスを管理するために使用されます。 これらは、アクセス・ポリシーで使用するために事前に作成できます。アクセス・ポリシーは、アクセス管理タグが付加されているリソースへのアクセス権限を付与します。 アクセス管理タグを作成できるのはアカウント管理者のみであり、タグがアカウント内のどのリソースにも付加されていない場合にのみ削除できます。 リソース自体でアクセス管理タグをアタッチおよびデタッチできるのは、リソース管理者のみです。
タグ付けルール
タグは大文字と小文字を区別せず、大文字は小文字に変換され、タグの最大長は128文字である。 使用できる文字は、A から Z、0 から 9、スペース、下線、ハイフン、ピリオド、およびコロンです。 サポートされるアクセス管理タグの形式は key:value
のみです。 コロンを使用すると、タグは、env:dev
ペアのように、2 つの論理部分を分離するストリングにフォーマット設定されます。 コンマは、複数のタグを区切るために使用します。タグ名自体の中でコンマを使用することはできません。
タグはアカウント全体に表示され、地域間で複製できます。 タグは規制情報ではないため、個人情報 (名前、住所、電話番号、E メール・アドレス、その他の識別情報や専有情報など) を使用するタグを作成しないようにしてください。
サンプル・タグおよび構文
リソース、サービスID、アクセスポリシーを整理し管理するためにタグを付けることができます。 開発環境、プロジェクト、コンプライアンス、最適化を組織全体で調整できるように、key:value
のペアとしてタグを作成することを検討してください。 使用できるタグの例については、以下の表を参照してください。
タグ | 説明 |
---|---|
env:dev , env:test , env:stage , env:prod |
開発環境の識別や、開発環境に対するアクセス権限の管理に使用します |
project:lw-wizard , app:poc-app |
プロジェクトの識別や、プロジェクトに対するアクセス権限の管理に使用します |
dataresidency:germany , compliance:hipaa , compliance:pii |
コンプライアンス要件の定義に使用します |
schedule:24x7 , maxruntime:12days |
最適化を自動化するために使用します |
タグの作成
アクセス管理タグの作成 (コンソールを使用する場合)
個々のリソースまたはサービスIDにアクセス管理タグを添付する前に、まずそれらを作成する必要があります。 アクセス管理タグを作成するには、すべてのアカウント管理サービスの管理者ロールが必要です。
IBM Cloud® では、アカウントごとに最大 250 個のアクセス管理タグを使用できます。
- IBM Cloud® コンソールで 管理 > アカウント と進み、タグ を選択します。
- アクセス管理タグ をクリックします。
- タグの名前を入力し、「タグの作成」 をクリックします。 これらのタグは、リソースまたはサービス ID、およびスコープ・アクセス・ポリシーに付加する準備ができました。
次に、「 タグのアタッチとデタッチ」を参照してください。 詳しいチュートリアルについては 、「タグを使用したリソースへのアクセス制御 」を参照してください。
アクセス管理タグの作成 (CLI を使用する場合)
個々のリソースまたはサービスIDにアクセス管理タグを添付する前に、まずそれらを作成する必要があります。 アクセス管理タグを作成するには、すべてのアカウント管理サービスの管理者ロールが必要です。
IBM Cloud® では、アカウントごとに最大 250 個のアクセス管理タグを使用できます。
-
IBM Cloud CLI にログインします。 複数のアカウントを持っている場合、使用するアカウントを選択するように求めるプロンプトが出されます。
-r
フラグを使用してリージョンを指定していない場合、リージョンも選択しなければなりません。ibmcloud login
資格情報が拒否された場合、統合 ID を使用している可能性があります。 フェデレーテッド ID を使用してログインするには、
--sso
フラグを使用します。 詳しくは、フェデレーテッド ID を使用したログインを参照してください。IBM Cloud CLI を初めて使用する場合は、入門チュートリアルを参照してください。
-
ibmcloud resource tag-create
コマンドを入力して、アカウントでアクセス管理タグを作成します。 以下の例では、project:myproject
というタグを作成します。ibmcloud resource tag-create --tag-names project:myproject
詳しくは、ibmcloud resource
コマンドのリファレンスを参照してください。
次に、「 タグのアタッチとデタッチ」を参照してください。
アクセス管理タグの作成 (API を使用する場合)
個々のリソースまたはサービスIDにアクセス管理タグを添付する前に、まずそれらを作成する必要があります。 アクセス管理タグを作成するには、すべてのアカウント管理サービスの管理者ロールが必要です。
IBM Cloud® では、アカウントごとに最大 250 個のアクセス管理タグを使用できます。
次のサンプルリクエストで示されているように、 グローバル検索とタグ付け - タグ付け APIを呼び出すことで、プログラムからアクセス管理タグを作成することができます。 以下の例では、project:myproject
というタグを作成します。
curl -X POST -H "Authorization: {iam_token}" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{ "tag_names": ["project:myproject"] }' \
"tags.global-search-tagging.cloud.ibm.com/v3/tags?tag_type=access"
CreateTagOptions createTagOptions = new CreateTagOptions.Builder()
.addTagNames("project:myproject")
.tagType("access")
.build();
Response<CreateTagResults> response = service.createTag(createTagOptions).execute();
CreateTagResults createTagResults = response.getResult();
System.out.println(createTagResults);
const params = {
tagNames: ['project:myproject'],
tagType: 'access',
};
globalTaggingService.createTag(params)
.then(res => {
console.log(JSON.stringify(res.result, null, 2));
})
.catch(err => {
console.warn(err)
});
create_tag_results = global_tagging_service.create_tag(
tag_names=['project:myproject'],
tag_type='access').get_result()
print(json.dumps(create_tag_results, indent=2))
createTagOptions := globalTaggingService.NewCreateTagOptions(
[]string{"project:myproject"},
)
createTagOptions.SetTagType("access")
createTagResults, response, err := globalTaggingService.CreateTag(createTagOptions)
if err != nil {
panic(err)
}
b, _ := json.MarshalIndent(createTagResults, "", " ")
fmt.Println(string(b))
次に、「 タグのアタッチとデタッチ」を参照してください。
Terraform を使用したアクセス管理タグの作成
Terraform を使用してアクセス管理タグを作成する前に、以下を完了していることを確認してください。
- Terraform CLI をインストールし、Terraform 用の IBM Cloud プロバイダー・プラグインを構成します。 詳しくは、 IBM Cloud® のチュートリアルを参照してください。 このプラグインは、以下のタスクを実行するために使用される IBM Cloud API を抽象化します。
main.tf
という名前の Terraform 構成ファイルを作成します。 このファイルでは、 HashiCorp 構成言語を使用してリソースを定義します。 詳細については 、Terraformのドキュメントを参照してください。- 個々のリソースまたはサービスIDにアクセス管理タグを添付する前に、まずそれらを作成する必要があります。 アクセス管理タグを作成するには、すべてのアカウント管理サービスの管理者ロールが必要です。
IBM Cloud® では、アカウントごとに最大 250 個のアクセス管理タグを使用できます。
Terraform を使用してアクセス管理タグを作成するには、以下の手順を実行します。
-
main.tf
ファイルに引数を作成します。 リソース ID がibm_tag
であるibm
リソースにアクセス管理タグibm_satellite_location.location.crn
を作成する例を以下に示します。resource "ibm_resource" "ibm" { resource_id = ibm_satellite_location.location.crn tags = [ "ibm_tag" ] }
-
構成ファイルの作成が完了したら、Terraform CLI を初期化します。 詳しくは、 作業ディレクトリーの初期化を参照してください。
terraform init
-
main.tf
ファイルからリソースをプロビジョンします。 詳しくは、 Terraform を使用したインフラストラクチャーのプロビジョニングを参照してください。-
terraform plan
を実行して、提案されたアクションをプレビューするための Terraform 実行プランを生成します。terraform plan
-
terraform apply
を実行して、計画に定義されているリソースを作成します。terraform apply
-
販売店のタグ付け
すべてのタグがアカウントのすべてのメンバーに表示されます。 アクセス管理タグのポリシーを表示するには、ユーザーは少なくともタグ付けされたリソースに対して閲覧者としての役割が割り当てられている必要があります。 使用しているアカウントがさまざまな組織に関連付けられている場合 (例えば、販売店の場合) は、機密情報をタグに格納しないよう顧客に勧告することをお勧めします。
タグの可視性を制御するには、タグ付けガイドラインを回覧し、タグがアカウント全体で可視であることをユーザーに周知します。
顧客やアカウントの名前ではなくコードを使用し、タグに機密情報を入れないようにしてください。