casdoor / casdoor

An open-source UI-first Identity and Access Management (IAM) / Single-Sign-On (SSO) platform with web UI supporting OAuth 2.0, OIDC, SAML, CAS, LDAP, SCIM, WebAuthn, TOTP, MFA, Face ID, RADIUS, Google Workspace, Active Directory and Kerberos
https://casdoor.org
Apache License 2.0
10.14k stars 1.2k forks source link

[feature] Support to manage public cloud VMs as assets #3208

Open hsluoyz opened 1 month ago

hsluoyz commented 1 month ago

Now we only manage assets with RDP, VNC, SSH, etc. But now a lot of asssets are VMs in the cloud. If we integrate the cloud SDKs, we can do more like reboot the machine, increase the disk size, etc.

References:

Maybe there are better multi-cloud Go SDKs that we can use. We may integrate more services like databases, network devices, object storage, ESXi, KVM, etc.

Update

For the above Go multi-cloud Go SDKs, you can decide whether to import them as a Go dependency, or directly copy the source code.

Casdoor actually has integrated a lot of clouds in such ways, like the object storage, SMS, Email, etc.

We need to add Asset frontend pages (list page, edit page), Go struct, DB table, etc. It's similar to Casvisor's asset page: https://door.casvisor.com/assets (source code: https://github.com/casvisor/casvisor)

image

We will also add a new type of provider called "Cloud Provider", it represents a public cloud like AWS, Azure, GCP, etc. It includes the access key and secret for a public cloud. So basically you can connect to multiple AWS accounts.

Then asset list page will be populated with all virtual machines that you have configured in the above cloud providers. Each asset will have a property named "Provider", so we know which cloud (AWS or GCP) that this VM comes from.

casbin-bot commented 1 month ago

@tangyang9464 @JalinWang @imp2002