다른 계정 (targetAccount)에 액세스 할 수있는 AWS IAM 사용자가 내 계정에 있습니다 (originAccount라고 부름). targetAccount에있는 CodeCommit 리포지토리를 복제하려고합니다. 내 Windows 컴퓨터에서 내 originAccount 자격 증명을 사용합니다.AWS CodeCommit 교차 계정 리포지토리 액세스가 작동하지 않음
로그인 할 수 있으며 역할을 targetAccount로 전환하면 처음부터 리포지토리를 생성 한 것입니다. 청구를 제외하고는 targetAccount에 대한 전체 액세스 권한이 있습니다. 내 IAM 사용자에 대해 MFA를 활성화했습니다. 일시적으로 사용 중지하려고 시도했지만 도움이되지 않았습니다. 그러나 MFA를 해제 한 상태에서 aws s3 ls
을 targetAccount에 대한 오류없이 성공적으로 수행 할 수 있습니다.
SSH 및 HTTPS 모두 작동하지 않습니다. I 정적 자격 증명을 테스트로 복제 할 수 있지만 이는 장기간 허용되지 않습니다. 나는 originAccount에서
내 사용자는이 정책을 가지고 ...이 물건은 AWS에 얼마나 어려운지에서 놀라 울뿐입니다 :
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"sts:AssumeRole"
],
"Resource": [
"arn:aws:iam::000000000000:role/Administrator"
]
}
]
}
관리자의 역할은 모든에 액세스 할 수 있습니다. targetAccount의 신뢰 관계는 다음과 같습니다.
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::111111111111:user/MyUser"
},
"Action": "sts:AssumeRole",
"Condition": {
"Bool": {
"aws:MultiFactorAuthPresent": "true"
}
}
}
]
}
MFA 비트를 제거하려고했습니다. 도움이되지 않았다. 내 사용자 계정에서 MFA를 사용할 수 없게 되어도 도움이되지 않습니다.
내 .aws\credentials
파일이 라인을 포함 : 내가 사용하는 프로파일을 설정하는 환경 변수를 사용하고
[default]
aws_access_key_id = [originAccountKey]
aws_secret_access_key = [originAccountSecret]
[targetAccount]
aws_access_key_id = [originAccountKey]
aws_secret_access_key = [originAccountSecret]
을 예 :
set AWS_DEFAULT_PROFILE=targetAccount
내 .gitconfig
가 포함
[credential "https://git-codecommit.us-east-1.amazonaws.com"]
helper = !'C:\\path\\to\\git-credential-AWSSV4.exe' --profile='targetAccount'
UseHttpPath = true
원래는 기본 프로필을 사용하고 있었지만 어느 쪽도 일하지 않았다.
질문 :
- 이 가능합니까? 내가 도대체 뭘 잘못하고있는 겁니까?
- SSH와 HTTPS 모두 교차 계정 액세스가 가능합니까? 문서는 혼란 스럽지만 자격 증명 도우미가있는 HTTPS 만 작동하는 것으로 보이는 것 같습니다 (단언하면).
- 다중 요소 인증에서도 작동합니까? 그렇지 않으면 CodeCommit에 대해서만 끌 수 있습니까?
불행하게도 내가 찾은 다른 질문 중 어느 것도 내가 나오지 않았어 (I 제거한 나를 위해 일한 답변 ...
없었으며 단지에 대한 자격 증명 관리자가 설치되지 않은 확인하기 위해 Windows 용 망할 놈을 다시 설치 기억하지 못한다.) 그러나 여전히 작동하지 않는다고 repository '...' not found
은 말한다. HTTPS를 통해 originAccount에서 저장소를 복제 할 수 있습니다.
나는 Linux에서 작동하여 다음에 Windows를 시도 할 것입니다. – Josh
감사합니다. 명확히하기 위해,'role_arn' 계정 ID는 대상 계정 (관리자가있는 곳)이고'mfa_serial' 계정 ID는 원래 계정입니다. 나는'mfa_serial'이 존재한다는 것을 몰랐다. 마지막으로, 나의'credentials' 파일에는'[]'헤더 안에'profile' 접두어가 없습니다. 즉,'[target_account]'만 있습니다. – Josh