Dieser Inhalt ist in der von Ihnen ausgewählten Sprache nicht verfügbar.
Chapter 8. Configuring RBAC policies
In Red Hat OpenStack Services on OpenShift (RHOSO) environments, administrators can use role-based access control (RBAC) policies in the Networking service (neutron) to control which projects are granted permission to attach instances to a network, and also access to other resources like QoS policies, security groups, address scopes, subnet pools, and address groups.
Networking service RBAC is separate from secure role-based access control (SRBAC) that the Identity service (keystone) uses in RHOSO.
8.1. Creating RBAC policies Link kopierenLink in die Zwischenablage kopiert!
This example procedure demonstrates how to use a Networking service (neutron) role-based access control (RBAC) policy to grant a project access to a shared network in a Red Hat OpenStack Services on OpenShift (RHOSO) environment.
Prerequisites
-
The administrator has created a project for you and has provided you with a
clouds.yaml
file for you to access the cloud. The
python-openstackclient
package resides on your workstation.dnf list installed python-openstackclient
$ dnf list installed python-openstackclient
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Procedure
Confirm that the system
OS_CLOUD
variable is set for your cloud:echo $OS_CLOUD
$ echo $OS_CLOUD my_cloud
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Reset the variable if necessary:
export OS_CLOUD=my_other_cloud
$ export OS_CLOUD=my_other_cloud
Copy to Clipboard Copied! Toggle word wrap Toggle overflow As an alternative, you can specify the cloud name by adding the
--os-cloud <cloud_name>
option each time you run anopenstack
command.View the list of available networks:
openstack network list
$ openstack network list
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Copy to Clipboard Copied! Toggle word wrap Toggle overflow View the list of projects:
openstack project list
$ openstack project list
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Copy to Clipboard Copied! Toggle word wrap Toggle overflow Create a RBAC entry for the
web-servers
network that grants access to theauditors
project (4b0b98f8c6c040f38ba4f7146e8680f5
):openstack network rbac create --type network --target-project 4b0b98f8c6c040f38ba4f7146e8680f5 --action access_as_shared web-servers
$ openstack network rbac create --type network --target-project 4b0b98f8c6c040f38ba4f7146e8680f5 --action access_as_shared web-servers
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Sample output
Copy to Clipboard Copied! Toggle word wrap Toggle overflow As a result, users in the auditors project can connect instances to the
web-servers
network.
8.2. Reviewing RBAC policies Link kopierenLink in die Zwischenablage kopiert!
This example procedure demonstrates how to obtain information about a Networking service (neutron) role-based access control (RBAC) policy used to grant a project access to a shared network in a Red Hat OpenStack Services on OpenShift (RHOSO) environment.
Prerequisites
-
The administrator has created a project for you and has provided you with a
clouds.yaml
file for you to access the cloud. The
python-openstackclient
package resides on your workstation.dnf list installed python-openstackclient
$ dnf list installed python-openstackclient
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Procedure
Confirm that the system
OS_CLOUD
variable is set for your cloud:echo $OS_CLOUD
$ echo $OS_CLOUD my_cloud
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Reset the variable if necessary:
export OS_CLOUD=my_other_cloud
$ export OS_CLOUD=my_other_cloud
Copy to Clipboard Copied! Toggle word wrap Toggle overflow As an alternative, you can specify the cloud name by adding the
--os-cloud <cloud_name>
option each time you run anopenstack
command.Run the
openstack network rbac list
command to retrieve the ID of your existing role-based access control (RBAC) policies:openstack network rbac list
$ openstack network rbac list
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Sample output
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Run the
openstack network rbac-show
command to view the details of a specific RBAC entry:openstack network rbac show 314004d0-2261-4d5e-bda7-0181fcf40709
$ openstack network rbac show 314004d0-2261-4d5e-bda7-0181fcf40709
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Sample output
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
8.3. Deleting RBAC policies Link kopierenLink in die Zwischenablage kopiert!
This example procedure demonstrates how to remove a Networking service (neutron) role-based access control (RBAC) policy that grants a project access to a shared network in a Red Hat OpenStack Services on OpenShift (RHOSO) environment.
Prerequisites
-
The administrator has created a project for you and has provided you with a
clouds.yaml
file for you to access the cloud. The
python-openstackclient
package resides on your workstation.dnf list installed python-openstackclient
$ dnf list installed python-openstackclient
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Procedure
Confirm that the system
OS_CLOUD
variable is set for your cloud:echo $OS_CLOUD
$ echo $OS_CLOUD my_cloud
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Reset the variable if necessary:
export OS_CLOUD=my_other_cloud
$ export OS_CLOUD=my_other_cloud
Copy to Clipboard Copied! Toggle word wrap Toggle overflow As an alternative, you can specify the cloud name by adding the
--os-cloud <cloud_name>
option each time you run anopenstack
command.Run the
openstack network rbac list
command to retrieve the ID of your existing role-based access control (RBAC) policies:Copy to Clipboard Copied! Toggle word wrap Toggle overflow Run the
openstack network rbac delete
command to delete the RBAC, using the ID of the RBAC that you want to delete:openstack network rbac delete 314004d0-2261-4d5e-bda7-0181fcf40709
# openstack network rbac delete 314004d0-2261-4d5e-bda7-0181fcf40709 Deleted rbac_policy: 314004d0-2261-4d5e-bda7-0181fcf40709
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
8.4. Granting RBAC policy access for external networks Link kopierenLink in die Zwischenablage kopiert!
In a Red Hat OpenStack Services on OpenShift (RHOSO) environment, you can use a Networking service (neutron) role-based access control (RBAC) policy to grant a project access to an external networks—networks with gateway interfaces attached.
In the following example, a RBAC policy is created for the web-servers
network and access is granted to the engineering
project, c717f263785d4679b16a122516247deb
:
Prerequisites
-
You have the
oc
command line tool installed on your workstation. -
You are logged on to a workstation that has access to the RHOSO control plane as a user with
cluster-admin
privileges.
Procedure
Access the remote shell for the OpenStackClient pod from your workstation:
oc rsh -n openstack openstackclient
$ oc rsh -n openstack openstackclient
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Create a new RBAC policy using the
--action access_as_external
option:openstack network rbac create --type network --target-project c717f263785d4679b16a122516247deb --action access_as_external web-servers
$ openstack network rbac create --type network --target-project c717f263785d4679b16a122516247deb --action access_as_external web-servers
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Sample output
Created a new rbac_policy:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow As a result, users in the
engineering
project are able to view the network or connect instances to it:openstack network list
$ openstack network list
Copy to Clipboard Copied! Toggle word wrap Toggle overflow +--------------------------------------+-------------+------------------------------------------------------+ | id | name | subnets | +--------------------------------------+-------------+------------------------------------------------------+ | 6e437ff0-d20f-4483-b627-c3749399bdca | web-servers | fa273245-1eff-4830-b40c-57eaeac9b904 192.168.10.0/24 | +--------------------------------------+-------------+------------------------------------------------------+
+--------------------------------------+-------------+------------------------------------------------------+ | id | name | subnets | +--------------------------------------+-------------+------------------------------------------------------+ | 6e437ff0-d20f-4483-b627-c3749399bdca | web-servers | fa273245-1eff-4830-b40c-57eaeac9b904 192.168.10.0/24 | +--------------------------------------+-------------+------------------------------------------------------+
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Exit the
openstackclient
pod:exit
$ exit
Copy to Clipboard Copied! Toggle word wrap Toggle overflow