Think pam is just a password vault and an RDP launcher that’s exactly why modern environments keep getting over privileged because today privileged access isn’t only windows servers it’s ssh kubernetes cloud consoles like aws and production databases and you need one place to control it all otherwise you end up with standing admin access shared credentials and zero visibility until something breaks or someone abuses access in this demo clip from our recent webinar a keyless modern pam versus hash core boundary my friend netzer who is the director of solutions architecture at a keyless shows how a keyless modern pam delivers secure remote access with just in time permissions, dynamic or rotated secrets, SSH certificates, Kubernetes, plus AWS access, and full session recording with Instant Revoke. If you want the full webinar and q and a, check the link in the description, and let’s get started. So this is the secure remote access portal that we have here. I’ve logged in based on my own identity provider based on Okta in my case, and now I have this is a dynamic view that is built for me according to my permission. So when Sam logs in, he will see potentially different number of tiles or within each of them a different number of servers or targets that he can access according to each and every user’s own permissions. So I believe we can sort of categorize some of these into what to me are more classic use cases for PAM, which is primarily servers, where you’re thinking Windows, highly active directory heavy, Linux with SSH, some database access, but then we get to the more modern technologies that require modern privileged access, which would be typically Kubernetes environments as well as the cloud consoles, give you coverage to all of them in different approaches, and the Zero Trust portal is our web landing page, but we could also leverage a client like a CLI running on your terminal if it’s for SSH access, for example, or a thick client based on our desktop application. Now, if we start with the I guess, when you say PAM, typically, first thing that comes to mind is Windows, right, going into different servers. And in this case, I have my own active directory. I was I’m able to either take advantage of rotated secrets, domain users that auto rotate after each session I run, or dynamic secrets that can literally provision a dynamic domain user to my active directory with specified permissions. These two different approaches would typically be relevant to whether you care deeply about the session continuity of your internal end users, or is it some maybe an external vendor that just needs access every once in a while, and there’s no day to day work? Because if these are in your internal users, I’ll I’ll be very blunt, they would hate the admin that makes them use a temporary desktop in Windows every single day and start fresh. What they want is the ability to continue using the same session and save something on the desktop and reuse it and go back to it. So either leveraging rotated secrets where they don’t like, it would typically be their admin user, and you can see now it was it took a minute, even way less to now RDP, the session is being recorded. I can jump around here. I can download files from here to my native client, or I could upload files onto here. You have all these different capabilities that lets you very quickly start leveraging RDP, but the fact that this is a preexisting user or a fixed user is something that is is not a compromise. It’s by design. You have to understand that end users will not tolerate the ability to having a temporary credential, which is the standard for dynamic secret. Right? Having a temporary user every time. That would work very well for external vendors typically. But internally, you have the choice between rotated secrets, right, for the for your admin users, or an even more advanced in a way type of option is just in time permissions. You may know the concept of, like, elevating permissions. We could find a fixed user and temporarily add them to a an administrator’s group, right, through the domain group, through a local group. We support all the different modes. For the duration of the session, they will be able to access it only through SRA. They will be recorded. And when the session is done, they get downgraded to just their normal day to day access. So it’s still very much a privileged access type of thinking. Now while I did all of this, the session is recorded. Now you have the ability to for example, the way I configured my session recordings was that it would get automatically uploaded as files onto an AWS s three bucket. It’s being encrypted and compressed first. But now let’s say I want to access my AWS account, and I want to do it with a dynamic secret. I want not to take use of some my own user password to AWS, ideally, and users shouldn’t have such permissive capabilities. Instead, I have this AWS temporary s three read only credential or connection, which does something quite interesting in the background. It provisions an I’m user for me in the back. And notice that we’ve actually introduced a custom delay for how long it should wait before truly injecting the password. Even though we have it immediately, we know AWS takes a few seconds to synchronize a new I’m user with the policies that it has, so we have to introduce some delay before injecting it. Similarly, it would be the same with active directory. If you create a new domain user, you may wanna wait a few seconds for all the group policies to sync in. Now here, we can go into s three. This IAM user I just created is only limited to read only from s three buckets. And in here, we should see a brand new file that was just created with the three megabyte that you see, an encrypted file, and it’s all here, so we are able to easily go back to this, download it, open it, or you can choose a different type of output. It’s a video file. You can watch it later. And now what’s nice is that this was, again, a temporary credential. So I didn’t actually know. If you noticed, I had some something injected for me. And now if I try to do it again, it would be a new temporary user every single time. And every time you disconnect, behind the scenes, Akeyless revokes that temporary credential. So if even in any malicious way, it was somehow hijacked along the way, once the session is over, the credential is over. Next up, we can take an example of potentially a BBA that needs to take or connect to a production database. Obviously, that would be permissive by definition. And they wanna leverage a connection to a MySQL database. So they could choose between a web interface, a generic one that we provide to all databases, a CLI connection that would be like a shell running within your browser, or leveraging later the Akeyless Connect from the CLI or even a native the thick client running on your desktop like dBeaver, etcetera. There are too many for me to to name them all. But let’s start with a generic view that would work for any database, Postgres, MySQL, MS SQL, Oracle, all of them, that allows you now to view all your tables and change the different databases or simply run SQL command. The basic functionality and even more than that is all supported here, and you can see this is me right now. This is a TMP user that our dynamic secrets always work this way. They always create a TMP dot something as a prefix, even though recently we’ve allowed customers and users to actually change whatever the prefix ought to be. They can now make it an Akeyless prefix so that they can easily recognize those end users. And also, we always maintain the link between the temporary user credential that you would see on the end target and the user requesting it on Akeyless on our audit log. So you can easily do the for audit reasons or compliance, you can easily do the the link. Now this is the dynamic secret issuer that I just viewed. I’m taking you to see the admin side of things from Akeyless. As an admin, I would also be able to see all the standing privileges, all the active temporary credentials that are now taking advantage of this. I can actually remotely revoke their access. I can kick them out. If I have reason to believe that this is a malicious user, I could just decide I want to revoke this temporary credential. And once this is done, it takes a few seconds, then the next time I will run something here, I actually get kicked out. Four zero three. I’m no longer allowed. I’m forbidden. Right? Just like that. Yes. Eats right away. It doesn’t wait for a time period or a timeout or something. Exactly. It gives the admin of this platform a true ability to control. Typically, I think some of the PALM mindset, to some extent, is recording and then reacting if something were to happen. Here, potentially, you have the ability, thanks to dynamic secrets concept, to act, not react. Right? Yeah. When it’s still relevant. So while I’m sort of talking about this, this is the console view of Akeyless where you can see all of our different products, not just SRA. The same platform offers you beyond secure mode access, secrets management, certificate lifecycle, encryption KMS, password management, and manager of manager for other secrets. All is included. We have no time to talk about anything else. I’ll focus the comments solely on the secure remote access, and you can see this other view of the admin that can take a quick look of all the sessions that are now happening, their status, the session ID, the secret that was used to facilitate it, the end user that actually initiated them. And here, it’s not really a good indication because it’s all me. It’s just my demo environment, but you can imagine in a real scenario, there will be a lot of different end users in here. Going back here, we’ve discussed how you RDP to Windows, how you use web console access to different cloud consoles, for example, and databases. The two main ones that we wanna talk about are Kubernetes and SSH. Kubernetes gives you the portal access from this browser, it gives you a shell within a browser that gives you a precooked KubeConfig that points to the relevant cluster. And in here, you can get pods, you can get namespace, you can do everything that the permission that corresponds with this dynamic secret, which you can think of as a permission profile. You can have one dynamic secret that lets you be a cluster admin and another one that lets you be a a read only user, and it’s the SRA admin, you would decide which of your internal users should be able to leverage the temporary admin access versus the temporary user access. And you may choose to let your users have temporary user access directly, not through the set the recorded sessions. Maybe that’s not a Palm use case for you, that if an end user that can only read and get the status of your pods, it doesn’t always have to be the most extreme measurement of security. You wanna find the right balance so that you don’t frustrate your end users when it’s not really required, when it’s not privileged access. And that’s another sort of nice thing about this platform is that you can create the same target and associate one dynamic secret to it that is permissive, that is requiring POM and recession recording, and another one that isn’t based on the same target, same platform, same RBAC. Now so this is just a nice example of what it looks like in Kubernetes, but I will show you hopefully, we’ll have enough time. I’ll also do it from the CLI because it’s probably more of a realistic use for most Kubernetes users. And last but not least, we’ll look into how we SSH. SSH is its own unique implementation in terms of just in time. Just in time, typically, in other cases that I’ve shown so far, is a dynamic secret, meaning we go behind the scenes, create a temporary user against that target, retrieve its credentials back to the client, in this case, in a seamless fashion that it doesn’t even know it’s done for the user, then it gets revoked. But here with SSH certificates, that’s the core concept here. What we have is actually a public CA key that could be just the one for the entire company or for all of your hosts, and it could be provisioned across all of them. It’s a minor change in the SSHD config file, and it allows certificates signed by the corresponding private key, which is protected in Akeyless and is used as a DFC key. Again, our root of trust, which is a truly unique offering we have. It I it’s able to sign just in time temporary SSH certificates that allow you to log in to the server in a native fashion just like you would with SSH that you typically probably use minus I and give the pem key over there. Except here, it’s not a key. It’s a certificate, and it has an extremely low TPL. The time to leave for the certificate would typically be in seconds. And how we can do that is because SSH actually only needs the certificate to be valid for establishing the connection. Once you’re logged in, it doesn’t matter if the certificate has already expired. It will only kick you out after a stale timeout or after you just exit the session yourself. But that’s how SSH works, so we’re taking advantage of it and telling end users, you could end you could do it either here from the portal, like you’re you’re seeing here, and everything will be recorded, and you can see who am I. You can upload and download files here like an SCP in a managed fashion, but you can also do it natively from your own terminal. We put it on a different background so it’s easier to spot. But I would have my own Akeyless CLI configured here, and I would use something that looked like this, an Akeyless connect command. Right? The Akeyless CLI is something you would already have, and it would have a profile tied to your IDP. You will see it in a second. And then I give it just like normal SSH, username at server, and then in this case, I’m telling which gateway to use. This could also be done behind the scenes. You always use the same gateway, but, obviously, in my environment, I have, like, three different ones I could choose from, so I have to specify it in this case. And when I log in, the first thing it does is it authenticates me, in this case, against Okta using SAML. Yep. And then hang on. I’ll put this as the background. I’m logged in from my native terminal. I’m running on a Mac, and I have a completely regular experience. I can use my own copy paste. There’s no, like, extra clipboard to go through. No clunky upload, download. It’s all native terminal, and you can do it all from here. And the ability to provide end users with their own native terminal experience makes all the difference in an SRA implementation or a PUM implementation because it’s very nice how many of you guys are from the security organization and how many of you are, let’s call it, the more hands on DevOps people that typically would have to or IT people, team that has to connect to all these different environments. Even if the CISO is happy with a privileged access solution, if the end users don’t adopt it, if they don’t feel like it fits into how they work, the implementation is doomed to fail. Even if we would really want it to succeed for all the right reasons. At least that has been my experience. This is the Akeyless Connect experience. And on the Kubernetes side, I mentioned, we could also leverage Akiles Connect. By the way, with any, call it, textual type of connection, so it could be SSH, databases that expose a CLI, even something like AWS CLI, and obviously, KubeCTL. Right? So anything that has a potential CLI or terminal like interface, we can take advantage of it. In this case, I wanna log in to a cluster. I’m telling you the namespace and the cluster endpoint URL, and I will be given the same kubectl sort of built in client, and you can see behind the scenes, it still leverages an SSH certificate to connect me through the gateway itself. But now I have the ability to use kubectl, of course. I need to Nice. I don’t have to mess with kube configs or anything like that. Correct. You don’t have to. That’s very much an option, and this is recorded, that’s really nice. But I had many customers tell me, yeah, but I wanna use my own KubeTQL with the KubeConfigs. I wanna use Lens or K nine S. So for those use cases, the I mentioned the thick client support. You’re able to use those same connections behind the scenes, but at a tunnel. Right? Essentially, it’s an SSH port forwarding based tunnel that you’re choosing the local port for yourselves. In this case, I choose fifty five fifty five. And then what it does is it’s opening a tunnel happening on one of your tabs, and now it’s listening, and I it’s still recording, by the way, the API server of Kubernetes for every call it’s going to get. I still have eyes in what’s happening even though it’s end to end encrypted for the end user. And here on another side, I have a prepared KubeConfig that all it has inside is pointing to my own local host over port fifty five. Right? And I can create as many of these as I want. Obviously, there’s no restriction. And I could then have my native thick clients use this as the KubeConfig. Easiest example is obviously just a plain kubectl, get pods, that points to this KubeConfig, but that’s not the most impressive one, but it may be the easiest one to understand. And then you can see I was able to run KubeCTL. And on the other tab, you will see that the API server got a request to get pods. Yeah. Right? On this namespace, my apps, was got it got a get get command to list pods. So that’s another sort of finding the right middle between your security requirements, wanting to be able to leverage just in time access and make sure you’re recording the sessions, but let your end users agree to use it, right, in a way if that makes sense. So that’s a keyless modern PAM, secure remote access across RDP, SSH, Kubernetes, databases, and cloud consoles with just in time access, dynamic or rotated secrets, full session recording and instant revoke. If you want the full webinar the links in the description. I hope you enjoyed this video and I will see you in the next one.