# Using predefined s3 bucket

**URL:** https://forum.serverless.com/t/using-predefined-s3-bucket/1563
**Category:** Serverless Framework
**Created:** [March 27, 2017, 10:06pm UTC](https://forum.serverless.com/t/using-predefined-s3-bucket/1563 "2017-03-27T22:06:53Z")
**Posts on this page:** 2
**Page:** 1

<div class="post-metadata">

### Author: ![mkarki01](https://avatars.discourse-cdn.com/v4/letter/m/7cd45c/32.png) [@mkarki01](https://forum.serverless.com/u/mkarki01)
#### Post date: [March 27, 2017, 10:06pm UTC](https://forum.serverless.com/t/using-predefined-s3-bucket/1563/1 "2017-03-27T22:06:53Z")

</div>

Our ops team has created temporary buckets that we can only use those to deploy to. I set the bucket name under provider:

provider:  
name: aws  
runtime: nodejs4.3  
stage: dev  
region: us-west-2  
deploymentBucket: tech-30day-retention

However, when i try to deploy I get error:

Serverless: Packaging service…  
Serverless: Uploading CloudFormation file to S3…  
Serverless: Uploading service .zip file to S3 (10.06 MB)…  
Serverless: Creating Stack…

Serverless Error ---------------------------------------

```
 TemplateURL must reference a valid S3 object to which
 you have access.

```

Stack Trace --------------------------------------------

ServerlessError: TemplateURL must reference a valid S3 object to which you have access.  
at Response.req.send (/usr/local/lib/node\_modules/serverless/lib/plugins/aws/provider/awsProvider.js:163:20)  
at Request. (/usr/local/lib/node\_modules/serverless/node\_modules/aws-sdk/lib/request.js:355:18)  
at Request.callListeners (/usr/local/lib/node\_modules/serverless/node\_modules/aws-sdk/lib/sequential\_executor.js:105:20)  
at Request.emit (/usr/local/lib/node\_modules/serverless/node\_modules/aws-sdk/lib/sequential\_executor.js:77:10)  
at Request.emit (/usr/local/lib/node\_modules/serverless/node\_modules/aws-sdk/lib/request.js:668:14)  
at Request.transition (/usr/local/lib/node\_modules/serverless/node\_modules/aws-sdk/lib/request.js:22:10)  
at AcceptorStateMachine.runTo (/usr/local/lib/node\_modules/serverless/node\_modules/aws-sdk/lib/state\_machine.js:14:12)  
at /usr/local/lib/node\_modules/serverless/node\_modules/aws-sdk/lib/state\_machine.js:26:10  
at Request. (/usr/local/lib/node\_modules/serverless/node\_modules/aws-sdk/lib/request.js:38:9)  
at Request. (/usr/local/lib/node\_modules/serverless/node\_modules/aws-sdk/lib/request.js:670:12)  
at Request.callListeners (/usr/local/lib/node\_modules/serverless/node\_modules/aws-sdk/lib/sequential\_executor.js:115:18)  
at Request.emit (/usr/local/lib/node\_modules/serverless/node\_modules/aws-sdk/lib/sequential\_executor.js:77:10)  
at Request.emit (/usr/local/lib/node\_modules/serverless/node\_modules/aws-sdk/lib/request.js:668:14)  
at Request.transition (/usr/local/lib/node\_modules/serverless/node\_modules/aws-sdk/lib/request.js:22:10)  
at AcceptorStateMachine.runTo (/usr/local/lib/node\_modules/serverless/node\_modules/aws-sdk/lib/state\_machine.js:14:12)  
at /usr/local/lib/node\_modules/serverless/node\_modules/aws-sdk/lib/state\_machine.js:26:10  
From previous event:  
at persistentRequest (/usr/local/lib/node\_modules/serverless/lib/plugins/aws/provider/awsProvider.js:151:14)  
at doCall (/usr/local/lib/node\_modules/serverless/lib/plugins/aws/provider/awsProvider.js:130:9)  
at BbPromise (/usr/local/lib/node\_modules/serverless/lib/plugins/aws/provider/awsProvider.js:141:14)  
From previous event:  
at persistentRequest (/usr/local/lib/node\_modules/serverless/lib/plugins/aws/provider/awsProvider.js:128:38)  
at AwsProvider.request (/usr/local/lib/node\_modules/serverless/lib/plugins/aws/provider/awsProvider.js:144:12)  
at AwsDeploy.createFallback (/usr/local/lib/node\_modules/serverless/lib/plugins/aws/lib/updateStack.js:38:26)  
From previous event:  
at AwsDeploy.BbPromise.bind.then.then (/usr/local/lib/node\_modules/serverless/lib/plugins/aws/lib/updateStack.js:108:14)  
From previous event:  
at AwsDeploy.updateStack (/usr/local/lib/node\_modules/serverless/lib/plugins/aws/lib/updateStack.js:103:8)  
From previous event:  
at deploy:deploy (/usr/local/lib/node\_modules/serverless/lib/plugins/aws/deploy/index.js:55:10)  
at BbPromise.reduce (/usr/local/lib/node\_modules/serverless/lib/classes/PluginManager.js:156:50)  
at runCallback (timers.js:651:20)  
at tryOnImmediate (timers.js:624:5)  
at processImmediate [as \_immediateCallback] (timers.js:596:5)  
From previous event:  
at PluginManager.run (/usr/local/lib/node\_modules/serverless/lib/classes/PluginManager.js:156:22)  
at Serverless.run (/usr/local/lib/node\_modules/serverless/lib/Serverless.js:95:31)  
at serverless.init.then (/usr/local/lib/node\_modules/serverless/bin/serverless:23:50)  
at process.\_tickCallback (internal/process/next\_tick.js:103:7)

Any ide how to resolve this?

---

<div class="post-metadata">

### Author: ![erikerikson](https://yyz2.discourse-cdn.com/flex036/user_avatar/forum.serverless.com/erikerikson/32/729_2.png) [@erikerikson](https://forum.serverless.com/u/erikerikson)
#### Post date: [June 15, 2017, 10:01pm UTC](https://forum.serverless.com/t/using-predefined-s3-bucket/1563/2 "2017-06-15T22:01:39Z")

</div>

You need to have GetObject permissions on your deployment role. The following policy cleared this error up for me.

```
- Effect: Allow
  Action:
    - 's3:GetObject'
  Resource:
    Fn::Join:
      - ''
      - - 'arn:aws:s3:::'
        - ${bucketName}
        - '/serverless/*'
```
