![](/img/trans.png)
[英]Access denied error on aws s3 when uploading a file from an ec2 instance that is on a different account
[英]AWS EC2 Access Denied S3 Cross Account
我有兩個aws帳戶A和B。
在賬戶 A 中,我有一個 EC2 在一個私有子網中的一個 vpc 內運行,該子網開啟了 NAT。 此 EC2 具有以下作用:
AWS 賬戶 A - EC2 角色 受信任實體:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": "ec2.amazonaws.com"
},
"Action": "sts:AssumeRole"
}
]
}
AWS 賬戶 A - EC2 角色策略:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "VisualEditor0",
"Effect": "Allow",
"Action": "sts:AssumeRole",
"Resource": "arn:aws:iam::ACCOUNT-B-NUMBER:role/aws-access-s3"
}
]
}
在賬戶 B 中,我創建了一個 aws 賬戶角色,傳遞了 aws 賬戶 A 編號。
AWS 賬戶 B - 角色 aws-access-s3 可信實體:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::ACCOUNT-A-NUMBER:root"
},
"Action": "sts:AssumeRole",
"Condition": {}
}
]
}
AWS 賬戶 B - 角色 aws-access-s3 策略:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:*",
"s3-object-lambda:*"
],
"Resource": "*"
}
]
}
這些是我的設置,當我嘗試運行命令以在賬戶 A 的 ec2 中列出賬戶 B 存儲桶時,出現錯誤:
aws s3 ls bucket-name-account-b
回報:
An error occurred (AccessDenied) when calling the ListObjectsV2 operation: Access Denied
我不知道我錯過了什么,我希望有人能幫助我。
您需要創建一個配置文件以使此過程自動化。 您可以將以下內容添加到您的.aws/config
文件中
[profile mys3profile]
region = $region
output = json
並將以下內容添加到您的.aws/credentials
文件中。
[mys3profile]
role_arn = arn:aws:iam::accountb:role/yourrole
credential_source = Ec2InstanceMetadata
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.