Docs: add docs to use aws s3 provider for stackit s3 (#583)
* docs: add docs to use aws s3 provider for stackit s3 * review changes * fix indent
This commit is contained in:
parent
398470a33c
commit
2bf6a8dce7
2 changed files with 182 additions and 0 deletions
91
docs/guides/aws_provider_s3_stackit.md
Normal file
91
docs/guides/aws_provider_s3_stackit.md
Normal file
|
|
@ -0,0 +1,91 @@
|
|||
---
|
||||
page_title: "Using AWS Provider for STACKIT Object Storage (S3 compatible)"
|
||||
---
|
||||
# Using AWS Provider for STACKIT Object Storage (S3 compatible)
|
||||
|
||||
## Overview
|
||||
|
||||
This guide outlines the process of utilizing the [AWS Terraform Provider](https://registry.terraform.io/providers/hashicorp/aws/latest/docs) alongside the STACKIT provider to create and manage STACKIT Object Storage (S3 compatible) ressources.
|
||||
|
||||
## Steps
|
||||
|
||||
1. **Configure STACKIT Provider**
|
||||
|
||||
First, configure the STACKIT provider to connect to the STACKIT services.
|
||||
|
||||
```hcl
|
||||
provider "stackit" {
|
||||
region = "eu01"
|
||||
}
|
||||
```
|
||||
|
||||
2. **Define STACKIT Object Storage Bucket**
|
||||
|
||||
Create a STACKIT Object Storage Bucket and obtain credentials for the AWS provider.
|
||||
|
||||
```hcl
|
||||
resource "stackit_objectstorage_bucket" "example" {
|
||||
project_id = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
|
||||
name = "example"
|
||||
}
|
||||
|
||||
resource "stackit_objectstorage_credentials_group" "example" {
|
||||
project_id = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
|
||||
name = "example-credentials-group"
|
||||
}
|
||||
|
||||
resource "stackit_objectstorage_credential" "example" {
|
||||
project_id = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
|
||||
credentials_group_id = stackit_objectstorage_credentials_group.example.credentials_group_id
|
||||
expiration_timestamp = "2027-01-02T03:04:05Z"
|
||||
}
|
||||
```
|
||||
|
||||
3. **Configure AWS Provider**
|
||||
|
||||
Configure the AWS Provider to connect to the STACKIT Object Storage bucket.
|
||||
|
||||
```hcl
|
||||
provider "aws" {
|
||||
region = "eu01"
|
||||
skip_credentials_validation = true
|
||||
skip_region_validation = true
|
||||
skip_requesting_account_id = true
|
||||
|
||||
access_key = stackit_objectstorage_credential.example.access_key
|
||||
secret_key = stackit_objectstorage_credential.example.secret_access_key
|
||||
|
||||
endpoints {
|
||||
s3 = "https://object.storage.eu01.onstackit.cloud"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
4. **Use the provider to manage objects or policies**
|
||||
|
||||
```hcl
|
||||
resource "aws_s3_object" "test_file" {
|
||||
bucket = stackit_objectstorage_bucket.example.name
|
||||
key = "hello_world.txt"
|
||||
source = "files/hello_world.txt"
|
||||
content_type = "text/plain"
|
||||
etag = filemd5("files/hello_world.txt")
|
||||
}
|
||||
|
||||
resource "aws_s3_bucket_policy" "allow_public_read_access" {
|
||||
bucket = stackit_objectstorage_bucket.test20.name
|
||||
policy = <<EOF
|
||||
{
|
||||
"Statement":[
|
||||
{
|
||||
"Sid": "Public GET",
|
||||
"Effect":"Allow",
|
||||
"Principal":"*",
|
||||
"Action":"s3:GetObject",
|
||||
"Resource":"urn:sgws:s3:::example/*"
|
||||
}
|
||||
]
|
||||
}
|
||||
EOF
|
||||
}
|
||||
```
|
||||
Loading…
Add table
Add a link
Reference in a new issue