Zugriff auf Ressourcen verwalten
Um die Zugriffsberechtigungen für Benutzer oder Service-IDs mithilfe von IAM-Richtlinien zu verwalten, müssen Sie der Kontoeigner sein oder Ihnen müssen die richtigen Zugriffsberechtigungen zugewiesen sein. Um für Benutzer Zugriffsberechtigungen für Ressourcen zuzuweisen, müssen Sie ein Administrator für alle Services im Konto sein oder der für den entsprechenden Service zugewiesene Administrator. Um einer Service-ID Zugriffsberechtigungen zuzuweisen, müssen Sie der Administrator des Identitätsservice oder der entsprechenden Service-ID sein.
Zugriffsberechtigungen für Ressourcen zuweisen
Für das Zuweisen des Zugriffs auf Ressourcen stehen zwei Richtlinientypen zur Verfügung:
- Zugriff auf Ressourcen im Konto, einschließlich der Option für Zugriff auf nur einen Typ oder auf alle Typen.
- Zugriff auf Ressourcen innerhalb einer Ressourcengruppe, einschließlich der Option für nur eine Ressource oder alle Ressourcen
Wenn Sie eine vorhandene Richtlinie für eine Service-ID löschen oder bearbeiten, die derzeit verwendet wird, kann dies zu einer Dienstunterbrechung führen.
Wenn Sie einem Benutzer uneingeschränkten Administratorzugriff für die Ausführung von Kontoverwaltungstasks (wie das Einladen und Entfernen von Benutzern, das Anzeigen von Abrechnung und Nutzung, das Verwalten von Service-IDs, das Verwalten von Zugriffsgruppen, das Verwalten des Benutzerzugriffs und des Zugriffs auf alle IAM-fähigen Ressourcen) erteilen wollen, müssen Sie dem Benutzer die folgenden Zugriffsberechtigungen zuweisen:
- Eine Richtlinie für Identitäts- und Zugriffs-aktivierte Dienste mit den Rollen "Administrator" und "Manager".
- Eine Richtlinie mit der Administratorrolle für alle Kontoverwaltungsdienste.
Sie können auch Tags für die Zugangsverwaltung festlegen, um den Zugang zu verwalten. Weitere Informationen finden Sie unter Zugriff auf Ressourcen mithilfe von Tags steuern.
Benutzer mit der Administratorrolle für Kontoverwaltungsservices können den Zugriff anderer Benutzer ändern und Benutzer aus der Ressource entfernen, einschließlich anderer Benutzer mit der Administratorrolle.
Zugriffsberechtigungen für Ressourcen in der Konsole zuweisen
Führen Sie die folgenden Schritte aus, um Zugriffsberechtigungen für eine einzelne Ressource im Konto oder für alle Ressourcen im Konto zuzuweisen:
- Klicken Sie in der IBM Cloud-Konsole auf Verwalten > Zugriff (IAM), wählen Sie Benutzer oder Verwalten > Zugriff (IAM) und wählen Sie Service-IDs, je nachdem, welcher Identität Sie Zugriff zuweisen möchten.
- Klicken Sie auf das Symbol Aktionen
> Zugriff zuweisen für den Benutzer oder die Service-ID, dem bzw. der Sie Zugriff zuweisen wollen.
- Wählen Sie eine Gruppe von Dienstleistungen oder eine einzelne Dienstleistung aus. Klicken Sie anschließend auf Weiter.
- Legen Sie den Geltungsbereich des Zugriffs auf alle Ressourcen im Konto fest oder wählen Sie bestimmte Ressourcen auf der Basis von Attributen aus.
- Klicken Sie auf Weiter.
- Wählen Sie eine beliebige Kombination von zuzuweisenden Rollen aus und klicken Sie auf Überprüfen.
- Klicken Sie auf Hinzufügen, um die Richtlinienkonfiguration zu Ihrer Richtlinienzusammenfassung hinzuzufügen.
- (Optional) Fügen Sie Benutzer oder Service-IDs zu Zugriffsgruppen hinzu.
- Wählen Sie die Zugriffsgruppen aus, zu denen der Benutzer oder die Service-ID gehören soll.
- Klicken Sie auf Hinzufügen.
- Klicken Sie auf Zuweisen.
Wenn ein Benutzer über keine Rolle für die Ressourcengruppe verfügt, die die Ressource enthält, wird die Ressource dem betreffenden Benutzer zwar angezeigt, der Benutzer kann jedoch nicht über die Ressourcenlistenseite im Konto auf die Ressourcen zugreifen, um mit ihnen zu arbeiten. Weisen Sie die Rolle eines Anzeigeberechtigten oder eine Rolle mit umfassenderen Berechtigungen für die Ressourcengruppe selbst zu, um sicherzustellen, dass der Benutzer auf die Ressource zugreifen kann.
Für ausgewählte Konten sind erhöhte Policenlimits für Service-IDs verfügbar. Um die Vorteile der erhöhten Richtlinienlimits zu nutzen, weisen Sie den Zugang zu den Diensten Event Streams oder IBM Cloud Object Storage zu. Außerdem müssen Sie die Zugriffsrichtlinien auf eine bestimmte Serviceinstanz, einen Ressourcentyp und eine Ressourcen-ID anwenden.
Zugriffsberechtigungen innerhalb einer Ressourcengruppe in der Konsole zuweisen
Um Zugriffsberechtigungen für alle Ressourcen einer Ressourcengruppe oder für einen einzelnen Service in einer Ressourcengruppe zuzuweisen, müssen Sie die folgenden Schritte ausführen:
- Klicken Sie in der IBM Cloud-Konsole auf Verwalten > Zugriff (IAM) und wählen Sie Benutzer oder Service-IDs aus, abhängig davon, welcher Identität Sie Zugriff zuweisen wollen.
- Klicken Sie auf die Benutzer- oder Service-ID, der Sie Zugriff zuweisen möchten, und klicken Sie dann auf Zugriff > Zugriff zuweisen.
- Wählen Sie eine Gruppe von Dienstleistungen oder eine einzelne Dienstleistung aus. Klicken Sie anschließend auf Weiter.
- Legen Sie den Geltungsbereich des Zugriffs auf Spezifische Ressourcen fest. Wählen Sie den Attributtyp Ressourcengruppe aus und geben Sie eine Ressourcengruppe ein.
- Klicken Sie auf Weiter.
- Wählen Sie die Zugriffsrollen für die Verwaltung der Ressourcengruppe aus. Klicken Sie anschließend auf Weiter.
- Wählen Sie eine beliebige Kombination von zuzuweisenden Rollen aus und klicken Sie auf Überprüfen.
- Klicken Sie auf Hinzufügen, um die Richtlinienkonfiguration zu Ihrer Richtlinienzusammenfassung hinzuzufügen.
- Klicken Sie auf Zuweisen.
Zuweisen von Zugriffsrechten zur Verwaltung einer Ressourcengruppe
Sie können Zugriff zuweisen, um eine Ressourcengruppe anzuzeigen oder zu verwalten, ohne Servicezugriff zuzuweisen.
Als Administrator können Sie eine Zugriffsgruppe mit der Rolle "Anzeigeberechtigter" für alle Ressourcengruppen erstellen. Auf diese Weise müssen Sie beim Zuweisen von Zugriff auf Serviceressourcen keine zusätzlichen Richtlinien zum Anzeigen von Ressourcengruppen erstellen. Die Rolle 'Anzeigeberechtigter' für eine Ressourcengruppe ist erforderlich, damit ein Benutzer eine Serviceinstanz in dieser Ressourcengruppe erstellen kann.
Führen Sie die folgenden Schritte aus, um Zugriff auf eine Ressourcengruppe ohne Servicezugriff zuzuweisen:
- Klicken Sie in der IBM Cloud-Konsole auf Verwalten > Zugriff (IAM) und wählen Sie Benutzer oder Service-IDs aus, abhängig davon, welcher Identität Sie Zugriff zuweisen wollen.
- Klicken Sie auf die Benutzer- oder Service-ID, der Sie Zugriff zuweisen möchten, und klicken Sie dann auf Zugriff > Zugriff zuweisen.
- Nur Ressourcengruppe auswählen.
- Wählen Sie "Bedingung hinzufügen ".
- Wählen Sie den Attributtyp Ressourcengruppe aus und geben Sie eine Ressourcengruppe ein.
- Klicken Sie auf Weiter.
- Wählen Sie die Zugriffsrollen zum Anzeigen oder Verwalten der Ressourcengruppe aus. Klicken Sie anschließend auf Überprüfen.
- Klicken Sie auf Hinzufügen, um die Richtlinienkonfiguration zu Ihrer Richtlinienzusammenfassung hinzuzufügen.
- Klicken Sie auf Zuweisen.
Sie können diesen Richtlinientyp nach Bedarf für jede verfügbare Ressourcengruppe im Account wiederholen, um den Zugriff für die Verwaltung aller Ressourcengruppen im Account zuzuweisen.
Zugriffsberechtigungen für Ressourcen über die Befehlszeilenschnittstelle (CLI) zuweisen
-
Melden Sie sich bei der IBM Cloud®-Befehlszeilenschnittstelle an. Wenn Sie über mehrere Konten verfügen, werden Sie dazu aufgefordert, das zu verwendende Konto auszuwählen. Wenn Sie keine Region mit dem Flag
-r
angeben, müssen Sie auch eine Region auswählen.ibmcloud login
Wenn die Berechtigungsnachweise zurückgewiesen werden, verwenden Sie möglicherweise eine föderierte ID. Wenn Sie sich mit einer föderierten ID anmelden möchten, verwenden Sie das Flag
--sso
. Weitere Details finden Sie in Mit föderierter ID anmelden.Wenn Sie die IBM Cloud-Befehlszeilenschnittstelle zum ersten Mal verwenden, finden Sie im Lernprogramm zur Einführung nützliche Informationen.
-
Erstellen Sie eine Zugriffsrichtlinie und ordnen Sie sie einem Benutzer oder einer Service-ID zu, indem Sie den Befehl
ibmcloud iam user-policy-create
verwenden.- In diesem Beispiel wird der Zugriff auf eine Einzelressource im Konto mit der Rolle
Administrator
für alle Instanzen des Servicesample-service
zugewiesen:
ibmcloud iam user-policy-create name@example.com --roles Administrator --service-name sample-service
- In diesem Beispiel wird Zugriff auf Alle Kontoverwaltungsservices mit der Rolle
Administrator
zugewiesen:
ibmcloud iam service-policy-create name@example.com --roles Administrator --account-management
- In diesem Beispiel wird der Zugriff auf Alle Services mit aktiviertem Identity and Access Management mit der Rolle
Administrator
zugewiesen:
ibmcloud iam service-policy-create name@example.com --roles Administrator --attributes serviceType=service
- In diesem Beispiel wird Zugriff auf Alle IAM-Kontoverwaltungsservices mit der Rolle
Administrator
zugewiesen:
ibmcloud iam service-policy-create name@example.com --roles Administrator --attributes service_group_id=IAM
Für ausgewählte Konten sind erhöhte Policenlimits für Service-IDs verfügbar. Um die Vorteile der erhöhten Richtlinienlimits zu nutzen, weisen Sie den Zugang zu den Diensten Event Streams oder IBM Cloud Object Storage zu. Außerdem müssen Sie die Zugriffsrichtlinien auf eine bestimmte Serviceinstanz, einen Ressourcentyp und eine Ressourcen-ID anwenden.
- Dieses Beispiel weist den Zugriff auf Object Storage mit der Rolle
Manager
zu. Der Zugriff wird auf eine bestimmte Dienstinstanz, einen Ressourcentyp und eine Ressourcen-ID beschränkt:
ibmcloud iam service-policy-create SERVICE_ID service-name cloud-object-storage --service-instance SERVICE_INSTANCE_GUID --resource-type RESOURCE_TYPE --resource RESOURCE --roles Manager
- In diesem Beispiel wird der Zugriff auf eine Einzelressource im Konto mit der Rolle
Zugriffsberechtigungen innerhalb einer Ressourcengruppe über die Befehlszeilenschnittstelle (CLI) zuweisen
Geben Sie den Befehl ibmcloud user-policy-create
ein, um Zugriffsberechtigungen für alle Ressourcen in einer Ressourcengruppe
oder nur für einen einzelnen Service in einer Ressourcengruppe zuzuweisen. In diesem Beispiel wird name@example.com
die Rolle eines Operator
für die Ressourcengruppe mit der ID dda27e49d2a1efca58083a01dfde18f6
zugewiesen:
ibmcloud iam user-policy-create name@example.com --roles Operator --resource-type resource-group --resource dda27e49d2a1efca58083a01dfde18f6
Geben Sie den Befehl ibmcloud iam service-policy-create
ein, um Zugriffsberechtigungen für alle Ressourcen in einer Ressourcengruppe
oder nur für einen einzelnen Service in einer Ressourcengruppe zuzuweisen. In diesem Beispiel wird dem Service test
die Rolle eines Administrator
für die Ressourcengruppe sample-resource-group
zugewiesen:
ibmcloud iam service-policy-create test --roles Administrator --resource-group-name sample-resource-group
Zuweisen von Zugriffsrechten zur Verwaltung einer Ressourcengruppe über die Befehlszeilenschnittstelle
Sie können Zugriff zuweisen, um eine Ressourcengruppe anzuzeigen oder zu verwalten, ohne Servicezugriff zuzuweisen.
Als Administrator können Sie eine Zugriffsgruppe mit der Rolle "Anzeigeberechtigter" für alle Ressourcengruppen erstellen. Auf diese Weise müssen Sie beim Zuweisen von Zugriff auf Serviceressourcen keine zusätzlichen Richtlinien zum Anzeigen von Ressourcengruppen erstellen. Die Rolle 'Anzeigeberechtigter' für eine Ressourcengruppe ist erforderlich, damit ein Benutzer eine Serviceinstanz in dieser Ressourcengruppe erstellen kann.
Im folgenden Beispiel wird eine Richtlinie für den Viewer einer bestimmten Ressourcengruppe erstellt:
iam user-policy-create name@example.com --roles Viewer --resource-type resource-group --resource fec6c95e6a0a44c5bcca138bfe5a1f9e
Im folgenden Beispiel wird eine Richtlinie für den Viewer aller Ressourcengruppen im Konto erstellt.
iam user-policy-create name@example.com --roles Viewer --resource-type resource-group
Im folgenden Beispiel wird eine Richtlinie für den Viewer aller Ressourcen in einer Ressourcengruppe erstellt.
iam user-policy-create name@example.com --roles Viewer --resource-group-name satellite-test
Zugriffsberechtigungen für Ressourcen über die Anwendungsprogrammierschnittstelle (API) zuweisen
Sie können den Zugriff auf eine einzelne Ressource im Konto oder den Zugriff auf eine Liste von Ressourcen im Konto zuweisen, indem Sie die IBM Cloud® Identity and Access Management(IAM)Policy Management API aufrufen, wie in der folgenden Beispielanfrage dargestellt. In dieser Beispielanforderung wird die Zugriffsberechtigung der Rolle eines Administrator
für eine Serviceinstanz zugewiesen:
curl -X POST 'https://iam.cloud.ibm.com/v1/policies' -H 'Authorization: Bearer $TOKEN' \
-H 'Content-Type: application/json' -d '{
"type": "access",
"description": "Administrator role for SERVICE_NAME's RESOURCE_NAME",
"subjects": [
{
"attributes": [
{
"name": "iam_id",
"value": "IBMid-123453user"
}
]
}'
],
"roles":[
{
"role_id": "crn:v1:bluemix:public:iam::::role:Administrator"
}
],
"resources":[
{
"attributes": [
{
"name": "accountId",
"value": "$ACCOUNT_ID"
},
{
"name": "serviceName",
"value": "$SERVICE_NAME"
},
{
"name": "resource",
"value": "$RESOURCE_NAME",
"operator": "stringEquals"
}
]
}
]
}'
SubjectAttribute subjectAttribute = new SubjectAttribute.Builder()
.name("iam_id")
.value("EXAMPLE_USER_ID")
.build();
PolicySubject policySubjects = new PolicySubject.Builder()
.addAttributes(subjectAttribute)
.build();
PolicyRole policyRoles = new PolicyRole.Builder()
.roleId("crn:v1:bluemix:public:iam::::role:Administrator")
.build();
ResourceAttribute accountIdResourceAttribute = new ResourceAttribute.Builder()
.name("accountId")
.value(exampleAccountId)
.operator("stringEquals")
.build();
ResourceAttribute serviceNameResourceAttribute = new ResourceAttribute.Builder()
.name("serviceName")
.value("service")
.operator("stringEquals")
.build();
PolicyResource policyResources = new PolicyResource.Builder()
.addAttributes(accountIdResourceAttribute)
.addAttributes(serviceNameResourceAttribute)
.build();
CreatePolicyOptions options = new CreatePolicyOptions.Builder()
.type("access")
.subjects(Arrays.asList(policySubjects))
.roles(Arrays.asList(policyRoles))
.resources(Arrays.asList(policyResources))
.build();
Response<Policy> response = service.createPolicy(options).execute();
Policy policy = response.getResult();
System.out.println(policy);
const policySubjects = [
{
attributes: [
{
name: 'iam_id',
value: 'exampleUserId',
},
],
},
];
const policyRoles = [
{
role_id: 'crn:v1:bluemix:public:iam::::role:Administrator',
},
];
const accountIdResourceAttribute = {
name: 'accountId',
value: exampleAccountId,
operator: 'stringEquals',
};
const serviceNameResourceAttribute = {
name: 'serviceName',
value: 'service',
operator: 'stringEquals',
};
const policyResources = [
{
attributes: [accountIdResourceAttribute, serviceNameResourceAttribute]
},
];
const params = {
type: 'access',
subjects: policySubjects,
roles: policyRoles,
resources: policyResources,
};
iamPolicyManagementService.createPolicy(params)
.then(res => {
examplePolicyId = res.result.id;
console.log(JSON.stringify(res.result, null, 2));
})
.catch(err => {
console.warn(err)
});
policy_subjects = PolicySubject(
attributes=[SubjectAttribute(name='iam_id', value='example_user_id')])
policy_roles = PolicyRole(
role_id='crn:v1:bluemix:public:iam::::role:Administrator')
account_id_resource_attribute = ResourceAttribute(
name='accountId', value=example_account_id)
service_name_resource_attribute = ResourceAttribute(
name='serviceName', value='service')
policy_resources = PolicyResource(
attributes=[account_id_resource_attribute,
service_name_resource_attribute])
policy = iam_policy_management_service.create_policy(
type='access',
subjects=[policy_subjects],
roles=[policy_roles],
resources=[policy_resources]
).get_result()
print(json.dumps(policy, indent=2))
subjectAttribute := &iampolicymanagementv1.SubjectAttribute{
Name: core.StringPtr("iam_id"),
Value: core.StringPtr("exampleUserID"),
}
policySubjects := &iampolicymanagementv1.PolicySubject{
Attributes: []iampolicymanagementv1.SubjectAttribute{*subjectAttribute},
}
policyRoles := &iampolicymanagementv1.PolicyRole{
RoleID: core.StringPtr("crn:v1:bluemix:public:iam::::role:Administrator"),
}
accountIDResourceAttribute := &iampolicymanagementv1.ResourceAttribute{
Name: core.StringPtr("accountId"),
Value: core.StringPtr(exampleAccountID),
Operator: core.StringPtr("stringEquals"),
}
serviceNameResourceAttribute := &iampolicymanagementv1.ResourceAttribute{
Name: core.StringPtr("serviceName"),
Value: core.StringPtr("service"),
Operator: core.StringPtr("stringEquals"),
}
policyResources := &iampolicymanagementv1.PolicyResource{
Attributes: []iampolicymanagementv1.ResourceAttribute{
*accountIDResourceAttribute, *serviceNameResourceAttribute}
}
options := iamPolicyManagementService.NewCreatePolicyOptions(
"access",
[]iampolicymanagementv1.PolicySubject{*policySubjects},
[]iampolicymanagementv1.PolicyRole{*policyRoles},
[]iampolicymanagementv1.PolicyResource{*policyResources},
)
policy, response, err := iamPolicyManagementService.CreatePolicy(options)
if err != nil {
panic(err)
}
b, _ := json.MarshalIndent(policy, "", " ")
fmt.Println(string(b))
Sie können einer Gruppe von Services Zugriff zuweisen. Um Zugriff auf Alle Services mit aktiviertem Identity and Access Management zuzuweisen, geben Sie serviceType
für das Attribut name
an und verwenden
Sie die value
service
. Um Zugriff auf Alle Kontoverwaltungsservices zuzuweisen, geben Sie serviceType
für das Attribut name
an und verwenden Sie value
platform_service
.
Um Zugriff auf die Untergruppe der Kontoverwaltungsservices Alle IAM-Kontoverwaltungsservices zuzuweisen, geben Sie service_group_id
für das Attribut name
an und verwenden Sie value
IAM
.
Für ausgewählte Konten sind erhöhte Policenlimits für Service-IDs verfügbar. Um die Vorteile der erhöhten Richtlinienlimits zu nutzen, weisen Sie den Zugang zu den Diensten Event Streams oder IBM Cloud Object Storage zu. Außerdem müssen Sie die Zugriffsrichtlinien auf eine bestimmte Serviceinstanz, einen Ressourcentyp und eine Ressourcen-ID anwenden.
Die folgende Beispielanfrage gibt einer Rolle mit der Service-ID Reader
Zugriff auf eine Instanz von Object Storage. Der Zugriff wird auf eine bestimmte Dienstinstanz, einen Ressourcentyp und eine Ressourcen-ID beschränkt:
curl -X POST 'https://iam.cloud.ibm.com/v1/policies' -H 'Authorization: Bearer $TOKEN' -H 'Content-Type: application/json' -d '{
"type": "access",
"description": "Reader role for SERVICE_NAME's RESOURCE_NAME",
"subjects": [
{
"attributes": [
{
"name": "iam_id",
"value": "$SERVICE_ID"
}
]
}'
],
"roles":[
{
"role_id": "crn:v1:bluemix:public:iam::::serviceRole:Reader"
}
],
"resources":[
{
"attributes": [
{
"name": "accountId",
"value": "$ACCOUNT_ID"
},
{
"name": "serviceName",
"value": "cloud-object-storage"
},,
{
"name": "serviceInstance",
"value": "$INSTANCE_ID",
"operator": "stringEquals"
}
{
"name": "resourceType",
"value": "$RESOURCE_TYPE",
"operator": "stringEquals"
},
{
"name": "resource",
"value": "$RESOURCE_NAME",
"operator": "stringEquals"
}
]
}
]
}'
Zugriffsberechtigungen innerhalb einer Ressourcengruppe über die Anwendungsprogrammierschnittstelle (API) zuweisen
Diese Aktion ist nur über die Benutzerschnittstelle oder die Befehlszeilenschnittstelle möglich. Die entsprechenden Schritte sind in den Anweisungen für die Benutzerschnittstelle bzw. die Befehlszeilenschnittstelle beschrieben.
Vorbereitende Schritte
Bevor Sie mit Terraform Zugriff auf Ressourcen zuweisen können, stellen Sie sicher, dass Sie Folgendes ausgeführt haben:
- Installieren Sie die Terraform-CLI und konfigurieren Sie das Provider-Plug-in IBM Cloud für Terraform. Weitere Informationen finden Sie im Lernprogramm zur Einführung in 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 Ressourcen mithilfe der Konfigurationssprache HashiCorp. Weitere Informationen finden Sie in der Terraform-Dokumentation.
Zugriff auf Ressourcen mit Terraform zuweisen
Gehen Sie wie folgt vor, um mithilfe von Terraform Zugriff auf Ressourcen zuzuweisen:
-
Weisen Sie Zugriff auf Ressourcen zu, indem Sie das Ressourcenargument
ibm_iam_user_policy
in Ihrer Dateimain.tf
verwenden.Im folgenden Beispiel wird die Rolle
test@in.ibm.com
Viewer
für alle Instanzen deskms
-Service mit ibm_iam_user_policy angegeben.resource "ibm_iam_user_policy" "policy" { ibm_id = "test@in.ibm.com" roles = ["Viewer"] resources { service = "kms" } }
Für ausgewählte Konten sind erhöhte Policenlimits für Service-IDs verfügbar. Um die Vorteile der erhöhten Richtlinienlimits zu nutzen, weisen Sie den Zugang zu den Diensten Event Streams oder IBM Cloud Object Storage zu. Außerdem müssen Sie die Zugriffsrichtlinien auf eine bestimmte Serviceinstanz, einen Ressourcentyp und eine Ressourcen-ID anwenden.
Das folgende Beispiel gibt einer Service-ID der Rolle
Reader
Zugriff auf eine Instanz von Object Storage, indem es ibm_iam_user_policy verwendet. Der Zugriff wird auf eine bestimmte Dienstinstanz, einen Ressourcentyp und eine Ressourcen-ID beschränkt:resource "ibm_iam_service_policy" "policy" { iam_service_id = "$SERVICE_ID" roles = ["Reader"] resources { service = "cloud_object_storage" resource_instance_id = "$SERVICE_INSTANCE_ID" resource_type = "$RESOURCE_TYPE" resource = "$RESOURCE" } }
Sie können den Namen des Service, dem Sie Zugriff zuweisen wollen, in der Option
service
angeben. Weitere Informationen finden Sie in den Argumentreferenzdetails auf der Terraform-Seite Identity and Access Management(IAM ). -
Nachdem Sie Ihre Konfigurationsdatei erstellt haben, initialisieren Sie die Terraform-CLI. Weitere Informationen finden Sie unter Arbeitsverzeichnisse initialisieren.
terraform init
-
Stellen Sie die Ressourcen aus der Datei
main.tf
bereit. Weitere Informationen finden Sie unter Infrastruktur mit Terraform bereitstellen.-
Führen Sie
terraform plan
aus, um einen Terraform-Ausführungsplan für die Vorschau der vorgeschlagenen Aktionen zu generieren.terraform plan
-
Führen Sie
terraform apply
aus, um die Ressourcen zu erstellen, die im Plan definiert sind.terraform apply
-
Zugriffsberechtigungen innerhalb einer Ressourcengruppe mithilfe von Terraform zuweisen
Führen Sie die folgenden Schritte aus, um Zugriff innerhalb einer Ressourcengruppe mithilfe von Terraform zuzuweisen.
-
Weisen Sie Zugriff in einer Ressourcengruppe zu, indem Sie die Ressource
ibm_iam_user_policy
in Ihrer Dateimain.tf
verwenden.Im folgenden Beispiel wird die Rolle
test@in.ibm.com
Viewer
für die Ressourcengruppe mit der IDdata.ibm_resource_group.group.id
mithilfe von ibm_iam_user_policy angegeben.data "ibm_resource_group" "group" { name = "default" } resource "ibm_iam_user_policy" "policy" { ibm_id = "test@in.ibm.com" roles = ["Viewer"] resources { service = "containers-kubernetes" resource_group_id = data.ibm_resource_group.group.id } }
Sie können die ID der Ressourcengruppe angeben, auf die Sie Zugriff gewähren möchten, und zwar über die Option
resource_group_id
. Weitere Informationen finden Sie in den Argumentreferenzdetails auf der Terraform-Seite Identity and Access Management(IAM ). -
Nachdem Sie Ihre Konfigurationsdatei erstellt haben, initialisieren Sie die Terraform-CLI. Weitere Informationen finden Sie unter Arbeitsverzeichnisse initialisieren.
terraform init
-
Stellen Sie die Ressourcen aus der Datei
main.tf
bereit. Weitere Informationen finden Sie unter Infrastruktur mit Terraform bereitstellen.-
Führen Sie
terraform plan
aus, um einen Terraform-Ausführungsplan für die Vorschau der vorgeschlagenen Aktionen zu generieren.terraform plan
-
Führen Sie
terraform apply
aus, um die Ressourcen zu erstellen, die im Plan definiert sind.terraform apply
-
Zugriffsberechtigungen in der Konsole entfernen
Es kann bis zu 10 Minuten dauern, bis das Entfernen von Zugriffsberechtigungen für einen Benutzer oder eine Service-ID wirksam wird.
- Klicken Sie in der IBM Cloud-Konsole auf Verwalten > Zugriff (IAM) und wählen Sie Benutzer oder Service-IDs aus, abhängig davon, welche Identität Sie verwalten wollen.
- Wählen Sie den Namen des Benutzers oder die Service-ID aus, für den bzw. die Sie den Zugriff entfernen möchten.
- Klicken Sie auf der Registerkarte " Zugang " auf das Symbol " Aktionen "
> Entfernen in der Zeile der Richtlinie, die Sie entfernen möchten.
- Überprüfen Sie die Richtliniendetails, die entfernt werden sollen, und klicken Sie dann zur Bestätigung auf Entfernen.
Sie können Benutzer und Service-IDs auch aus Zugriffsgruppen entfernen, indem Sie das Kontrollkästchen für den Benutzer oder die Service-IDs auswählen, der bzw. die entfernt werden soll, und auf Entfernen klicken. Klicken Sie dann erneut auf Entfernen, um die Löschanforderung zu bestätigen.
Zugriffsberechtigungen über die Befehlszeilenschnittstelle entfernen
Wenn Sie eine Benutzerrichtlinie über die Befehlszeilenschnittstelle entfernen möchten, können Sie den Befehl ibmcloud iam user-policy-delete
verwenden.
ibmcloud iam user-policy-delete USER_ID POLICY_ID [-f, --force]
Wenn Sie die Richtlinie einer Service-ID mithilfe der Befehlszeilenschnittstelle entfernen möchten, können Sie den Befehl ibmcloud iam service-policy-delete
verwenden.
ibmcloud iam service-policy-delete SERVICE_ID POLICY_ID [-f, --force]
Zugriffsberechtigungen über die Anwendungsprogrammierschnittstelle (API) entfernen
Löschen Sie eine Richtlinie, indem Sie eine Richtlinien-ID angeben und die IBM Cloud® Identity and Access Management(IAM)Policy Management API aufrufen, wie in der folgenden Beispielanfrage dargestellt:
curl -X DELETE 'https://iam.cloud.ibm.com/v1/policies/$POLICY_ID' \
-H 'Authorization: Bearer $TOKEN' \
-H 'Content-Type: application/json'
DeletePolicyOptions options = new DeletePolicyOptions.Builder()
.policyId(examplePolicyId)
.build();
service.deletePolicy(options).execute();
const params = {
policyId: examplePolicyId,
};
iamPolicyManagementService.deletePolicy(params)
.then(res => {
console.log(JSON.stringify(res, null, 2));
})
.catch(err => {
console.warn(err)
});
response = iam_policy_management_service.delete_policy(
policy_id=example_policy_id
).get_result()
print(json.dumps(response, indent=2))
options := iamPolicyManagementService.NewDeletePolicyOptions(
examplePolicyID,
)
response, err := iamPolicyManagementService.DeletePolicy(options)
if err != nil {
panic(err)
}
Eine Richtlinie kann nicht gelöscht werden, wenn die Subjekt-ID eine gesperrte Service-ID enthält.
Zugewiesene Zugriffsberechtigungen in der Konsole überprüfen
Wenn Sie Ihre zugewiesenen Zugriffsberechtigungen in einem Konto überprüfen müssen, zu dem Sie hinzugefügt wurden, führen Sie die folgenden Schritte aus:
- Klicken Sie in der IBM Cloud-Konsole auf Verwalten > Zugriff (IAM) und wählen Sie Benutzer oder Service-IDs aus, abhängig davon, welche Identität Sie überprüfen wollen.
- Wählen Sie Ihren Namen oder die Service-ID aus.
- Überprüfen Sie den zugewiesenen Zugriff auf der Registerkarte "Zugriff ".
Wenn Sie weitere Zugriffsberechtigungen benötigen, müssen Sie sich an den Kontoeigner wenden, um Ihren Zugriff zu aktualisieren, oder Sie wenden sich an den Administrator des Service bzw. der Serviceinstanz, damit die Zugriffsrichtlinie aktualisiert wird.
Zugewiesene Zugriffsberechtigungen über die Befehlszeilenschnittstelle (CLI) überprüfen
Wenn Sie die Ihnen zugewiesenen Zugriffsberechtigungen in einem Konto überprüfen möchten, zu dem Sie hinzugefügt wurden, können Sie den Befehl ibmcloud iam user-policies
verwenden. In diesem Beispiel werden die Richtlinien des Benutzers name@example.com
aufgelistet:
ibmcloud iam user-policies name@example.com
Zugewiesene Zugriffsberechtigungen über die Anwendungsprogrammierschnittstelle (API) überprüfen
Über die Anwendungsprogrammierschnittstelle (API) ist es nur möglich, alle Richtlinien im Konto abzurufen und nach Attributwerten zu filtern. Sie können Ihre zugewiesenen Zugriffsrechte in einem Konto überprüfen, indem Sie in der Konsole IBM Cloud auf Verwalten > Benutzer > Ihr_Name > Zugriff klicken. Um Richtlinien abzurufen, rufen Sie die IBM Cloud® Identity and Access Management(IAM)Policy Management API auf, wie in der folgenden Beispielanfrage dargestellt:
curl -X GET 'https://iam.cloud.ibm.com/v1/policies?account_id=$ACCOUNT_ID' \
-H 'Authorization: Bearer $TOKEN' \
-H 'Content-Type: application/json'
ListPoliciesOptions options = new ListPoliciesOptions.Builder()
.accountId(exampleAccountId)
.iamId(EXAMPLE_USER_ID)
.build();
Response<PolicyList> response = service.listPolicies(options).execute();
PolicyList policyList = response.getResult();
System.out.println(policyList);
const params = {
accountId: exampleAccountId,
iamId: exampleUserId
};
iamPolicyManagementService.listPolicies(params)
.then(res => {
console.log(JSON.stringify(res.result, null, 2));
})
.catch(err => {
console.warn(err)
});
policy_list = iam_policy_management_service.list_policies(
account_id=example_account_id, iam_id=example_user_id
).get_result()
print(json.dumps(policy_list, indent=2))
options := iamPolicyManagementService.NewListPoliciesOptions(
exampleAccountID,
)
options.SetIamID(exampleUserID)
policyList, response, err := iamPolicyManagementService.ListPolicies(options)
if err != nil {
panic(err)
}
b, _ := json.MarshalIndent(policyList, "", " ")
fmt.Println(string(b))