https://github.com/hubspotwebteam/serverless-resource-policy
Custom serverless plugin for whitelisting certain IP and/or CIDR addresses by setting a resource policy
https://github.com/hubspotwebteam/serverless-resource-policy
cidr hacktoberfest ip plugin resource-policy resourcepolicy serverless whitelist
Last synced: 2 months ago
JSON representation
Custom serverless plugin for whitelisting certain IP and/or CIDR addresses by setting a resource policy
- Host: GitHub
- URL: https://github.com/hubspotwebteam/serverless-resource-policy
- Owner: HubSpotWebTeam
- Created: 2018-12-09T19:45:35.000Z (almost 7 years ago)
- Default Branch: master
- Last Pushed: 2018-12-10T17:15:39.000Z (almost 7 years ago)
- Last Synced: 2024-11-28T19:04:56.408Z (10 months ago)
- Topics: cidr, hacktoberfest, ip, plugin, resource-policy, resourcepolicy, serverless, whitelist
- Language: JavaScript
- Homepage:
- Size: 8.79 KB
- Stars: 8
- Watchers: 6
- Forks: 1
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Serverless Resource Policy
Creates a whitelist for IP or CIDR addresses accessing a serverless application, using serverless resource policies. This enables you to allow requests only from the IP or CIDR addresses you specify.
## Private and Public Stages
CIDR and IP addresses are whitelisted by stages.
- `privateStages`: Private to whitelisted CIDR and IP addresses. In the example below, our `dev` and `staging` stages are `privateStages`, so only those CIDR and IP addresses can access `dev` and `staging`.
- `publicStages`: No whitelisting necessary. These stages are public to all CIDR and IP addresses.## How to Use
1. Install in your serverless application: `npm install --save serverless-resource-policy`
2. In your `serverless.yml` file, add the `serverless-resource-plugin`, for example:
```
plugins:
- serverless-resource-policy
```
3. Within the `provider` block, add a `stage` variable:
```
provider:
stage: ${opt:stage, 'dev'}
```
4. Within a `custom` block, add:
```
custom:
serverless-resource-policy:
stage: ${self:provider.stage}
privateStages:
- dev
- staging
publicStages:
- production
netblocks:
- 123.45.67.890/30
- 987.65.432.109
```> The `netblocks` object will contain the list of whitelisted IPs.
### Full Example
```
# serverless.ymlservice: my-service-name
plugins:
- serverless-resource-policyprovider:
stage: ${opt:stage, 'dev'}custom:
serverless-resource-policy:
stage: ${self:provider.stage}
privateStages:
- dev
- staging
publicStages:
- production
netblocks:
- 123.45.67.890/30
- 987.65.432.109
```# Contributing
Currently maintained by the lovely folks on HubSpot's Web Team, but we need your help. Please feel free to submit pull requests to add new functionality.