Skip to content
Closed
Show file tree
Hide file tree
Changes from 2 commits
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
eff9d2e
PBM-1728-OCI-with-WIA
rasika-chivate Jun 10, 2026
9e9ab9c
Create oci-workload-identity-auth.md
rasika-chivate Jun 10, 2026
4e4abdd
Potential fix for pull request finding
rasika-chivate Jun 10, 2026
4a70cc7
Potential fix for pull request finding
rasika-chivate Jun 10, 2026
2bf90e4
Fix broken OKE workload identity docs link
Copilot Jun 10, 2026
7977471
Potential fix for pull request finding
rasika-chivate Jun 10, 2026
5ee6f08
Potential fix for pull request finding
rasika-chivate Jun 10, 2026
ec4b29e
Potential fix for pull request finding
rasika-chivate Jun 10, 2026
ab65a50
Potential fix for pull request finding
rasika-chivate Jun 10, 2026
024fb34
Remove generated git-committers cache file and ignore .cache
Copilot Jun 10, 2026
67da25a
Update oci-workload-identity-auth.md
rasika-chivate Jun 10, 2026
e4e8548
Update oci-workload-identity-auth.md
rasika-chivate Jun 10, 2026
ec0514b
Potential fix for pull request finding
rasika-chivate Jun 10, 2026
19ca476
Potential fix for pull request finding
rasika-chivate Jun 10, 2026
2a3bc65
Potential fix for pull request finding
rasika-chivate Jun 10, 2026
98918bd
Potential fix for pull request finding
rasika-chivate Jun 10, 2026
fc1439f
Potential fix for pull request finding
rasika-chivate Jun 10, 2026
fc035aa
Potential fix for pull request finding
rasika-chivate Jun 10, 2026
c2132a2
Add OCI storage docs to configuration reference and setup matrix
Copilot Jun 10, 2026
703e0f6
Potential fix for pull request finding
rasika-chivate Jun 10, 2026
e602e38
Use backtick YAML fence in OCI workload identity doc
Copilot Jun 10, 2026
e1409ab
Update oci-workload-identity-auth.md
rasika-chivate Jun 12, 2026
694d98e
Update oci-workload-identity-auth.md
rasika-chivate Jun 12, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
98 changes: 98 additions & 0 deletions docs/details/oci-workload-identity-auth.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,98 @@
# Oracle Cloud Storage using Workload Identity authentication

Check warning on line 1 in docs/details/oci-workload-identity-auth.md

View workflow job for this annotation

GitHub Actions / vale

[vale] docs/details/oci-workload-identity-auth.md#L1

[Google.Headings] 'Oracle Cloud Storage using Workload Identity authentication' should use sentence-style capitalization.
Raw output
{"message": "[Google.Headings] 'Oracle Cloud Storage using Workload Identity authentication' should use sentence-style capitalization.", "location": {"path": "docs/details/oci-workload-identity-auth.md", "range": {"start": {"line": 1, "column": 3}}}, "severity": "WARNING"}

Check warning on line 1 in docs/details/oci-workload-identity-auth.md

View workflow job for this annotation

GitHub Actions / vale

[vale] docs/details/oci-workload-identity-auth.md#L1

[Google.WordList] Use 'Google Cloud Platform' or 'GCP' instead of 'Cloud'.
Raw output
{"message": "[Google.WordList] Use 'Google Cloud Platform' or 'GCP' instead of 'Cloud'.", "location": {"path": "docs/details/oci-workload-identity-auth.md", "range": {"start": {"line": 1, "column": 10}}}, "severity": "WARNING"}
Comment thread
rasika-chivate marked this conversation as resolved.
Outdated

Workload Identity Federation (WIF) lets workloads authenticate to OCI resources using federated identities rather than static credentials. This eliminates the need to create, rotate, and distribute API keys or service account key files.

Percona Backup for MongoDB (PBM) supports two WIF authentication types for OCI Object Storage, in addition to the default `userPrincipal`:
Comment thread
rasika-chivate marked this conversation as resolved.
Outdated

| Auth type | When to use|
Comment thread
Copilot marked this conversation as resolved.
Outdated
|---|---|
| `instancePrincipal` | PBM is running on a virtual machine inside OCI |
| `okeWorkloadIdentity` | PBM is running inside an OKE enhanced cluster |

## instancePrincipal

Check warning on line 12 in docs/details/oci-workload-identity-auth.md

View workflow job for this annotation

GitHub Actions / vale

[vale] docs/details/oci-workload-identity-auth.md#L12

[Google.Headings] 'instancePrincipal' should use sentence-style capitalization.
Raw output
{"message": "[Google.Headings] 'instancePrincipal' should use sentence-style capitalization.", "location": {"path": "docs/details/oci-workload-identity-auth.md", "range": {"start": {"line": 12, "column": 4}}}, "severity": "WARNING"}

Check warning on line 12 in docs/details/oci-workload-identity-auth.md

View workflow job for this annotation

GitHub Actions / vale

[vale] docs/details/oci-workload-identity-auth.md#L12

[Vale.Spelling] Did you really mean 'instancePrincipal'?
Raw output
{"message": "[Vale.Spelling] Did you really mean 'instancePrincipal'?", "location": {"path": "docs/details/oci-workload-identity-auth.md", "range": {"start": {"line": 12, "column": 4}}}, "severity": "WARNING"}

Use this auth type when PBM is running directly on an OCI Compute instance. The instance itself acts as the principal — no credentials file is required.

Check failure on line 14 in docs/details/oci-workload-identity-auth.md

View workflow job for this annotation

GitHub Actions / vale

[vale] docs/details/oci-workload-identity-auth.md#L14

[Google.EmDash] Don't put a space before or after a dash.
Raw output
{"message": "[Google.EmDash] Don't put a space before or after a dash.", "location": {"path": "docs/details/oci-workload-identity-auth.md", "range": {"start": {"line": 14, "column": 118}}}, "severity": "ERROR"}

### Before you begin

You need:

- The [Oracle Cloud Identifier (OCID):octicons-link-external-16:](https://docs.oracle.com/en-us/iaas/Content/General/Concepts/identifiers.htm#Oracle){:target="_blank"} of the OCI Compute instance running PBM

Check warning on line 20 in docs/details/oci-workload-identity-auth.md

View workflow job for this annotation

GitHub Actions / vale

[vale] docs/details/oci-workload-identity-auth.md#L20

[Google.WordList] Use 'Google Cloud Platform' or 'GCP' instead of 'Cloud'.
Raw output
{"message": "[Google.WordList] Use 'Google Cloud Platform' or 'GCP' instead of 'Cloud'.", "location": {"path": "docs/details/oci-workload-identity-auth.md", "range": {"start": {"line": 20, "column": 15}}}, "severity": "WARNING"}
Comment thread
Copilot marked this conversation as resolved.
Outdated
- The name of the OCI bucket PBM will use for backups

Check warning on line 21 in docs/details/oci-workload-identity-auth.md

View workflow job for this annotation

GitHub Actions / vale

[vale] docs/details/oci-workload-identity-auth.md#L21

[Google.Will] Avoid using 'will'.
Raw output
{"message": "[Google.Will] Avoid using 'will'.", "location": {"path": "docs/details/oci-workload-identity-auth.md", "range": {"start": {"line": 21, "column": 34}}}, "severity": "WARNING"}
- A home region, tenancy OCID, and compartment name with sufficient IAM privileges to create dynamic groups and policies

### Prococedure

Check warning on line 24 in docs/details/oci-workload-identity-auth.md

View workflow job for this annotation

GitHub Actions / vale

[vale] docs/details/oci-workload-identity-auth.md#L24

[Vale.Spelling] Did you really mean 'Prococedure'?
Raw output
{"message": "[Vale.Spelling] Did you really mean 'Prococedure'?", "location": {"path": "docs/details/oci-workload-identity-auth.md", "range": {"start": {"line": 24, "column": 5}}}, "severity": "WARNING"}
Comment thread
Copilot marked this conversation as resolved.
Outdated

Follow these steps to set up OCI using **instancePrincipal:**

Check warning on line 26 in docs/details/oci-workload-identity-auth.md

View workflow job for this annotation

GitHub Actions / vale

[vale] docs/details/oci-workload-identity-auth.md#L26

[Vale.Spelling] Did you really mean 'instancePrincipal'?
Raw output
{"message": "[Vale.Spelling] Did you really mean 'instancePrincipal'?", "location": {"path": "docs/details/oci-workload-identity-auth.md", "range": {"start": {"line": 26, "column": 42}}}, "severity": "WARNING"}
Comment thread
Copilot marked this conversation as resolved.
Outdated

1. **Create a dynamic group for the instance**

OCI IAM policies cannot target individual instances directly. You must first add the instance to a dynamic group, then write a policy against that group.

```sh
oci iam dynamic-group create \
--region "$HOME_REGION" \
--compartment-id "$TENANCY_OCID" \
--name "$INSTANCE_DYNAMIC_GROUP_NAME" \
--description "PBM VM instance principal" \
--matching-rule "ANY {instance.id = '$INSTANCE_OCID'}"
```

Replace the following:

| Variable | Description |
|---|---|
| `HOME_REGION` | Your tenancy's home region (e.g. `us-ashburn-1`) |

Check failure on line 45 in docs/details/oci-workload-identity-auth.md

View workflow job for this annotation

GitHub Actions / vale

[vale] docs/details/oci-workload-identity-auth.md#L45

[Google.Latin] Use 'for example' instead of 'e.g.'.
Raw output
{"message": "[Google.Latin] Use 'for example' instead of 'e.g.'.", "location": {"path": "docs/details/oci-workload-identity-auth.md", "range": {"start": {"line": 45, "column": 51}}}, "severity": "ERROR"}
| `TENANCY_OCID` | OCID of your OCI tenancy |
| `INSTANCE_DYNAMIC_GROUP_NAME` | A name for the dynamic group (e.g. `pbm-vm-group`) |

Check failure on line 47 in docs/details/oci-workload-identity-auth.md

View workflow job for this annotation

GitHub Actions / vale

[vale] docs/details/oci-workload-identity-auth.md#L47

[Google.Latin] Use 'for example' instead of 'e.g.'.
Raw output
{"message": "[Google.Latin] Use 'for example' instead of 'e.g.'.", "location": {"path": "docs/details/oci-workload-identity-auth.md", "range": {"start": {"line": 47, "column": 69}}}, "severity": "ERROR"}
| `INSTANCE_OCID` | OCID of the Compute instance running PBM |

2. **Create an IAM policy for the dynamic group**

Grant the dynamic group permission to manage objects in the target bucket:

```sh
export INSTANCE_POLICY_STATEMENT="Allow dynamic-group $INSTANCE_DYNAMIC_GROUP_NAME \
to manage objects in compartment $COMPARTMENT_NAME \
where target.bucket.name = '$BUCKET_NAME'"

oci iam policy create \
--region "$HOME_REGION" \
--compartment-id "$TENANCY_OCID" \
--name "$INSTANCE_POLICY_NAME" \
--description "Allow PBM VM instance principal to access $BUCKET_NAME" \
--statements "[\"$INSTANCE_POLICY_STATEMENT\"]"
```

Replace the following additional variables:

| Variable | Description |
|---|---|
| `COMPARTMENT_NAME` | Name of the compartment containing the bucket |
| `BUCKET_NAME` | Name of the OCI Object Storage bucket |
| `INSTANCE_POLICY_NAME` | A name for the policy (e.g. `pbm-vm-policy`) |

Check failure on line 73 in docs/details/oci-workload-identity-auth.md

View workflow job for this annotation

GitHub Actions / vale

[vale] docs/details/oci-workload-identity-auth.md#L73

[Google.Latin] Use 'for example' instead of 'e.g.'.
Raw output
{"message": "[Google.Latin] Use 'for example' instead of 'e.g.'.", "location": {"path": "docs/details/oci-workload-identity-auth.md", "range": {"start": {"line": 73, "column": 55}}}, "severity": "ERROR"}

3. **Configure PBM to use instancePrincipal**

Check warning on line 75 in docs/details/oci-workload-identity-auth.md

View workflow job for this annotation

GitHub Actions / vale

[vale] docs/details/oci-workload-identity-auth.md#L75

[Vale.Spelling] Did you really mean 'instancePrincipal'?
Raw output
{"message": "[Vale.Spelling] Did you really mean 'instancePrincipal'?", "location": {"path": "docs/details/oci-workload-identity-auth.md", "range": {"start": {"line": 75, "column": 27}}}, "severity": "WARNING"}

In your PBM configuration, set the storage type to `oci` and the credentials type to `instancePrincipal`. No key file or passphrase is needed.

```yaml
storage:
type: oci
oci:
region: <bucket_region>
Comment thread
rasika-chivate marked this conversation as resolved.
Comment thread
rasika-chivate marked this conversation as resolved.
namespace: <namespace>
bucket: <bucket_name>
prefix: <path_prefix>
credentials:
type: instancePrincipal
```
Comment thread
Copilot marked this conversation as resolved.

## okeWorkloadIdentity

Use this auth type when PBM is running as a workload inside an OKE enhanced cluster. The Kubernetes service account token is exchanged for OCI credentials automatically by the OKE Workload Identity service.

!!! note
Your OKE cluster must be an **enhanced cluster** with Workload Identity enabled. Basic clusters do not support this feature.

For setup instructions, see [Configure PBM on OKE with Workload Identity](oci-oke-workload-identity.md).
Comment thread
rasika-chivate marked this conversation as resolved.
Outdated
Comment thread
rasika-chivate marked this conversation as resolved.
Outdated
1 change: 1 addition & 0 deletions mkdocs-base.yml
Original file line number Diff line number Diff line change
Expand Up @@ -237,6 +237,7 @@ nav:
- Storage:
- Remote backup storage overview: details/storage-configuration.md
- AWS S3 storage: details/s3-storage.md
- details/oci-workload-identity-auth.md
Comment thread
Copilot marked this conversation as resolved.
Outdated
- details/minio.md
- details/gcs.md
- Workload Identity authentication: details/workload-identity-auth.md
Expand Down
Loading