在 SSH 中,有一个代理转发选项可以使用本地凭据,例如用于使用 GitHub 等服务或用于向前链接连接以登录到其他服务器,由此私钥保留在本地操作系统钥匙串的保护下,并且“jumpbox”或远程环境中不存在受信任的私钥材料。 AWS 凭证是否有类似的可能?
例如,如果使用 AWS SSM(或 EC2 Instance Connect,或通过 SSM 代理隧道的 SSH 等)连接到 EC2 实例,是否有任何方法可以自动将临时 AWS 凭证传输到远程会话(或代理 AWS 的任何方法) SDK认证回调到本地系统)?
我正在寻找一种方法,可以避免需要手动重复用户身份验证过程两次(一次在本地,然后再次在远程会话中,每次都可能涉及 MFA)。理想情况下,它只会向远程会话提供临时凭证,并自动执行临时凭证轮换,以便对应用程序透明(例如 IRSA 如何为 EKS pod 上基于 AWS SDK 的进程自动轮换临时 AWS 密钥,只不过 IRSA 使用 k8s OIDC 而不是依赖于来自经过身份验证的用户的活动连接)。这如何实施?
您可以为 ec2 授予具有 IAM 权限的实例角色来访问所需的服务,因此不要使用临时 AWS 凭证。然后,当您在 ec2 实例中运行 aws cli 命令或 SDK 程序时,它会承担您设置的实例角色的角色和权限。与将凭据从本地复制到远程实例相比,这更加安全。
https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-roles-for-amazon-ec2.html