Gewährung des Zugangs zu IBM Cloud Logs
Der Zugriff auf IBM Cloud-Konfigurationsressourcen für Benutzer und Anwendungen in Ihrem Konto wird von IBM Cloud® Identity and Access Management (IAM) gesteuert. Jedem Benutzer oder jeder Anwendung, die auf den Dienst IBM Cloud Logs in Ihrem Konto zugreift, muss eine Zugriffsrichtlinie mit einer IAM-Rolle zugewiesen werden. Prüfen Sie die folgenden Rollen, Aktionen und mehr, um zu ermitteln, wie Sie den Zugriff auf IBM Cloud Logs am besten zuweisen können.
Sie können den Zugriff auf IBM Cloud Logs mit einer der folgenden Methoden zuweisen:
-
Zugriffsrichtlinien pro Benutzer
-
Zugriffsgruppen
Zugriffsgruppen werden verwendet, um das Zugriffsmanagement zu optimieren, indem Sie einer Gruppe einmal Zugriff erteilen. Anschließend können Sie Benutzer nach Bedarf zu der Gruppe hinzufügen oder aus der Gruppe entfernen, um ihren Zugriff zu steuern.
Eine Zugriffsgruppe kann erstellt werden, um eine Gruppe von Benutzern, Service-IDs und vertrauenswürdigen Profilen in einer einzelnen Entität zu organisieren, die Ihnen das Zuweisen von Zugriffsberechtigungen erleichtert. Sie können der Gruppe eine einzelne Richtlinie zuordnen, anstatt denselben Zugriff mehrmals für einen einzelnen Benutzer oder eine einzelne Service-ID zuzuweisen. Weitere Informationen finden Sie im Abschnitt zum Einrichten von Zugriffsgruppen.
Verwenden Sie Zugriffsgruppen, um eine Reihe von Benutzern und Service-IDs in einer einzigen Einheit zu organisieren, die Ihnen die Verwaltung von IAM-Berechtigungen erleichtert. Sie können der Gruppe eine einzige Richtlinie zuweisen, anstatt denselben Zugriff mehrmals für den einzelnen Benutzer oder die einzelne Service-ID zuzuweisen.
-
Vertrauenswürdige Profile
Sie können vertrauenswürdige Profile verwenden, um verschiedenen IBM Cloud®-Identitäten Zugriff auf Ressourcen in Ihrem Konto zu erteilen. Erteilen Sie föderierten Benutzern automatisch Zugriff auf Ihr Konto unter Bedingungen, die auf SAML-Attributen aus Ihrem Unternehmensverzeichnis basieren. Oder verwenden Sie vertrauenswürdige Profile, um eine fein abgestufte Autorisierung für Anwendungen einzurichten, die in Rechenressourcen ausgeführt werden. So müssen Sie keine Service-IDs oder API-Schlüssel für die Rechenressourcen erstellen. Sie können auch Vertrauen zu IBM Cloud-Services oder -Service-IDs in einem anderen Konto herstellen, um kontenübergreifenden Zugriff zu erteilen. Weitere Informationen finden Sie unter Vertrauenswürdige Profile erstellen.
Wenn Sie über die IAM-Berechtigung zum Erstellen von Richtlinien und Berechtigungen verfügen, können Sie nur die Zugriffsebene gewähren, die Sie als Benutzer des Zieldienstes haben. Wenn Sie beispielsweise für den Zieldienst über Viewer-Zugriff verfügen, können Sie nur die Viewer-Rolle für die Berechtigung zuweisen. Wenn Sie versuchen, eine höhere Berechtigung, wie z. B. Administrator, zuzuweisen, sieht es so aus, als ob die Berechtigung erteilt wird, jedoch wird nur die höchste Berechtigungsstufe, die Sie für den Zieldienst haben, d. h. Viewer, zugewiesen.
Zuweisung des Zugriffs auf IBM Cloud Logs in der Konsole
Es gibt zwei gängige Möglichkeiten, den Zugriff auf IBM Cloud Logs in der Konsole zuzuweisen:
-
Zugriffsgruppen. Sie können Zugriffsgruppen und deren Zugriff über die Seite Verwalten > Zugriff (IAM) > Zugriffsgruppen in der Konsole verwalten. Weitere Informationen finden Sie unter Zugriff auf eine Gruppe in der Konsole zuweisen.
-
Zugriffsrichtlinien pro Benutzer. Sie können Zugriffsrichtlinien pro Benutzer über die Seite Verwalten > Zugriff (IAM) > Benutzer in der Konsole verwalten. Weitere Informationen zu den Schritten zum Zuordnen von IAM-Zugriff finden Sie unter Zugriff auf Ressourcen verwalten.
Zuweisung des Zugriffs auf IBM Cloud Logs in der CLI
Schrittweise Anleitungen zum Zuweisen, Entfernen und Prüfen des Zugriffs finden Sie unter Zugriff auf Ressourcen über die Befehlszeilenschnittstelle zuweisen.
Das folgende Beispiel zeigt einen Befehl zur Zuweisung der Rolle Viewer für IBM Cloud Logs:
Verwenden Sie logs als Servicenamen. Verwenden Sie außerdem Anführungszeichen bei Rollennamen, die aus mehr als einem Wort bestehen.
ibmcloud iam user-policy-create name@example.com --service-name logs --roles "Viewer"
Zuweisung des Zugriffs auf IBM Cloud Logs mit Hilfe der API
Eine schrittweise Anleitung zum Zuweisen, Entfernen und Prüfen des Zugriffs finden Sie unter Zugriff auf Ressourcen über die API zuweisen oder in den Dokumenten zur Erstellen einer Richtlinien-API. Die Cloudressourcennamen (CRN) der Rolle in der folgenden Tabelle werden verwendet, um Zugriff mit der API zuzuweisen.
| Rollenname | Rollen-CRN |
|---|---|
| Anzeigeberechtigter | crn:v1:bluemix:public:logs::::serviceRole:Viewer |
| Operator | crn:v1:bluemix:public:logs::::serviceRole:Operator |
| Bearbeiter | crn:v1:bluemix:public:logs::::serviceRole:Editor |
| Administrator | crn:v1:bluemix:public:logs::::serviceRole:Administrator |
Das folgende Beispiel bezieht sich auf die Zuweisung der Rolle Viewer für IBM Cloud Logs:
Verwenden Sie logs als Servicenamen und verwenden Sie die Tabelle mit den Rollen-ID-Werten, um sicherzustellen, dass Sie den richtigen Wert für den CRN verwenden.
curl -X POST 'https://iam.cloud.ibm.com/v1/policies' -H 'Authorization: Bearer $TOKEN' -H 'Content-Type: application/json' -d '{
"type": "access",
"description": "Viewer role for IBM Cloud Logs",
"subjects": [
{
"attributes": [
{
"name": "iam_id",
"value": "IBMid-123453user"
}
]
}
],
"roles":[
{
"role_id": "crn:v1:bluemix:public:logs::::serviceRole:Viewer"
}
],
"resources":[
{
"attributes": [
{
"name": "accountId",
"value": "$ACCOUNT_ID"
},
{
"name": "serviceName",
"value": "logs"
}
]
}
]
}'
SubjectAttribute subjectAttribute = new SubjectAttribute.Builder()
.name("iam_id")
.value("IBMid-123453user")
.build();
PolicySubject policySubjects = new PolicySubject.Builder()
.addAttributes(subjectAttribute)
.build();
PolicyRole policyRoles = new PolicyRole.Builder()
.roleId("crn:v1:bluemix:public:logs::::serviceRole:Viewer")
.build();
ResourceAttribute accountIdResourceAttribute = new ResourceAttribute.Builder()
.name("accountId")
.value("ACCOUNT_ID")
.operator("stringEquals")
.build();
ResourceAttribute serviceNameResourceAttribute = new ResourceAttribute.Builder()
.name("serviceName")
.value("logs")
.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: 'IBMid-123453user',
},
],
},
];
const policyRoles = [
{
role_id: 'crn:v1:bluemix:public:logs::::serviceRole:Viewer',
},
];
const accountIdResourceAttribute = {
name: 'accountId',
value: 'ACCOUNT_ID',
operator: 'stringEquals',
};
const serviceNameResourceAttribute = {
name: 'serviceName',
value: 'logs',
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='IBMid-123453user')])
policy_roles = PolicyRole(
role_id='crn:v1:bluemix:public:logs::::serviceRole:Viewer')
account_id_resource_attribute = ResourceAttribute(
name='accountId', value='ACCOUNT_ID')
service_name_resource_attribute = ResourceAttribute(
name='serviceName', value='logs')
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("IBMid-123453user"),
}
policySubjects := &iampolicymanagementv1.PolicySubject{
Attributes: []iampolicymanagementv1.SubjectAttribute{*subjectAttribute},
}
policyRoles := &iampolicymanagementv1.PolicyRole{
RoleID: core.StringPtr("crn:v1:bluemix:public:logs::::serviceRole:Viewer"),
}
accountIDResourceAttribute := &iampolicymanagementv1.ResourceAttribute{
Name: core.StringPtr("accountId"),
Value: core.StringPtr("ACCOUNT_ID"),
Operator: core.StringPtr("stringEquals"),
}
serviceNameResourceAttribute := &iampolicymanagementv1.ResourceAttribute{
Name: core.StringPtr("serviceName"),
Value: core.StringPtr("logs"),
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))
Zuweisung des Zugriffs auf IBM Cloud Logs mit Hilfe von Terraform
Das folgende Beispiel bezieht sich auf die Zuweisung der Rolle Viewer für IBM Cloud Logs:
Verwenden Sie logs als Servicenamen.
resource "ibm_iam_user_policy" "policy" {
ibm_id = "test@example.com"
roles = ["Viewer"]
resources {
service = "logs"
}
}
Weitere Informationen finden Sie in der Terraform-Ressource ibm_iam_user_policy.