我在我的賬戶中有一個AWS IAM用戶(我們稱之爲originAccount),它有權訪問另一個賬戶(targetAccount),並且我試圖克隆targetAccount中存在的CodeCommit存儲庫在我的Windows機器上使用我的originAccount憑據。AWS CodeCommit跨賬戶存儲庫訪問不起作用
我可以登錄並將角色切換到targetAccount就好,這就是我首先創建存儲庫的方式。除計費外,我可以完全訪問targetAccount。我的IAM用戶上啓用了MFA。我試過暫時關閉它,但它沒有幫助。但是,在MFA關閉的情況下,我可以成功執行aws s3 ls
,但不會爲targetAccount發生錯誤。
SSH和HTTPS都不起作用。我可以作爲測試克隆它與靜態憑據,但這是不可接受的長期。我在這個東西是多麼困難的AWS驚訝...
我在originAccount用戶有這樣的政策:
{
"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只能關閉嗎?
遺憾的是沒有其他問題,我發現有這樣的工作對我的答案...
我卸載並重新安裝的Git的Windows只是可以肯定的是沒有安裝的憑據管理器(我不能不記得),但它仍然不起作用,說repository '...' not found
。儘管我可以通過HTTPS在originAccount中克隆存儲庫。
我得到這個在Linux上工作,然後嘗試Windows ... – Josh
它的工作,謝謝!只是爲了澄清,'role_arn'帳戶ID是目標帳戶(管理員存在)和'mfa_serial'帳戶ID是原始帳戶。我甚至不知道存在'mfa_serial'。最後,在我的'credentials'文件中,'[]'頭文件中沒有'profile'前綴,即我只有'[target_account]'。 – Josh