У меня есть корзина под названием «facontroltest», созданная пользователем на IAM с пользовательской политикой. Когда я получаю доступ к корзине, которая не соответствует политике, API выполняет все действия. Но мне нужно, чтобы пользователь на API мог получить доступ только для этого ведра.
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:ListBucket",
"s3:GetBucketLocation",
"s3:ListBucketMultipartUploads"],
"Resource": "arn:aws:s3:::facontroltest",
"Condition": {}
},
{
"Effect": "Allow",
"Action": [
"s3:AbortMultipartUpload",
"s3:DeleteObject",
"s3:DeleteObjectVersion",
"s3:GetObject",
"s3:GetObjectAcl",
"s3:GetObjectVersion",
"s3:GetObjectVersionAcl",
"s3:PutObject",
"s3:PutObjectAcl",
"s3:PutObjectAclVersion"],
"Resource": "arn:aws:s3:::facontroltest/*",
"Condition": {}
},
{
"Effect": "Allow",
"Action": "s3:ListAllMyBuckets",
"Resource": "*",
"Condition": {}
}
]
}
Мой код PHP:
$Credentials = new Credentials('key_user', 'secret_key');
$AmazonService = new S3Client([ 'version' => 'latest', 'region' => 'us-west-2', 'credentials' => $Credentials]);
$result = $AmazonService->getObject(array(
'Bucket' => 'other_bucket',
'Key' => 'file'
));
Почему я могу получить доступ к другому ведру, когда моя политика разрешает только «facontroltest»
Задача ещё не решена.
Других решений пока нет …