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 Möglichkeit, nur eine Ressource oder alle Ressourcen zu wählen
Wenn Sie eine bestehende Richtlinie für eine Dienst-ID, die gerade verwendet wird, löschen oder bearbeiten, kann dies zu einer Unterbrechung des Dienstes 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 zugriffsfähige Dienste mit den Rollen Administrator und Manager.
- Eine Richtlinie mit der Rolle Administrator 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 Kontoverwaltungsdienste 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 Diensten oder einen einzelnen Dienst 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 erhöhten Versicherungssummen 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, die Sie zuweisen möchten, und klicken Sie dann auf Zugriff > Zugriff zuweisen.
- Wählen Sie eine Gruppe von Diensten oder einen einzelnen Dienst aus. Klicken Sie anschließend auf Weiter.
- Legen Sie den Geltungsbereich des Zugriffs auf Spezifische Ressourcen fest. Wählen Sie den Attributtyp Ressourcengruppe 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.
Zuweisung des Zugangs zur Verwaltung einer Ressourcengruppe
Sie können den Zugriff auf die Ansicht oder die Verwaltung einer Ressourcengruppe zuweisen, ohne den Zugriff auf den Dienst zuzuweisen.
Als Administrator möchten Sie vielleicht eine Zugriffsgruppe mit der Rolle "Betrachter" für alle Ressourcengruppen erstellen. Auf diese Weise müssen Sie bei der Zuweisung des Zugriffs auf Serviceressourcen keine zusätzlichen Richtlinien für die Anzeige von Ressourcengruppen erstellen. Die Viewer-Rolle für eine Ressourcengruppe ist erforderlich, damit ein Benutzer eine Serviceinstanz in dieser Ressourcengruppe erstellen kann.
Um einer Ressourcengruppe den Zugang zuzuweisen, ohne den Dienstzugang zuzuweisen, 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, welcher Identität Sie Zugriff zuweisen wollen.
- Klicken Sie auf die Benutzer- oder Service-ID, die Sie zuweisen möchten, und klicken Sie dann auf Zugriff > Zugriff zuweisen.
- Wählen Sie Nur Ressourcengruppe.
- Wählen Sie eine Bedingung hinzufügen.
- Wählen Sie den Attributtyp Ressourcengruppe und geben Sie eine Ressourcengruppe ein.
- Klicken Sie auf Weiter.
- Wählen Sie die Zugriffsrollen für die Anzeige oder Verwaltung der Ressourcengruppe. Klicken Sie dann auf Überprüfen.
- Klicken Sie auf Hinzufügen, um die Richtlinienkonfiguration zu Ihrer Richtlinienzusammenfassung hinzuzufügen.
- Klicken Sie auf Zuweisen.
Sie können diese Art von Richtlinie bei Bedarf für jede verfügbare Ressourcengruppe im Konto wiederholen, um den Zugriff auf die Verwaltung aller Ressourcengruppen im Konto zu gewähren.
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
-rangeben, müssen Sie auch eine Region auswählen.ibmcloud loginWenn 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 weisen Sie sie einem Benutzer oder einer Service-ID zu, indem Sie den Befehl
ibmcloud iam user-policy-create.- In diesem Beispiel wird der Zugriff auf eine einzelne Ressource im Konto mit der Rolle
Administratorfür alle Instanzen des Dienstessample-servicezugewiesen:
ibmcloud iam user-policy-create name@example.com --roles Administrator --service-name sample-service- In diesem Beispiel wird der Zugriff auf alle Account Management-Dienste mit der Rolle
Administratorzugewiesen:
ibmcloud iam service-policy-create name@example.com --roles Administrator --account-management- In diesem Beispiel wird der Zugriff auf alle identitäts- und zugriffsfähigen Dienste mit der Rolle
Administratorzugewiesen:
ibmcloud iam service-policy-create name@example.com --roles Administrator --attributes serviceType=service- In diesem Beispiel wird der Zugriff auf alle IAM Account Management-Dienste mit der Rolle
Administratorzugewiesen:
ibmcloud iam service-policy-create name@example.com --roles Administrator --attributes service_group_id=IAMFür ausgewählte Konten sind erhöhte Policenlimits für Service-IDs verfügbar. Um die erhöhten Versicherungssummen 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. 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 einzelne Ressource 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
Zuweisung des Zugangs zur Verwaltung einer Ressourcengruppe über die CLI
Sie können den Zugriff auf die Ansicht oder die Verwaltung einer Ressourcengruppe zuweisen, ohne den Zugriff auf den Dienst zuzuweisen.
Als Administrator möchten Sie vielleicht eine Zugriffsgruppe mit der Rolle "Betrachter" für alle Ressourcengruppen erstellen. Auf diese Weise müssen Sie bei der Zuweisung des Zugriffs auf Serviceressourcen keine zusätzlichen Richtlinien für die Anzeige von Ressourcengruppen erstellen. Die Viewer-Rolle für eine Ressourcengruppe ist erforderlich, damit ein Benutzer eine Serviceinstanz in dieser Ressourcengruppe erstellen kann.
Im folgenden Beispiel wird eine Richtlinie für 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 Viewer für alle Ressourcengruppen des Kontos erstellt.
iam user-policy-create name@example.com --roles Viewer --resource-type resource-group
Das folgende Beispiel erstellt eine Richtlinie für Viewer für alle Ressourcen in einer Ressourcengruppe
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 Beispielanforderung gezeigt. 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 den Zugang zu einer Gruppe von Diensten zuweisen. Um den Zugriff auf alle für Identity and Access aktivierten Dienste zuzuweisen, geben Sie serviceType für das Attribut name an und verwenden
Sie value service. Um den Zugriff auf alle Account Management-Dienste zuzuweisen, geben Sie serviceType für das Attribut name an und verwenden Sie value platform_service.
Um den Zugriff auf die Untergruppe der Kontoverwaltungsdienste Alle IAM-Kontoverwaltungsdienste zuzuweisen, geben Sie service_group_id für das Attribut name an, und verwenden Sie die value IAM.
Für ausgewählte Konten sind erhöhte Policenlimits für Service-IDs verfügbar. Um die erhöhten Versicherungssummen 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 Beispielanforderung 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 den Zugriff auf Ressourcen mit Terraform zuweisen können, müssen Sie sicherstellen, dass Sie die folgenden Schritte ausgeführt haben:
- Installieren Sie die Terraform CLI und konfigurieren Sie das IBM Cloud Provider Plug-in 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.
Zugriff auf Ressourcen mit Terraform zuweisen
Um den Zugriff auf Ressourcen mit Terraform zuzuweisen, gehen Sie wie folgt vor:
-
Weisen Sie den Zugriff auf Ressourcen zu, indem Sie das Argument
ibm_iam_user_policyresource in Ihrer Dateimain.tfverwenden.Im folgenden Beispiel wird die Rolle
test@in.ibm.comViewerfür alle Instanzen des Diensteskmsmit Hilfe von ibm_iam_user_policy vergeben.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 erhöhten Versicherungssummen 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 mit der Rolle
ReaderZugriff 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
serviceangeben. Weitere Informationen finden Sie in der Argument-Referenz auf der Terraform Identity and Access Management(IAM) Seite.Steuern Sie den Ressourcenzugriff mit dem IAM Access Groups-Modul für richtlinienbasierte Berechtigungen. Erfahren Sie mehr über Terraform IBM Module für Zugriffsstrategien.
-
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 und eine Vorschau der vorgeschlagenen Aktionen zu erhalten.terraform plan -
Führen Sie
terraform applyaus, um die im Plan definierten Ressourcen zu erstellen.terraform apply
-
Zugriffsberechtigungen innerhalb einer Ressourcengruppe mithilfe von Terraform zuweisen
Um den Zugriff innerhalb einer Ressourcengruppe mit Hilfe von Terraform zuzuweisen, gehen Sie wie folgt vor.
-
Weisen Sie den Zugriff innerhalb einer Ressourcengruppe zu, indem Sie die Ressource
ibm_iam_user_policyin Ihrer Dateimain.tfverwenden.Das folgende Beispiel zeigt die Rolle
test@in.ibm.comViewerfür die Ressourcengruppe mit der IDdata.ibm_resource_group.group.idunter Verwendung von ibm_iam_user_policy.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, der Sie den Zugriff zuweisen möchten, unter
resource_group_idangeben. Weitere Informationen finden Sie in der Argument-Referenz auf der Terraform Identity and Access Management(IAM) Seite.Erweitern Sie den Zugriff auf Ressourcengruppen mit dem Modul IAM Access Groups für eine granulare Kontrolle. Überprüfen Sie die Terraform IBM Module auf Richtlinien für Ressourcengruppen.
-
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 und eine Vorschau der vorgeschlagenen Aktionen zu erhalten.terraform plan -
Führen Sie
terraform applyaus, um die im Plan definierten Ressourcen zu erstellen.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 Zugriff auf das Symbol Aktionen
Aktionen > Entfernen in der Zeile der zu entfernenden Richtlinie.
- Ü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 Beispielanforderung gezeigt:
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 Zugang auf der Registerkarte Zugang.
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 Ihren zugewiesenen Zugang in einem Konto überprüfen, indem Sie in der Konsole IBM Cloud auf Verwalten > Benutzer > Ihr_Name > Zugang gehen. Um Richtlinien abzurufen, rufen Sie die IBM Cloud® Identity and Access Management(IAM)Policy Management API wie in der folgenden Beispielanforderung gezeigt auf:
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))