Моя корзина s3: testbucket , которая приватная . Я создал конечную точку vp c, чтобы я мог получить доступ к объекту корзины без подключения к inte rnet. Политика конечных точек vp c была определена следующим образом:
{
"Sid": "Access-to-specific-bucket-only",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": [
"arn:aws:s3:::testbucket",
"arn:aws:s3:::testbucket/*"
]
}
Я создал роль AB C со следующей политикой
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "VisualEditor0",
"Effect": "Allow",
"Action": "s3:ListBucket",
"Resource": "arn:aws:s3:::testbucket"
},
{
"Sid": "VisualEditor1",
"Effect": "Allow",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::testbucket/*"
}
]
}
Политика корзины определяется следующим образом:
{
"Version": "2012-10-17",
"Id": "PolicyToAccessThroughVPCEndPoint",
"Statement": [
{
"Sid": "Access-to-specific-VPCE-only",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::testbucket/*",
"Condition": {
"StringEquals": {
"aws:sourceVpce": "MY VPCE"
}
}
}
]
}
Теперь, чтобы проверить, доступен ли мой объект корзины или нет. Я запустил экземпляр EC2 с той же учетной записью, и я могу получить доступ к объектам на EC2, и он работает правильно.
Теперь вышеуказанная политика все еще широко открыта, и я хочу ограничить использование корзины на основе созданной роли " AB C". Поэтому я добавил основные записи в политику корзины.
"Principal": {
"AWS": "ARN OF ROLE ABC"
}
с указанным выше изменением, я также прикрепляю роль к экземпляру ec2. Однако я не могу получить доступ к изображению, хранящемуся в корзине, которая была доступна ранее с "Principal": "*" .
Я получаю ошибку "Отказано в доступе".
Как я могу устранить эту ошибку?