git-remote-codecommit with temporary credentials

u2nhd7ah  于 2023-04-28  发布在  Git
关注(0)|答案(1)|浏览(102)

我正在以IAM用户的身份登录,该用户可以切换到管理员角色。用户属于UserGroup,并且该组有权切换到Admin角色。任何地方都没有直接的行动政策。
我已经使用以下命令配置了我的AWS CLI。

[default]
region = eu-central-1
output = json

[profile parthiva]
aws_access_key_id = <key>
aws_secret_access_key = <secret>

[profile admin]
role_arn = arn:aws:iam::123456:role/AdminAccess
source_profile = parthiva
mfa_serial = arn:aws:iam::123456:mfa/s.parthiva

管理员的角色看起来像这样。

RoleAdmin:
    Type: AWS::IAM::Role
    Properties:
      AssumeRolePolicyDocument:
        Version: '2012-10-17'
        Statement:
          - Effect: Allow
            Principal:
              AWS:
                - !Sub 'arn:aws:iam::${DevAccountId}:root'
            Condition:
              Bool:
                aws:MultiFactorAuthPresent: true
            Action:
              - 'sts:AssumeRole'              
      Path: /
      ManagedPolicyArns:
        - arn:aws:iam::aws:policy/AdministratorAccess
      RoleName: AdminAccess

每当我执行aws s3 ls --profile admin之类的CLI操作时,它都会请求一个MFA令牌,并且在输入值时,命令成功。
但是我不能使用此配置来使用CodeCommit HTTPS(GRC)。以下是错误

parthiva@Parthiva-PC:~$ git clone codecommit::eu-central-1://test-repo
Cloning into 'test-repo'...
fatal: unable to access 'https://git-codecommit.eu-central-1.amazonaws.com/v1/repos/test-repo/': The requested URL returned error: 403

对我来说,在后台使用CLI时,这个codecommit命令看起来并没有占用配置文件管理。
有人能帮帮我吗?

krcsximq

krcsximq1#

首先,由于您已经将默认区域设置为eu-central-1,因此您可以简单地运行:

git clone codecommit://test-repo test-repo

若要在与您的配置文件中配置的AWS区域不同的AWS区域中克隆存储库,您需要包含AWS区域名称。例如:

git clone codecommit::ap-northeast-1://test-repo test-repo

要使用一个名为admin的配置文件克隆同一个存储库,您可以尝试如下所示:

git clone codecommit://admin@test-repo test-repo

希望这能帮上忙。

相关问题