読者です 読者をやめる 読者になる 読者になる

set setting reset

インフラ関連の小ネタと備忘録

vpc endpoint から s3 へのアクセス制御 (bucket policy)

公式ドキュメント

  • vpc endpoint を作成時にできる vpce-id を使って許可、拒否ができる
  • 他のアカウント / vpc に対しても制御可能

記載された vpceIPアドレスのみ許可する設定例です。

{
    "Version": "2012-10-17",
    "Id": "vpce-restrict",
    "Statement": [{
        "Sid": "Allow-VPCE",
        "Action": "s3:*",
        "Principal": {
            "AWS": "*"
        },
        "Effect": "Allow",
        "Resource": [
            "arn:aws:s3:::bucket-name*",
            "arn:aws:s3:::bucket-name/*",
        ],
        "Condition": {
            "StringEquals": {
                "aws:sourceVpce": [
                    "vpce-********"
                ]
            }
        }
    }, {
        "Sid": "IPAddress-restrict",
        "Effect": "Allow",
        "Principal": {
            "AWS": "*"
        },
        "Action": "s3:*",
        "Resource": [
            "arn:aws:s3:::bucket-name*",
            "arn:aws:s3:::bucket-name/*",
        ],
        "Condition": {
            "IpAddress": {
                "aws:SourceIp": [
                    "***.***.***.***/**"
                ]
            }
        }
    }]
}

この場合、StringEquals だと許可、 StringNotEquals だと拒否になりますので、うまいぐあいに使い分けができます。
というか、これに気づかなくてハマってしまった・・・