如何在AWS SSO管理的用户中配置公共SSH密钥

67次阅读
没有评论

问题描述

AWS身份是由AWS SSO管理的,而不是IAM用户。用户希望上传公共SSH密钥(以便启用对CodeCommit的客户端UI访问),但用户不是AWS账户/组织管理员,因此无法查看选项或确定是否可能实现此目标。用户希望得到AWS SSO管理员的帮助和建议。

解决方案

请注意以下操作注意版本差异及修改前做好备份。

方案1

对于AWS SSO管理的用户,目前似乎没有直接上传公共SSH密钥的选项。因为SSH密钥通常与IAM用户的配置文件关联,而SSO用户没有IAM用户配置文件。但是,您可以考虑使用AWS凭证助手来解决此问题。AWS凭证助手是一个命令行工具,可以帮助您管理AWS凭证,包括CodeCommit的访问凭证。
以下是使用AWS凭证助手的步骤:
1. 安装AWS CLI,并确保已配置正确的AWS凭证。
2. 安装AWS凭证助手。您可以按照AWS CLI安装指南中的说明进行安装。
3. 配置AWS凭证助手。运行以下命令:
aws codecommit credential-helper $@
这将配置AWS凭证助手以与CodeCommit一起使用。
4. 现在,您可以使用AWS凭证助手来访问CodeCommit。例如,您可以使用以下命令克隆一个CodeCommit存储库:
git clone codecommit://<repository-name>
AWS凭证助手将自动获取您的AWS凭证并将其传递给CodeCommit。
请注意,AWS凭证助手是一种临时解决方案,它允许您在AWS SSO管理的用户中使用CodeCommit。但是,它可能不适用于其他需要SSH密钥的情况。

方案2

如果您确实需要使用SSH密钥,并且没有其他选择,您可以考虑以下方法:
1. 在一个EC2实例上创建一个git仓库。确保该实例具有适当的IAM角色,以便允许向CodeCommit写入。
2. 在EC2实例上设置一个git钩子,以便在每次提交时将更改同步到CodeCommit存储库。您可以使用git的钩子功能来实现这一点。
例如,您可以在EC2实例上的git仓库中创建一个post-commit钩子脚本,该脚本将在每次提交后运行,并将更改推送到CodeCommit存储库。
bash
#!/bin/bash
git push codecommit

这将确保您在EC2实例上的git仓库中进行的更改会自动同步到CodeCommit存储库中。
请注意,这种方法需要您自己管理EC2实例和git仓库,并确保同步过程正常工作。这可能会增加一些复杂性,并且需要一些额外的配置和维护工作。

正文完