IAM-Zugriff für IBM Cloud Direct Link verwalten
IBM Cloud® Identity and Access Management (IAM) steuert den Zugang zu Direct Link Gateways für Benutzer in Ihrem Konto. Jedem Benutzer, der auf den Direct Link-Service in Ihrem Konto zugreift, muss eine Zugriffsrichtlinie mit einer IAM-Rolle zugewiesen werden. Sehen Sie sich die folgenden Rollen, Aktionen und weitere Informationen an, um zu ermitteln, wie Sie die Zugriffsrechte für Direct Link am besten zuweisen können.
IBM Cloud® Direct Link ermöglicht die Konnektivität zwischen lokalen Ressourcen des Kunden und IBM Cloud-Ressourcen, die in klassischen Infrastrukturen oder VPC-Infrastrukturen (Virtual Private Cloud) gehostet werden.
Die Zugriffsrichtlinie, die Sie Benutzern in Ihrem Konto zuordnen, bestimmt, welche Aktionen ein Benutzer im Kontext des von Ihnen ausgewählten Service oder der betreffenden Instanz ausführen kann. Der Direktlink passt die zulässigen Aktionen an und definiert sie als Vorgänge, die für den Dienst ausgeführt werden dürfen. Jede Aktion wird einer IAM-Plattform- oder -Servicerolle zugeordnet, die Sie einem Benutzer zuweisen können.
Wenn eine bestimmte Rolle und die zugehörigen Aktionen nicht für den Anwendungsfall geeignet sind, den Sie bearbeiten möchten, können Sie eine angepasste Rolle erstellen und die Aktionen auswählen, die einbezogen werden sollen.
IAM-Zugriffsrichtlinien ermöglichen es, den Zugriff auf verschiedenen Ebenen zu erteilen. Einige Optionen sind
- Zugriff auf die Instanz des Direct Link-Service in Ihrem Konto
- Zugriff auf eine einzelne Serviceinstanz in Ihrem Konto
- Zugriff auf eine bestimmte Ressource in einer Instanz
Sehen Sie sich die folgende Tabelle an, in der aufgeführt ist, welche Arten von Aufgaben die einzelnen Rollen bei der Arbeit mit dem Dienst „ Direct Link “ zulassen. Mit Plattformverwaltungsrollen können Benutzer Aufgaben an Dienstressourcen auf Plattformebene ausführen, beispielsweise Benutzern Zugriff auf den Dienst zuweisen sowie Instanzen erstellen oder löschen.
Direct Link verfügt nicht über Service-Zugriffsrollen, die Benutzern den Zugriff auf Direct Link und die Möglichkeit zum Aufrufen der Direct Link API ermöglichen. Informationen zu den genauen Aktionen, die den einzelnen Rollen zugeordnet sind, finden Sie unter Direct Link Connect und Direct Link Dedicated.
| Plattformrolle | Beschreibung der Aktionen | Beispielaktionen |
|---|---|---|
| Administrator | Ermöglicht es dem Benutzer, Direct Link-IAM-Zugriffsrichtlinien anderen Benutzern zuzuordnen. | Gateway erstellen Gateway löschen Gateway bearbeiten Fügen Sie eine virtuelle Verbindung zu einem Gateway hinzu * Entfernen Sie eine virtuelle Verbindung von einem Gateway * Bearbeiten Sie eine virtuelle Verbindung (nur API) Aktualisieren Sie Benutzerzugriffsrichtlinien für den Service |
| Bearbeiter | Führt alle Aktionen aus, einschließlich der Verwaltung von Gateways und virtuellen Verbindungen. | Gateway erstellen Gateway löschen Gateway bearbeiten Eine virtuelle Verbindung zu einem Gateway hinzufügen * Eine virtuelle Verbindung aus einem Gateway entfernen* Eine virtuelle Verbindung bearbeiten (nur API) |
| Anzeigeberechtigter/Operator | Führt Aktionen aus, durch die der Zustand der Ressourcen nicht geändert wird. | Gateways auflisten Gateways abrufen Virtuelle Verbindungen eines Gateways auflisten Virtuelle Verbindungen eines Gateways anzeigen Informationen zum Gateway abrufen (Benachrichtigung über den Abschluss der Autorisierung) Eingehende Verbindungsanfragen anzeigen* |
& ast; Zum Hinzufügen oder Entfernen von virtuellen Verbindungen zu VPCs oder zum Akzeptieren oder Zurückweisen einer Verbindungsanforderung muss der Benutzer auch über die Berechtigungen der Plattformzugriffsrolle 'Editor' oder 'Administrator' für die VPC verfügen. Weitere Informationen finden Sie unter VPC: Erste Schritte mit IAM.
Hinweise:
- Alle Direct Link-Ressourcen sind in einer Ressourcengruppe vorhanden. Zum Erstellen einer „ Direct Link “-Ressource ist Editor-Zugriff auf die ausgewählte Ressourcengruppe erforderlich.
- Informationen zum Zuweisen von Benutzerrollen in der Konsole finden Sie im Abschnitt Zugriff auf Ressourcen verwalten.
Zugriffsrechte für „ Direct Link “ in der Konsole zuweisen
Gängige Methoden zum Zuweisen von Zugriffen in der Konsole:
- 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.
- 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. Sie verwalten Zugriffsgruppen und deren Zugriff über die Seite Verwalten > Zugriff (IAM) > Zugriffsgruppen in der Konsole. Weitere Informationen finden Sie unter Zugriff auf eine Gruppe in der Konsole zuweisen.
Hinweise zur Autorisierung für kontoübergreifende virtuelle Verbindungen
Die folgende Tabelle enthält die Änderungen bei der Autorisierung kontoübergreifender virtueller Verbindungen.
Eine kontoübergreifende virtuelle Verbindung bedeutet, dass das Gateway in einem IBM Cloud-Konto vorhanden ist und eine virtuelle Verbindung in diesem Gateway eine Verbindung zu einer VPC in einem anderen IBM Cloud-Konto herstellt. Diese Konfiguration erfordert besondere Überlegungen hinsichtlich der Berechtigungen, da die Objekte (die direkte Verbindung und die VPC) sowie deren Ressourcengruppen nicht in beiden Konten vorhanden sind.
| Zugehöriges Konto | Funktionalität | Erforderliche Berechtigung |
|---|---|---|
| Gateway-Konto | Alle Funktionen, die in dieser Tabelle nicht aufgeführt sind. | Keine Autorisierungsänderungen. |
| Gateway-Konto | Erstellen und Löschen einer kontoübergreifenden virtuellen Verbindung. | directlink.dedicated.edit oder directlink.connect.editEs ist keine VPC-Autorisierung erforderlich, weder beim Erstellen noch beim Löschen. |
| Netzkonto | Anzeigen von schreibgeschützten Gateways und virtuellen Verbindungen. | Service-Level directlink.dedicated.view oder directlink.connect.view |
| Netzkonto | Akzeptieren und Ablehnen anstehender Verbindungen. | Berechtigung auf Serviceebene directlink.dedicated.view oder directlink.connect.viewAktualisierungsberechtigung für die verbundene VPC. |
| Netzkonto | Löschen einer zugeordneten virtuellen Verbindung mit DELETE. |
Berechtigung auf Serviceebene directlink.dedicated.view oder directlink.connect.viewAktualisierungsberechtigung für die verbundene VPC. |
Zugriffsrechte für „ Direct Link “ über die CLI zuweisen
Eine Schritt-für-Schritt-Anleitung zum Zuweisen, Entziehen und Überprüfen von Zugriffsrechten finden Sie unter „ Zuweisen von Zugriffsressourcen über die CLI “. Das folgende Beispiel zeigt einen Befehl zum Zuordnen der Rolle Editor zu einem Benutzer:
Verwenden Sie directlink als Servicenamen. Verwenden Sie auch Anführungszeichen um Rollennamen, die aus mehr als einem Wort bestehen, wie im folgenden Beispiel.
ibmcloud iam user-policy-create USER@EXAMPLE.COM --service-name directlink --roles Editor
Zugriff auf „ Direct Link “ über die API zuweisen
Eine Schritt-für-Schritt-Anleitung zum Zuweisen, Entziehen und Überprüfen von Zugriffsrechten finden Sie unter „ Zugriff auf Ressourcen über die API zuweisen “ oder im API-Dokument „Richtlinie erstellen “. 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:directlink::::serviceRole:Viewer |
| Operator | crn:v1:bluemix:public:directlink::::serviceRole:Operator |
| Bearbeiter | crn:v1:bluemix:public:directlink::::serviceRole:Editor |
| Administrator | crn:v1:bluemix:public:directlink::::serviceRole:Administrator |
| Leseberechtigter | crn:v1:bluemix:public:directlink::::serviceRole:Reader |
| Schreibberechtigter | crn:v1:bluemix:public:directlink::::serviceRole:Writer |
| Manager | crn:v1:bluemix:public:directlink::::serviceRole:Manager |
Verwenden Sie „ directlink “ als Dienstnamen und überprüfen Sie anhand der Tabelle mit den Rollen-ID-Werten, ob Sie den richtigen Wert für die CRN verwenden.
Die folgende Richtlinie weist allen serviceName=directlink-Ressourcen im Konto die Rolle eines Schreibberechtigten zu.
curl -X POST 'https://iam.cloud.ibm.com/v1/policies' -H 'Authorization: Bearer $TOKEN' -H 'Content-Type: application/json' -d '{
"type": "access",
"description": "Writer role for Direct Link",
"subjects": [
{
"attributes": [{
"name": "iam_id",
"value": "IBMid-123453user"
}]
}],
"roles": [{
"roles_id": "crn:v1:bluemix:public:directlink::::serviceRole:Writer"
}],
"resources": [{
"attributes": [
{
"name": "accountId",
"value": "1234567890987654321"
},
{
"name": "serviceName",
"value": "directlink"
}]
}]
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:directlink::::serviceRole:Writer")
.build();
ResourceAttribute accountIdResourceAttribute = new ResourceAttribute.Builder()
.name("accountId")
.value("ACCOUNT_ID")
.operator("stringEquals")
.build();
ResourceAttribute serviceNameResourceAttribute = new ResourceAttribute.Builder()
.name("serviceName")
.value("directlink")
.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);
policy_subjects = PolicySubject(
attributes=[SubjectAttribute(name='iam_id', value='IBMid-123453user')])
policy_roles = PolicyRole(
role_id='crn:v1:bluemix:public:directlink::::serviceRole:Writer')
account_id_resource_attribute = ResourceAttribute(
name='accountId', value='ACCOUNT_ID')
service_name_resource_attribute = ResourceAttribute(
name='serviceName', value='directlink')
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:directlink::::serviceRole:Writer"),
}
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("directlink"),
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))
const policySubjects = [
{
attributes: [
{
name: 'iam_id',
value: 'IBMid-123453user',
},
],
},
];
const policyRoles = [
{
role_id: 'crn:v1:bluemix:public:directlink::::serviceRole:Writer',
},
];
const accountIdResourceAttribute = {
name: 'accountId',
value: 'ACCOUNT_ID',
operator: 'stringEquals',
};
const serviceNameResourceAttribute = {
name: 'serviceName',
value: 'directlink',
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)
});
Curl-Beispiel 2
Die folgende Richtlinie weist allen serviceName=directlink-Ressourcen des Typs dedicated im Konto die Rolle 'Schreibberechtigter' zu.
curl -X POST 'https://iam.cloud.ibm.com/v1/policies' -H 'Authorization: Bearer $TOKEN' -H 'Content-Type: application/json' -d '{
"type": "access",
"description": "Writer role for Direct Link Dedicated",
"subjects": [
{
"attributes": [{
"name": "iam_id",
"value": "IBMid-123453user"
}]
}],
"roles": [{
"roles_id": "crn:v1:bluemix:public:directlink::::serviceRole:Writer"
}],
"resources": [{
"attributes": [
{
"name": "accountId",
"value": "1234567890987654321"
},
{
"name": "serviceName",
"value": "directlink"
},
{
"name": "dedicatedId",
"value": "*"
}]
}]
Zugriff auf „ directlink “ mithilfe von Terraform zuweisen
Das folgende Beispiel zeigt, wie man die Rolle „ Editor “ für „ directlink “ zuweist:
Verwenden Sie directlink als Servicenamen.
resource "ibm_iam_user_policy" "policy" {
ibm_id = "test@example.com"
roles = ["Editor"]
resources {
service = "directlink"
}
}
Weitere Informationen finden Sie unter ibm_iam_user_policy.