# Function could not deploy, error: bucket 'abc' already exist and you don't have permission to access it

**URL:** <https://discuss.elastic.co/t/function-could-not-deploy-error-bucket-abc-already-exist-and-you-dont-have-permission-to-access-it/184467>\
**Category:** Beats\
**Tags:** functionbeat\
**Created:** [June 5, 2019, 10:49pm UTC](https://discuss.elastic.co/t/function-could-not-deploy-error-bucket-abc-already-exist-and-you-dont-have-permission-to-access-it/184467 "2019-06-05T22:49:30Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![mac65](https://avatars.discourse-cdn.com/v4/letter/m/58956e/32.png) [@mac65](https://discuss.elastic.co/u/mac65)\
**Post date:** [June 5, 2019, 10:49pm UTC](https://discuss.elastic.co/t/function-could-not-deploy-error-bucket-abc-already-exist-and-you-dont-have-permission-to-access-it/184467/1 "2019-06-05T22:49:30Z")

</div>

Hi, I'm having the same issue as [Unable to deploy functionbeat to s3 bucket](https://discuss.elastic.co/t/unable-to-deploy-functionbeat-to-s3-bucket/171371/3), using Function Beat 7.1.1 Linux x86\_64.

I do have full access to the bucket, and it does exist:

# aws s3 ls s3://

I am logged in as root, so let me know if that's a problem. I'm running on EC2 with Role that grants me access to bucket.

Functionbeat.yml (slightly redacted):  
functionbeat.provider.aws.deploy\_bucket: ""  
functionbeat.provider.aws.functions:

- name: cloudwatch  
enabled: true  
type: cloudwatch\_logs  
description: "lambda function for cloudwatch logs"  
env: staging  
triggers:
  - log\_group\_name: /aws/lambda/

- name: sqs  
enabled: false  
type: sqs  
description: "lambda function for SQS events"  
triggers:
  - event\_source\_arn: arn:aws:sqs:us-east-1:xxxxx:myevents

- name: kinesis  
enabled: false  
type: kinesis  
description: "lambda function for Kinesis events"  
triggers:
  - event\_source\_arn: arn:aws:sqs:us-east-1:xxxxx:myevents  
name: abcdef-funcbeat  
tags: ["", ""]  
env: staging  
queue:  
mem:  
events: 4096  
flush.min\_events: 2048  
flush.timeout: 1s  
output.elasticsearch:  
hosts: ["ip-.us-east-2.compute.internal:9200"]  
setup.template.settings:  
setup.kibana:  
host: "http://:5601"  
logging.level: debug  
logging.to\_files: true  
logging.files:

Please help! Thank you in advance!  
David

---

<div class="post-metadata">

**Author:** ![kvch](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/kvch/32/72058_2.png) [@kvch](https://discuss.elastic.co/u/kvch)\
**Post date:** [June 6, 2019, 8:45am UTC](https://discuss.elastic.co/t/function-could-not-deploy-error-bucket-abc-already-exist-and-you-dont-have-permission-to-access-it/184467/2 "2019-06-06T08:45:45Z")

</div>

Functionbeat checks if the bucket exists using HEAD bucket call. Unfortunately, this part of the code does not return the error exactly. I am opening a PR to fix it.

Have you set the environment variables `AWS_ACCESS_KEY_ID`, `AWS_SECRET_ACCESS_KEY` and `AWS_DEFAULT_REGION` correctly?

---

<div class="post-metadata">

**Author:** ![mac65](https://avatars.discourse-cdn.com/v4/letter/m/58956e/32.png) [@mac65](https://discuss.elastic.co/u/mac65)\
**Post date:** [June 6, 2019, 2:40pm UTC](https://discuss.elastic.co/t/function-could-not-deploy-error-bucket-abc-already-exist-and-you-dont-have-permission-to-access-it/184467/3 "2019-06-06T14:40:46Z")

</div>

Ahh, I think I understand. I'm using the credentials provider (by default) but not the default profile, so I think I just need to set AWS\_PROFILE. We don't have keys because I'm running on EC2 with an instance profile. I'll respond back when I test.

---

<div class="post-metadata">

**Author:** ![mac65](https://avatars.discourse-cdn.com/v4/letter/m/58956e/32.png) [@mac65](https://discuss.elastic.co/u/mac65)\
**Post date:** [June 6, 2019, 2:54pm UTC](https://discuss.elastic.co/t/function-could-not-deploy-error-bucket-abc-already-exist-and-you-dont-have-permission-to-access-it/184467/4 "2019-06-06T14:54:51Z")

</div>

Nope, I was wrong. The instance profile is the default. I can do a `aws s3 ls s3://<bucketname>` and it works just fine.

Does the functionbeat not work with the default credential provider chain?

---

<div class="post-metadata">

**Author:** ![kvch](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/kvch/32/72058_2.png) [@kvch](https://discuss.elastic.co/u/kvch)\
**Post date:** [June 6, 2019, 3:05pm UTC](https://discuss.elastic.co/t/function-could-not-deploy-error-bucket-abc-already-exist-and-you-dont-have-permission-to-access-it/184467/5 "2019-06-06T15:05:16Z")

</div>

I see. Right now we don't support AWS profiles. Do you mind opening a feature request on GH? [https://github.com/elastic/beats/issues/new?template=feature-request.md](https://github.com/elastic/beats/issues/new?template=feature-request.md)

---

<div class="post-metadata">

**Author:** ![mac65](https://avatars.discourse-cdn.com/v4/letter/m/58956e/32.png) [@mac65](https://discuss.elastic.co/u/mac65)\
**Post date:** [June 6, 2019, 4:28pm UTC](https://discuss.elastic.co/t/function-could-not-deploy-error-bucket-abc-already-exist-and-you-dont-have-permission-to-access-it/184467/6 "2019-06-06T16:28:24Z")

</div>

I've made the request. I've maybe figured out a way around, but now I'm getting an error when the deploy executes cloudformation to create a role. We're not allowed to create roles. Can I specify a role instead?

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/elastic/original/3X/1/a/1ac57faf039f6b580b3f104ef42a2a89e41014de.png) [@system](https://discuss.elastic.co/u/system)\
**Post date:** [June 27, 2019, 6:28am UTC](https://discuss.elastic.co/t/function-could-not-deploy-error-bucket-abc-already-exist-and-you-dont-have-permission-to-access-it/184467/7 "2019-06-27T06:28:51Z")

</div>

This topic was automatically closed 20 days after the last reply. New replies are no longer allowed.
