一、A、B账户创建S3
已有请忽略
二、A账户创建EC2
(自行创建自己的配置已有请忽略)
三、创建EC2对应的角色
需要对EC2赋予访问A账户S3的权限,以及B账户S3的权限
创建的角色里面创建2策略,一个是对自己账户的S3访问的权限,一个是对目标账户S3访问的权限,其次信任实体也需要改变如下:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": "arn:对应B账户的arn",
"Service": "ec2.amazonaws.com.cn"(国内就加)
},
"Action": "sts:AssumeRole"
}
]
}
创建的两个策略分别如下:
test01:对A账户及当前账户的S3都有访问权限
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "VisualEditor0",
"Effect": "Allow",
"Action": "s3:*",
"Resource": "*"
}
]
}
test02:对B账户的某个S3有访问权限
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "s3:*",
"Resource": [
"arn:aws-cn:s3:::***rctest",
"arn:aws-cn:s3:::***rctest/*"
]
}
]
}
配置完毕将角色附加到EC2上面
四、修改目标端S3权限
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": "arn:A账户刚刚绑定到机器上面的角色的arn"
},
"Action": "s3:*",
"Resource": [
"arn:aws-cn:s3:::***rctest",
"arn:aws-cn:s3:::***rctest/*"
]
},
]
}
五、登陆机器访问测试
访问、上传都可以。
注意:这样的方式需要将aksk配置文件去掉,不然会冲突一般是放在~/.aws/credentials和~/.aws/config这两个目录的。
方法二:
使用aksk角色代入的命令去访问
aws s3 ls s3://test --profile B账户配置文件名