как мы можем сгенерировать сигнатуру S3 из apache httpd - PullRequest
0 голосов
/ 09 октября 2018

У меня есть приватная корзина S3, где размещен мой статический веб-сайт, и у меня также есть прокси-сервер Apache httpd.Поэтому я хочу перенаправить свои запросы с прокси на S3.

Мой экземпляр должен иметь доступ, потому что я вставил в BucketPolicy IP-адрес экземпляра ec2:

{
    "Version": "2008-10-17",
    "Id": "S3_Policy",
    "Statement": [
        {
            "Sid": "AllowWebAccess",
            "Effect": "Allow",
            "Principal": "*",
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::mybucket/*",
            "Condition": {
                "IpAddress": {
                    "aws:SourceIp": "192.168.0.1/32"
                }
            }
        }
    ]
}

, но когдая пытаюсь обслуживать статический веб-сайт с httpd-прокси, получаю сообщение об ошибке:

 <Error>
<Code>AccessDenied</Code>
<Message>Access Denied</Message>
<RequestId>D7C96fd6A80A99E8</RequestId>
<HostId>
PmPyhF1xqK3CgG9n1tchueoLrzfakwOkB0zxbqAMJy+qhid+QTClR9kvAWD30b+VQ6UEi5YY3bc=
</HostId>
</Error>

Моя конфигурация Httpd:

ProxyPreserveHost off
<Location /static>

        ProxyPass http://s3-eu-west-1.amazonaws.com/mybucket
        ProxyPass   http://s3-eu-west-1.amazonaws.com/mybucket
   </Location>

Итак, я думаю, что проблема в том, что мой httpd не можетиспользуйте подпись, чтобы получить авторизацию для доступа к корзине s3

, так что у вас есть идеи?

Заранее спасибо

1 Ответ

0 голосов
/ 09 октября 2018

Я нашел ответчик этой проблемы

мне нужно создать vpcEndoint форму VPC TAB

, а затем дать доступ к конечной точке vpc в bucketpolicy

{
    "Version": "2008-10-17",
    "Id": "S3_Policy",
    "Statement": [
        {
            "Sid": "AllowWebAccess",
            "Effect": "Allow",
            "Principal": "*",
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::mybucket/*",
            "Condition": {
                "StringEquals": {
                    "aws:sourceVpce": "vpce-xxx"
                }
            }
        },
        {
            "Sid": "DenyWebAccess",
            "Effect": "Deny",
            "Principal": "*",
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::diva-mybucket/*",
            "Condition": {
                "StringNotEquals": {
                    "aws:sourceVpce": "vpce-xxx
            }
        }
    ]
}

с этой конфигурацией нам не нужно использовать ключ доступа и закрытый ключ или подпись

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...