Tags verwalten
Sie können über die Konsole, die Befehlszeilenschnittstelle (CLI) oder die API Tags an eine Ressourcen- oder Dienst-ID anhängen und diese wieder entfernen. Um eine Markierung an einer Ressourcen- oder Service-ID anzubringen oder zu entfernen, müssen die Benutzer über die entsprechende Berechtigung verfügen. Weitere Informationen enthält der Abschnitt Benutzern die Zugriffsberechtigung für das Tagging von Ressourcen erteilen.
Eine Ressource kann maximal 1000 Benutzer-Tags, 1000 Service-Tags und 250 Zugangs-Tags haben.
Einer Ressource Tags in der Konsole zuordnen und die Zuordnung von Tags zu einer Ressource in der Konsole aufheben
-
Klicken Sie in der Konsole IBM Cloud® auf das Symbol Navigationsmenü
> Ressourcenliste, um Ihre Ressourcenliste anzuzeigen.
-
Suchen Sie in der Liste nach der entsprechenden Ressource.
-
Um der Ressource einen Tag zuzuordnen, klicken Sie auf das Symbol Aktionen Symbol
> Tags hinzufügen.
-
Geben Sie den Namen des Tags ein und klicken Sie auf Speichern.
-
Um den Tag von der Ressource abzuhängen, klicken Sie auf das Symbol Bearbeiten
neben dem Tag in Ihrer Ressourcenliste.
Wenn Sie die Zuordnung eines Zugriffsverwaltungstags zu einer Ressource aufheben, wird auch die Zuordnung aller Zugriffsrichtlinien zu der betreffenden Ressource aufgehoben.
Einer Ressource Tags über die Befehlszeilenschnittstelle (CLI) zuordnen
Melden Sie sich bei der IBM Cloud®-Befehlszeilenschnittstelle an und wählen Sie Ihr Konto aus, um den entsprechenden Befehl der Befehlszeilenschnittstelle auszuführen.
Verwenden Sie den Befehl ibmcloud resource tag-attach, um einen Tag einer Ressource zuzuweisen. Die zulässigen Werte für
tag-type sind user für Benutzertags und access für Zugriffsverwaltungstags. Der Standardwert ist user. Das folgende Beispiel zeigt, wie ein Benutzer-Tag mit dem Namen MyTag an
eine Ressource mit dem Namen MyResource angehängt wird:
ibmcloud resource tag-attach --tag-names MyTag --resource-name 'MyResource'
Beispiel für die Zuordnung des Zugriffsverwaltungstags project:myproject zur Ressource MyResource:
ibmcloud resource tag-attach --tag-names project:myproject --resource-name 'MyResource' --tag-type access
Aktualisierung der Schlüssel:Wert-Tags einer Ressource mit Hilfe der CLI
Melden Sie sich bei der IBM Cloud®-Befehlszeilenschnittstelle an und wählen Sie Ihr Konto aus, um den entsprechenden Befehl der Befehlszeilenschnittstelle auszuführen.
Wenn Sie Tags im Format " key:value verwalten, können Sie den " value atomar aktualisieren, ohne vorher den " key:old-value abzutrennen und den neuen " key:new-value anzuhängen.
Um den Wert eines Tags im Format ' key:value zu aktualisieren, verwenden Sie den Befehl ' ibmcloud resource tag-attach mit der Option ' --update. Die zulässigen Werte für tag-type sind user für Benutzertags und access für Zugriffsverwaltungstags. Der Standardwert ist user. Das folgende Beispiel
zeigt, wie der Wert des Benutzertags " env in einer Ressource namens " MyResource auf " production " aktualisiert wird:
ibmcloud resource tag-attach --tag-names 'env:production' --resource-name 'MyResource' --update
Fügen Sie dem vorherigen Befehl die Option " tag-type hinzu, um ein Zutrittsmanagement-Tag zu aktualisieren:
ibmcloud resource tag-attach --tag-names 'env:production' --resource-name 'MyResource' --update --tag-type access
Ersetzen aller Tags einer Ressource durch einen neuen Satz von Tags mit Hilfe der CLI
Melden Sie sich bei der IBM Cloud®-Befehlszeilenschnittstelle an und wählen Sie Ihr Konto aus, um den entsprechenden Befehl der Befehlszeilenschnittstelle auszuführen.
Der Vorgang des Anhängens führt dazu, dass einer Ressource zusätzlich zu den bereits vorhandenen Tags weitere hinzugefügt werden. Es gibt Fälle, in denen Sie die vorhandenen Tags, die einer Ressource zugeordnet sind, durch einen neuen Satz ersetzen müssen.
Um alle Tags der Ressource durch einen neuen Satz von Tags zu ersetzen, verwenden Sie den Befehl ' ibmcloud resource tag-attach mit der Option ' --replace. Die zulässigen Werte für tag-type sind user für Benutzertags und access für Zugriffsverwaltungstags. Der Standardwert ist user. Das folgende Beispiel
zeigt, wie man die Tags " tag1, " tag2 und " tag3 auf eine Ressource mit dem Namen " MyResource setzt und alle bereits vorhandenen Tags entfernt:
ibmcloud resource tag-attach --tag-names 'tag1,tag2,tag3' --resource-name 'MyResource' --replace
Fügen Sie dem vorherigen Befehl die Option ' tag-type hinzu, um Tags für die Zugangsverwaltung zu setzen. Zum Beispiel, um alle Tags der Zugangsverwaltung durch den " compliance:hipaa zu ersetzen:
ibmcloud resource tag-attach --tag-names 'compliance:hipaa' --resource-name 'MyResource' --replace --tag-type access
Zuordnung von Tags zu einer Ressource über die Befehlszeilenschnittstelle (CLI) aufheben
Verwenden Sie den Befehl ibmcloud resource tag-detach, um die Zuordnung eines Tags zu einer Ressource aufzuheben. Das folgende
Beispiel zeigt, wie ein Benutzer-Tag mit dem Namen MyTag von einer Ressource mit dem Namen MyResource getrennt wird:
ibmcloud resource tag-detach --tag-names MyTag —resource-name 'MyResource'
Sie können den Platzhalter " * verwenden, um Tags im Format " key:value und alle Tags auszulösen. Wenn Sie beispielsweise das Tag " env unabhängig von seinem Wert von " MyResource abtrennen möchten, können Sie den folgenden Befehl ausführen:
ibmcloud resource tag-detach --tag-names 'env:*' —resource-name 'MyResource'
Um alle Tags von " MyResource zu entfernen, können Sie den folgenden Befehl verwenden:
ibmcloud resource tag-detach --tag-names '*' —resource-name 'MyResource'
Im folgenden Beispiel wird ein Zugriffsverwaltungs-Tag mit dem Namen project:myproject von einer Ressource mit dem Namen MyResource abgetrennt:
ibmcloud resource tag-detach --tag-names project:myproject —resource-name 'MyResource' --tag-type access
Weitere Informationen finden Sie in der Befehlsreferenz zum Befehl ibmcloud resource. Wenn Sie die Zuordnung eines Zugriffsverwaltungstags zu einer Ressource aufheben,
wird auch die Zuordnung aller Zugriffsrichtlinien zu der betreffenden Ressource aufgehoben.
Einer Ressource Tags über die Anwendungsprogrammierschnittstelle (API) zuordnen
Sie können Tags programmatisch zuordnen, indem Sie die Globale Suche und Tagging - Tagging API aufrufen, wie in den folgenden Beispielanfragen gezeigt. Die zulässigen
Werte für den Abfrageparameter tag_type sind user für Benutzertags und access für Zugriffsverwaltungstags. Das folgende Beispiel zeigt, wie ein Zugriffsverwaltungs-Tag mit dem Namen project:myproject an eine Dienstinstanz angehängt werden kann.
-
Suchen Sie mit dem folgenden Befehl nach der eindeutigen Kennung für Ihre Ressource:
curl -v -X POST -k --header 'Content-Type: application/json' --header 'Accept: application/json' --header 'Authorization: bearer <your IAM token>' -d '{"query": "name:myresource"}' 'https://api.global-search-tagging.cloud.ibm.com/v3/resources/search'SearchOptions searchOptions = new SearchOptions.Builder() .query("GST-sdk-*") .fields(new java.util.ArrayList<String>(java.util.Arrays.asList("crn"))) .searchCursor(searchCursor) .build(); Response<ScanResult> response = service.search(searchOptions).execute(); ScanResult scanResult = response.getResult(); System.out.println(scanResult);const params = { query: 'GST-sdk-*', fields: ['crn'], searchCursor: searchCursor, }; globalSearchService.search(params) .then(res => { console.log(JSON.stringify(res.result, null, 2)); }) .catch(err => { console.warn(err) });response = global_search_service.search(query='GST-sdk-*', fields=['crn']) scan_result = response.get_result() print(json.dumps(scan_result, indent=2))searchOptions := globalSearchService.NewSearchOptions() searchOptions.SetLimit(10) searchOptions.SetQuery("GST-sdk-*") searchOptions.SetFields([]string{"crn"}) scanResult, response, err := globalSearchService.Search(searchOptions) if err != nil { panic(err) } b, _ := json.MarshalIndent(scanResult, "", " ") fmt.Println(string(b)) -
Extrahieren Sie den Wert des Feldes für den Cloudressourcennamen (CRN) aus der Antwort.
{ "items": [ { "crn": "crn:v1:bluemix:public:cf:au-syd:a/000af2ea12345aabb1234567801fffab::cf-organization:aaaf4100-0011-2233-1111-11aaffee0011" } ], "limit": 1, "search_cursor": "e34535305339jg0rntt39nt3nu5tt9yn3u5ntt329nutt92u4ntt92u4t9u5gt2u5gt92u4n5g982458hg2t45hg9u42rg9t2u49gh285ght28h5t2835th85ht318h4tg9138h4tg91u3hgt931hg45918h34tg18h43hgt31hgt3rng0fnefvodnfvpojdpbojarfdbpojeafrbeafbjeqpnrqngrpqgrhbHNlIiwiY2FuVGFnIjoiZmFsc2UiLCJsdfshfksdhfkshfdkshfdkhkhewrkfehrkhkwhfkwrhkfhrgk3h5k3h45k3hk45hgk3hgk3hfk3h4k3hfkrfh3rkgh3krghk3rgh3kghk3hgk3hgk3rhgdWJsaWM6Y2Y6YXUtwriretoeiroteito4i5ot4i5oyti45ito4tio45ito45io5ogno5iogn5oin5oingoi5o5ngogo4ngo4ngro3jrong3gor3g3gno3jrgo3jrngo3ngro3g32ODQiXX0t" } -
Rufen Sie den folgenden Befehl auf:
curl -X POST -H "Authorization: {iam_token}" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "resources": [{ "resource_id": "crn:v1:bluemix:public:cloud-object-storage:global:a/59bcbfa6ea2f006b4ed7094c1a08dcdd:1a0ec336-f391-4091-a6fb-5e084a4c56f4::" }], "tag_names": ["project:myproject"] }' \ "https://tags.global-search-tagging.cloud.ibm.com/v3/tags/attach?tag_type=access"Resource resourceModel = new Resource.Builder().resourceId(resourceCRN).build(); AttachTagOptions attachTagOptions = new AttachTagOptions.Builder() .addResources(resourceModel) .addTagNames("project:myproject") .tagType("access") .build(); Response<TagResults> response = service.attachTag(attachTagOptions).execute(); TagResults tagResults = response.getResult(); System.out.println(tagResults.toString());const resourceModel = { resource_id: resourceCrn, }; const params = { resources: [resourceModel], tagNames: ["project:myproject"], tagType: 'access', }; globalTaggingService.attachTag(params) .then(res => { console.log(JSON.stringify(res.result, null, 2)); }) .catch(err => { console.warn(err) });resource_model = {'resource_id': resource_crn} tag_results = global_tagging_service.attach_tag( resources=[resource_model], tag_names=['project:myproject'], tag_type='access').get_result() print(json.dumps(tag_results, indent=2))resourceModel := &globaltaggingv1.Resource{ ResourceID: &resourceCRN, } attachTagOptions := globalTaggingService.NewAttachTagOptions( []globaltaggingv1.Resource{*resourceModel}, ) attachTagOptions.SetTagNames([]string{"project:myproject"}) attachTagOptions.SetTagType("access") tagResults, response, err := globalTaggingService.AttachTag(attachTagOptions) if err != nil { panic(err) } b, _ := json.MarshalIndent(tagResults, "", " ") fmt.Println(string(b))
Aktualisierung der Schlüssel:Wert-Tags einer Ressource
Wenn Sie Tags im Format " key:value verwalten, können Sie den Wert atomar aktualisieren, ohne zuerst den " key:old-value zu entfernen und den neuen " key:new-value anzuhängen. Verwenden
Sie dazu den booleschen Abfrageparameter ' update. Um also das Tag " env einer Ressource auf den Wert " env:qa_test zu aktualisieren, fügen Sie einfach den Abfrageparameter " update=true zu Ihrem API-Aufruf hinzu. Weitere Informationen zur Verwendung des Abfrageparameters " update finden Sie unter Globale Suche und Tagging - Tagging API.
Ersetzen aller Tags einer Ressource durch einen neuen Satz von Tags
Der Vorgang des Anhängens führt dazu, dass einer Ressource zusätzlich zu den bereits vorhandenen Tags weitere hinzugefügt werden. Es gibt Fälle, in denen Sie die vorhandenen Tags, die einer Ressource zugeordnet sind, durch einen neuen Satz
ersetzen müssen. Verwenden Sie dazu den booleschen Abfrageparameter ' replace. Um also alle Tags einer Ressource durch einen neuen Satz von Tags zu ersetzen, fügen Sie einfach den Abfrageparameter " replace=true zu Ihrem API-Aufruf hinzu. Weitere Informationen zur Verwendung des Abfrageparameters " replace finden Sie unter Globale Suche und Tagging - Tagging API.
Zuordnung von Tags zu einer Ressource über die Anwendungsprogrammierschnittstelle (API) aufheben
Sie können Markierungen programmatisch entfernen, indem Sie die API für globale Suche und Markierung - Markierung aufrufen, wie in den folgenden Beispielanfragen gezeigt.
Die zulässigen Werte für den Abfrageparameter tag_type sind user für Benutzertags und access für Zugriffsverwaltungstags. Das folgende Beispiel zeigt, wie ein Zugriffsverwaltungs-Tag, das project:myproject genannt wird, von einer Dienstinstanz getrennt werden kann:
-
Suchen Sie mit dem folgenden Befehl nach der eindeutigen Kennung für Ihre Ressource:
curl -v -X POST -k --header 'Content-Type: application/json' --header 'Accept: application/json' --header 'Authorization: bearer <your IAM token>' -d '{"query": "name:myresource"}' 'https://api.global-search-tagging.cloud.ibm.com/v3/resources/search'SearchOptions searchOptions = new SearchOptions.Builder() .query("GST-sdk-*") .fields(new java.util.ArrayList<String>(java.util.Arrays.asList("crn"))) .searchCursor(searchCursor) .build(); Response<ScanResult> response = service.search(searchOptions).execute(); ScanResult scanResult = response.getResult(); System.out.println(scanResult);const params = { query: 'GST-sdk-*', fields: ['crn'], searchCursor: searchCursor, }; globalSearchService.search(params) .then(res => { console.log(JSON.stringify(res.result, null, 2)); }) .catch(err => { console.warn(err) });response = global_search_service.search(query='GST-sdk-*', fields=['crn']) scan_result = response.get_result() print(json.dumps(scan_result, indent=2))searchOptions := globalSearchService.NewSearchOptions() searchOptions.SetLimit(10) searchOptions.SetQuery("GST-sdk-*") searchOptions.SetFields([]string{"crn"}) scanResult, response, err := globalSearchService.Search(searchOptions) if err != nil { panic(err) } b, _ := json.MarshalIndent(scanResult, "", " ") fmt.Println(string(b)) -
Extrahieren Sie den Wert des Feldes für den Cloudressourcennamen (CRN) aus der Antwort.
{ "items": [ { "crn": "crn:v1:bluemix:public:cf:au-syd:a/000af2ea12345aabb1234567801fffab::cf-organization:aaaf4100-0011-2233-1111-11aaffee0011" } ], "limit": 1, "search_cursor": "e34535305339jg0rntt39nt3nu5tt9yn3u5ntt329nutt92u4ntt92u4t9u5gt2u5gt92u4n5g982458hg2t45hg9u42rg9t2u49gh285ght28h5t2835th85ht318h4tg9138h4tg91u3hgt931hg45918h34tg18h43hgt31hgt3rng0fnefvodnfvpojdpbojarfdbpojeafrbeafbjeqpnrqngrpqgrhbHNlIiwiY2FuVGFnIjoiZmFsc2UiLCJsdfshfksdhfkshfdkshfdkhkhewrkfehrkhkwhfkwrhkfhrgk3h5k3h45k3hk45hgk3hgk3hfk3h4k3hfkrfh3rkgh3krghk3rgh3kghk3hgk3hgk3rhgdWJsaWM6Y2Y6YXUtwriretoeiroteito4i5ot4i5oyti45ito4tio45ito45io5ogno5iogn5oin5oingoi5o5ngogo4ngo4ngro3jrong3gor3g3gno3jrgo3jrngo3ngro3g32ODQiXX0t" } -
Rufen Sie den folgenden Befehl auf:
curl -X POST -H "Authorization: {iam_token}" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "resources": [{ "resource_id": "crn:v1:bluemix:public:cloud-object-storage:global:a/59bcbfa6ea2f006b4ed7094c1a08dcdd:1a0ec336-f391-4091-a6fb-5e084a4c56f4::" }], "tag_names": ["project:myproject"] }' \ "https://tags.global-search-tagging.cloud.ibm.com/v3/tags/detach?tag_type=access"Resource resourceModel = new Resource.Builder().resourceId(resourceCRN).build(); DetachTagOptions detachTagOptions = new DetachTagOptions.Builder() .addResources(resourceModel) .addTagNames("project:myproject") .tagType("access") .build(); Response<TagResults> response = service.detachTag(detachTagOptions).execute(); TagResults tagResults = response.getResult(); System.out.println(tagResults.toString());const resourceModel = { resource_id: resourceCrn, }; const params = { resources: [resourceModel], tagNames: ["project:myproject"], tagType: 'access', }; globalTaggingService.detachTag(params) .then(res => { console.log(JSON.stringify(res.result, null, 2)); }) .catch(err => { console.warn(err) });resource_model = {'resource_id': resource_crn} tag_results = global_tagging_service.detach_tag( resources=[resource_model], tag_names=['project:myproject'], tag_type='access').get_result() print(json.dumps(tag_results, indent=2))resourceModel := &globaltaggingv1.Resource{ ResourceID: &resourceCRN, } detachTagOptions := globalTaggingService.NewDetachTagOptions( []globaltaggingv1.Resource{*resourceModel}, ) detachTagOptions.SetTagNames([]string{"project:myproject"}) detachTagOptions.SetTagType("access") tagResults, response, err := globalTaggingService.DetachTag(detachTagOptions) if err != nil { panic(err) } b, _ := json.MarshalIndent(tagResults, "", " ") fmt.Println(string(b))Wenn Sie die Zuordnung eines Zugriffsverwaltungstags zu einer Ressource aufheben, wird auch die Zuordnung aller Zugriffsrichtlinien zu der betreffenden Ressource aufgehoben.
Lösen aller Schilder und Lösen von Schildern nach Schlüssel
Sie können den Platzhalter " * verwenden, um Tags im Format " key:value und alle Tags auszulösen. Wenn Sie beispielsweise das Tag " env unabhängig von seinem Wert von einer bestimmten Ressource
trennen möchten, können Sie den folgenden Befehl ausführen:
curl -X POST -H "Authorization: {iam_token}" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{ "resources": [{ "resource_id": "crn:v1:bluemix:public:cloud-object-storage:global:a/59bcbfa6ea2f006b4ed7094c1a08dcdd:1a0ec336-f391-4091-a6fb-5e084a4c56f4::" }], "tag_names": ["env:*"] }' \
"https://tags.global-search-tagging.cloud.ibm.com/v3/tags/detach?tag_type=access"
Wenn Sie alle Tags abtrennen möchten, verwenden Sie einfach ' * als tag_name oder als eindeutiges Element im Array ' tag_names wie im folgenden Befehl:
curl -X POST -H "Authorization: {iam_token}" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{ "resources": [{ "resource_id": "crn:v1:bluemix:public:cloud-object-storage:global:a/59bcbfa6ea2f006b4ed7094c1a08dcdd:1a0ec336-f391-4091-a6fb-5e084a4c56f4::" }], "tag_names": ["*"] }' \
"https://tags.global-search-tagging.cloud.ibm.com/v3/tags/detach?tag_type=access"
Tags mittels Terraform zu einer Ressource zuordnen
Bevor Sie mit Terraform Tags an eine Ressource anhängen können, müssen Sie folgende Schritte durchführen:
-
Installieren Sie das Terraform CLI und konfigurieren Sie das IBM Cloud Provider-Plugin für Terraform. Weitere Informationen finden Sie in der Anleitung zu den ersten Schritten mit Terraform auf IBM Cloud®. Das Plug-in abstrahiert die IBM Cloud APIs, die zur Erfüllung dieses Tasks verwendet werden.
-
Erstellen Sie eine Terraform-Konfigurationsdatei mit dem Namen
main.tf. In dieser Datei definieren Sie die Ressourcen mit Hilfe der HashiCorp Configuration Language. Weitere Informationen finden Sie in der Terraform-Dokumentation.
Gehen Sie wie folgt vor, um einer Ressource mit Hilfe von Terraform Tags zuzuordnen:
-
Bereiten Sie Ihre Terraform-Konfigurationsdatei (z.B. main.tf) vor, um ein Benutzer-Tag an eine bestehende Ressource in unserem Konto anzuhängen, indem Sie dem unter ibm_resource_tag ' {: external} dokumentierten Beispiel folgen.
-
Nachdem Sie Ihre Konfigurationsdatei erstellt haben, initialisieren Sie die Terraform CLI. Weitere Informationen finden Sie unter Initialisierung von Arbeitsverzeichnissen.
terraform init -
Bereitstellung der Ressourcen aus der Datei "
main.tf. Weitere Informationen finden Sie unter Bereitstellung der Infrastruktur mit Terraform.-
Führen Sie '
terraform planaus, um einen Terraform-Ausführungsplan zu erstellen, der eine Vorschau auf die vorgeschlagenen Aktionen enthält.terraform plan -
Führen Sie '
terraform applyaus, um die im Plan definierten Ressourcen zu erstellen.terraform apply
-
Anhängen von Tags an eine Dienst-ID in der Konsole
Führen Sie die folgenden Schritte aus, um einer Service-ID ein Tag hinzuzufügen:
- Wählen Sie, ob Sie ein Zutrittsmanagement-Tag oder ein Benutzer-Tag anhängen möchten.
- Wenn Sie ein Zutrittsmanagement-Tag anbringen möchten, müssen Sie dieses Tag zunächst erstellen. Weitere Informationen finden Sie unter Erstellen von Tags.
- Wenn Sie ein Benutzertag anhängen möchten, müssen Sie das Benutzertag nicht erstellen, um es an Ressourcen oder Service-IDs anzuhängen. Durch das Anbringen des Etiketts wird es ebenfalls erstellt.
- Gehen Sie zu Verwalten > Zugriff (IAM) > Dienst-IDs.
- Wählen Sie die Dienst-ID, die Sie markieren möchten.
- Klicken Sie auf Tag hinzufügen
.
- Geben Sie den Namen des Tags ein, und drücken Sie die Eingabetaste.
- Klicken Sie auf Speichern.
Wenn Sie eine Service-ID markieren, erhalten alle Richtlinien mit Ressourcen, die auf Ihr Zugriffsmanagement-Tag ausgerichtet sind, Zugriff auf diese Service-ID.
Anhängen von Tags an eine Service-ID mit Hilfe der CLI
Die zulässigen Werte für den Abfrageparameter tag_type sind user für Benutzertags und access für Zugriffsverwaltungstags. Das folgende Beispiel zeigt, wie ein Zugriffsverwaltungs-Tag mit dem Namen project:myproject
an eine Dienst-ID angehängt wird. Führen Sie die folgenden Schritte aus, um einer Service-ID ein Tag hinzuzufügen:
-
Wählen Sie, ob Sie ein Zutrittsmanagement-Tag oder ein Benutzer-Tag anhängen möchten.
- Wenn Sie ein Zutrittsmanagement-Tag anbringen möchten, müssen Sie dieses Tag zunächst erstellen. Weitere Informationen finden Sie unter Erstellen von Tags.
- Wenn Sie ein Benutzertag anhängen möchten, müssen Sie das Benutzertag nicht erstellen, um es an Ressourcen oder Service-IDs anzuhängen. Durch das Anbringen des Etiketts wird es ebenfalls erstellt.
-
Verwenden Sie den Befehl '
tag-attach', um die Markierung mit Ihrer Dienstkennung zu verbinden. Weitere Informationen finden Sie in der CLI-Befehlsreferenz.ibmcloud resource tag-attach --tag-names project:myproject --resource-name 'ServiceIdName' --tag-type access
Wenn Sie eine Service-ID markieren, erhalten alle Richtlinien mit Ressourcen, die auf Ihr Zugriffsmanagement-Tag ausgerichtet sind, Zugriff auf diese Service-ID.
Anhängen von Tags an eine Dienst-ID mit Hilfe der API
Führen Sie die folgenden Schritte aus, um einer Service-ID ein Tag hinzuzufügen:
-
Wählen Sie, ob Sie ein Zutrittsmanagement-Tag oder ein Benutzer-Tag anhängen möchten.
- Wenn Sie ein Zutrittsmanagement-Tag anbringen möchten, müssen Sie dieses Tag zunächst erstellen. Weitere Informationen finden Sie unter Erstellen von Tags.
- Wenn Sie ein Benutzertag anhängen möchten, müssen Sie das Benutzertag nicht erstellen, um es an Ressourcen oder Service-IDs anzuhängen. Durch das Anbringen des Etiketts wird es ebenfalls erstellt.
-
Finden Sie den eindeutigen Bezeichner für Ihre Service-ID, indem Sie die IAM Identity Services mit dem folgenden Befehl aufrufen:
curl -X GET 'https://iam.cloud.ibm.com/v1/serviceids?account_id=ACCOUNT_ID&name=My-serviceID' -H 'Authorization: Bearer TOKEN' -H 'Content-Type: application/json'ListServiceIdsOptions listServiceIdsOptions = new ListServiceIdsOptions.Builder() .accountId(accountId) .name(serviceIdName) .build(); Response<ServiceIdList> response = service.listServiceIds(listServiceIdsOptions).execute(); ServiceIdList serviceIdList = response.getResult(); System.out.println(serviceIdList);const params = { accountId: accountId, name: serviceIdName, }; try { const res = await iamIdentityService.listServiceIds(params) console.log(JSON.stringify(res.result, null, 2)); } catch (err) { console.warn(err); }service_id_list = iam_identity_service.list_service_ids( account_id=account_id, name=serviceid_name ).get_result() print(json.dumps(service_id_list, indent=2))listServiceIdsOptions := iamIdentityService.NewListServiceIdsOptions() listServiceIdsOptions.SetAccountID(accountID) listServiceIdsOptions.SetName(serviceIDName) serviceIDList, response, err := iamIdentityService.ListServiceIds(listServiceIdsOptions) if err != nil { panic(err) } b, _ := json.MarshalIndent(serviceIDList, "", " ") fmt.Println(string(b)) -
Extrahiert den Wert des Feldes
crnaus der Antwort.{ "offset": 0, "limit": 1, "first": { "href": "https://iam.cloud.ibm.com/v1/serviceids?account_id=accountId" }, "next": { "href": "https://iam.cloud.ibm.com/v1/serviceids?pagetoken=pageToken" }, "serviceids": { "id": "ServiceId-ee1103f8-e03b-4d02-a977-e540ebdffb16", "iam_id": "iam-ServiceId-ee1103f8-e03b-4d02-a977-e540ebdffb16", "entity_tag": "3-c46d2fd21b701adf7eb67cfd1a498fde", "crn": "crn:v1:bluemix:public:iam-identity::a/100abcde100a41abc100aza678abc0zz::serviceid:ServiceId-ee1103f8-e03b-4d02-a977-e540ebdffb16", "locked": false, "created_at": "2020-10-16T10:36+0000", "modified_at": "2020-10-16T10:36+0000", "account_id": "100abcde100a41abc100aza678abc0zz", "name": "serviceId-test", "description": "serviceId-test", "unique_instance_crns": [] } } -
Um das Tag an Ihre Service-ID anzuhängen, rufen Sie die Globale Suche und Tagging - Tagging API mit dem folgenden Befehl auf.
Ersetzen Sie
{SERVICEID_CRN}durch den Wert, den Sie im vorherigen Schritt extrahiert haben.Ersetzen Sie
(serviceidCRN)durch den Wert, den Sie im vorherigen Schritt extrahiert haben.Ersetzen Sie
serviceidCrndurch den Wert, den Sie im vorherigen Schritt extrahiert haben.Ersetzen Sie
serviceid_crndurch den Wert, den Sie im vorherigen Schritt extrahiert haben.Ersetzen Sie
&serviceidCRNdurch den Wert, den Sie im vorherigen Schritt extrahiert haben.curl -X POST --header "Authorization: Bearer {iam_token}" --header "Accept: application/json" --header "Content-Type: application/json" -d '{ "resources": [{ "resource_id": "{SERVICEID_CRN}" }], "tag_names": ["tag_test_1", "tag_test_2"] }' "{base_url}/v3/tags/attach?tag_type=user"Resource resourceModel = new Resource.Builder().resourceId(serviceidCRN).build(); AttachTagOptions attachTagOptions = new AttachTagOptions.Builder() .addResources(resourceModel) .addTagNames("tag_test_1") .addTagNames("tag_test_2") .build(); Response<TagResults> response = service.attachTag(attachTagOptions).execute(); TagResults tagResults = response.getResult(); System.out.println(tagResults.toString());const resourceModel = { resource_id: serviceidCrn, }; const params = { resources: [resourceModel], tagNames: ["tag_test_1", "tag_test_2"], tagType: 'user', }; globalTaggingService.attachTag(params) .then(res => { console.log(JSON.stringify(res.result, null, 2)); }) .catch(err => { console.warn(err) });resource_model = {'resource_id': serviceid_crn} tag_results = global_tagging_service.attach_tag( resources=[resource_model], tag_names=['tag_test_1', 'tag_test_2'], tag_type='user').get_result() print(json.dumps(tag_results, indent=2))resourceModel := &globaltaggingv1.Resource{ ResourceID: &serviceidCRN, } attachTagOptions := globalTaggingService.NewAttachTagOptions( []globaltaggingv1.Resource{*resourceModel}, ) attachTagOptions.SetTagNames([]string{"tag_test_1", "tag_test_2"}) attachTagOptions.SetTagType("user") tagResults, response, err := globalTaggingService.AttachTag(attachTagOptions) if err != nil { panic(err) } b, _ := json.MarshalIndent(tagResults, "", " ") fmt.Println(string(b))
Wenn Sie eine Service-ID markieren, erhalten alle Richtlinien mit Ressourcen, die auf Ihr Zugriffsmanagement-Tag ausgerichtet sind, Zugriff auf diese Service-ID.
Lösen von Markierungen an einer Dienst-ID in der Konsole
Führen Sie die folgenden Schritte aus, um ein Tag von einer Service-ID zu trennen:
- Gehen Sie zu Verwalten > Zugriff (IAM) > Dienst-IDs.
- Klicken Sie auf das Symbol Bearbeiten
in der Spalte Tags.
- Klicken Sie auf das Entfernen-Symbol
auf dem Tag, das Sie von der Service-ID trennen möchten.
- Klicken Sie auf Speichern.
Wenn Sie ein Zugriffsverwaltungs-Tag von einer Service-ID abtrennen, umfassen alle Richtlinien, die auf dieses Tag ausgerichtet sind, nicht mehr den Zugriff auf die Service-ID.
Wenn Sie ein Benutzer-Tag lösen, wird es automatisch aus dem Konto gelöscht, wenn es nicht mehr mit einer Ressource verbunden ist.
Entfernen von Tags an einer Service-ID mit Hilfe der CLI
Um eine Markierung an Ihrer Service-ID zu entfernen, verwenden Sie den Befehl ' tag-detach. Weitere Informationen finden Sie in der CLI-Befehlsreferenz.
ibmcloud resource tag-detach --tag-names project:myproject --resource-id 'ServiceIdName' --tag-type access
Wenn Sie ein Zugriffsverwaltungs-Tag von einer Service-ID abtrennen, haben alle Richtlinien, die für dieses Tag gelten, keinen Zugriff mehr auf die Service-ID.
Lösen von Tags für eine Dienst-ID mithilfe der API
Führen Sie die folgenden Schritte aus, um ein Tag von einer Service-ID zu trennen:
-
Finden Sie den eindeutigen Bezeichner für Ihre Service-ID, indem Sie die IAM Identity Services mit dem folgenden Befehl aufrufen:
curl -X GET 'https://iam.cloud.ibm.com/v1/serviceids?account_id=ACCOUNT_ID&name=My-serviceID' -H 'Authorization: Bearer TOKEN' -H 'Content-Type: application/json'ListServiceIdsOptions listServiceIdsOptions = new ListServiceIdsOptions.Builder() .accountId(accountId) .name(serviceIdName) .build(); Response<ServiceIdList> response = service.listServiceIds(listServiceIdsOptions).execute(); ServiceIdList serviceIdList = response.getResult(); System.out.println(serviceIdList);const params = { accountId: accountId, name: serviceIdName, }; try { const res = await iamIdentityService.listServiceIds(params) console.log(JSON.stringify(res.result, null, 2)); } catch (err) { console.warn(err); }service_id_list = iam_identity_service.list_service_ids( account_id=account_id, name=serviceid_name ).get_result() print(json.dumps(service_id_list, indent=2))listServiceIdsOptions := iamIdentityService.NewListServiceIdsOptions() listServiceIdsOptions.SetAccountID(accountID) listServiceIdsOptions.SetName(serviceIDName) serviceIDList, response, err := iamIdentityService.ListServiceIds(listServiceIdsOptions) if err != nil { panic(err) } b, _ := json.MarshalIndent(serviceIDList, "", " ") fmt.Println(string(b)) -
Extrahiert den Wert des Feldes
crnaus der Antwort.{ "offset": 0, "limit": 1, "first": { "href": "https://iam.cloud.ibm.com/v1/serviceids?account_id=accountId" }, "next": { "href": "https://iam.cloud.ibm.com/v1/serviceids?pagetoken=pageToken" }, "serviceids": { "id": "ServiceId-ee1103f8-e03b-4d02-a977-e540ebdffb16", "iam_id": "iam-ServiceId-ee1103f8-e03b-4d02-a977-e540ebdffb16", "entity_tag": "3-c46d2fd21b701adf7eb67cfd1a498fde", "crn": "crn:v1:bluemix:public:iam-identity::a/100abcde100a41abc100aza678abc0zz::serviceid:ServiceId-ee1103f8-e03b-4d02-a977-e540ebdffb16", "locked": false, "created_at": "2020-10-16T10:36+0000", "modified_at": "2020-10-16T10:36+0000", "account_id": "100abcde100a41abc100aza678abc0zz", "name": "serviceId-test", "description": "serviceId-test", "unique_instance_crns": [] } } -
Um die Markierung Ihrer Dienst-ID zu entfernen, rufen Sie die Globale Suche und Markierung - Tagging API mit dem folgenden Befehl auf.
Ersetzen Sie
{SERVICEID_CRN}durch den Wert, den Sie im vorherigen Schritt extrahiert haben.Ersetzen Sie
(serviceidCRN)durch den Wert, den Sie im vorherigen Schritt extrahiert haben.Ersetzen Sie
serviceidCrndurch den Wert, den Sie im vorherigen Schritt extrahiert haben.Ersetzen Sie
serviceid_crndurch den Wert, den Sie im vorherigen Schritt extrahiert haben.Ersetzen Sie
&serviceidCRNdurch den Wert, den Sie im vorherigen Schritt extrahiert haben.curl -X POST --header "Authorization: Bearer {iam_token}" --header "Accept: application/json" --header "Content-Type: application/json" -d '{ "resources": [{ "resource_id": "{SERVICEID_CRN}" }], "tag_names": ["tag_test_1", "tag_test_2"] }' "{base_url}/v3/tags/detach?tag_type=user"Resource resourceModel = new Resource.Builder().resourceId(serviceidCRN).build(); DetachTagOptions detachTagOptions = new DetachTagOptions.Builder() .addResources(resourceModel) .addTagNames("tag_test_1") .addTagNames("tag_test_2") .tagType("user") .build(); Response<TagResults> response = service.detachTag(detachTagOptions).execute(); TagResults tagResults = response.getResult(); System.out.println(tagResults.toString());const resourceModel = { resource_id: serviceidCrn, }; const params = { resources: [resourceModel], tagNames: ["tag_test_1", "tag_test_2"], tagType: 'user', }; globalTaggingService.detachTag(params) .then(res => { console.log(JSON.stringify(res.result, null, 2)); }) .catch(err => { console.warn(err) });resource_model = {'resource_id': serviceid_crn} tag_results = global_tagging_service.detach_tag( resources=[resource_model], tag_names=['tag_test_1', 'tag_test_2'], tag_type='user').get_result() print(json.dumps(tag_results, indent=2))resourceModel := &globaltaggingv1.Resource{ ResourceID: &serviceidCRN, } detachTagOptions := globalTaggingService.NewDetachTagOptions( []globaltaggingv1.Resource{*resourceModel}, ) detachTagOptions.SetTagNames([]string{"tag_test_1", "tag_test_2"}) detachTagOptions.SetTagType("user") tagResults, response, err := globalTaggingService.DetachTag(detachTagOptions) if err != nil { panic(err) } b, _ := json.MarshalIndent(tagResults, "", " ") fmt.Println(string(b))
Wenn Sie ein Zugriffsverwaltungs-Tag von einer Service-ID abtrennen, umfassen alle Richtlinien, die auf dieses Tag ausgerichtet sind, nicht mehr den Zugriff auf die Service-ID.
Nicht verwendete Tags aus dem Konto löschen
user tags werden automatisch gelöscht, wenn sie nicht mehr mit einer Ressource verbunden sind, so dass Sie dies nicht manuell tun müssen. Bei den Tags access management sollten Sie dies jedoch tun.
Bevor Sie ein Tag löschen können, müssen Sie es aus allen Ressourcen und Service-IDs entfernen. Falls Sie den Tag dennoch nicht löschen können, ist er möglicherweise einer Ressource zugeordnet, für deren Anzeige Sie nicht berechtigt sind oder die zurückgefordert wurde. Ein und dasselbe Tag kann von verschiedenen Benutzern desselben Abrechnungskontos an mehrere Ressourcen und Service-IDs angehängt werden.
Falls eine zurückgeforderte Ressource das Löschen von Tags blockiert, können Sie entweder die zurückgeforderte Ressource vollständig löschen oder innerhalb von 7 Tagen nach dem Löschen wiederherstellen. Nicht alle Ressourcen können wiederhergestellt werden. Sie können mithilfe der IBM Cloud®-Befehlszeilenschnittstelle den Prozess zur Rückforderung bestimmter Ressourcen verwalten. Weitere Informationen bietet der Abschnitt Ressourcenrückforderungen verwenden.
Wenn Sie einen Zugriffsverwaltungstag aus dem Konto löschen, werden alle gegebenenfalls zugeordneten IAM-Richtlinien ebenfalls gelöscht.
Nicht verwendete Tgs in der Konsole löschen
- Wenn Sie die vollständige Liste mit Tags in Ihrem Konto anzeigen möchten, rufen Sie Verwalten > Konto in der IBM Cloud®-Konsole auf und wählen Sie Tags aus.
- Klicken Sie auf das Aktionen-Symbol
> Löschen neben dem nicht unbenutzten Tag.
Nicht verwendete Tags über die Befehlszeilenschnittstelle (CLI) löschen
Melden Sie sich bei der IBM Cloud®-Befehlszeilenschnittstelle an und wählen Sie Ihr Konto aus, um den Befehl ibmcloud resource tag-delete zum Löschen eines oder
mehrerer der nicht verwendeten Tags auszuführen.
-
Im folgenden Beispiel wird der Benutzertag
MyTaggelöscht:ibmcloud resource tag-delete --tag-name MyTag
Nicht verwendete Tags über die Anwendungsprogrammierschnittstelle (API) löschen
Sie können Tags löschen, indem Sie die Globale Suche und Tagging - Tagging API aufrufen, wie in den folgenden Beispielanfragen gezeigt. Die zulässigen Werte für den
Abfrageparameter tag_type sind user für Benutzertags und access für Zugriffsverwaltungstags.
Tag löschen
Löschen des Zugriffsverwaltungstags project:myproject aus dem Konto:
curl -X DELETE -H "Authorization: {iam_token}" \
-H "Accept: application/json" \
"https://tags.global-search-tagging.cloud.ibm.com/v3/tags/project:myproject?tag_type=access"
DeleteTagOptions deleteTagOptions = new DeleteTagOptions.Builder()
.tagName("env:example-access-tag")
.tagType("access")
.build();
Response<DeleteTagResults> response = service.deleteTag(deleteTagOptions).execute();
DeleteTagResults deleteTagResults = response.getResult();
System.out.println(deleteTagResults.toString());
const params = {
tagName: 'env:example-access-tag',
tagType: 'access',
};
globalTaggingService.deleteTag(params)
.then(res => {
console.log(JSON.stringify(res.result, null, 2));
})
.catch(err => {
console.warn(err)
});
delete_tag_results = global_tagging_service.delete_tag(
tag_name='env:example-access-tag',
tag_type='access').get_result()
print(json.dumps(delete_tag_results, indent=2))
deleteTagOptions := globalTaggingService.NewDeleteTagOptions("env:example-access-tag")
deleteTagOptions.SetTagType("access")
deleteTagResults, response, err := globalTaggingService.DeleteTag(deleteTagOptions)
if err != nil {
panic(err)
}
b, _ := json.MarshalIndent(deleteTagResults, "", " ")
fmt.Println(string(b))
Alle nicht verwendeten Tags löschen
Löschen aller nicht verwendeten Zugriffsverwaltungstags aus dem Konto:
curl -X DELETE -H "Authorization: {iam_token}" \
-H "Accept: application/json" \
"https://tags.global-search-tagging.cloud.ibm.com//v3/tags?tag_type=access"
DeleteTagAllOptions deleteTagAllOptions = new DeleteTagAllOptions.Builder()
.tagType("user")
.build();
Response<DeleteTagsResult> response = service.deleteTagAll(deleteTagAllOptions).execute();
DeleteTagsResult deleteTagsResult = response.getResult();
System.out.println(deleteTagsResult.toString());
const params = {
tagType: 'access',
};
globalTaggingService.deleteTagAll(params)
.then(res => {
console.log(JSON.stringify(res.result, null, 2));
})
.catch(err => {
console.warn(err)
});
delete_tags_result = global_tagging_service.delete_tag_all(
tag_type='user').get_result()
print(json.dumps(delete_tags_result, indent=2))
deleteTagAllOptions := globalTaggingService.NewDeleteTagAllOptions()
deleteTagAllOptions.SetTagType("user")
deleteTagsResult, response, err := globalTaggingService.DeleteTagAll(deleteTagAllOptions)
if err != nil {
panic(err)
}
b, _ := json.MarshalIndent(deleteTagsResult, "", " ")
fmt.Println(string(b))