-
Notifications
You must be signed in to change notification settings - Fork 1.3k
Expand file tree
/
Copy pathaws.yaml
More file actions
85 lines (83 loc) · 3.75 KB
/
Copy pathaws.yaml
File metadata and controls
85 lines (83 loc) · 3.75 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
# SPDX-FileCopyrightText: Copyright (c) 2025-2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
# SPDX-License-Identifier: Apache-2.0
# Example provider profile. OpenShell does not load it; import it explicitly:
# openshell provider profile lint -f providers/aws.yaml
# openshell provider profile import -f providers/aws.yaml --global
#
# Copy and edit this file rather than importing it unchanged. `binaries` is the
# least-privilege control that decides which processes may reach the endpoints
# below, so it has to name the paths in *your* image.
#
# Client binaries: none declared — this profile grants no egress.
# Reference layout: any image with an AWS SDK or the aws CLI. Credentials arrive
# as the standard AWS_* environment variables, so clients pick
# them up without configuration.
# Credential scope: AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY and
# AWS_SESSION_TOKEN, minted by the gateway with one STS
# AssumeRole call and rotated before expiry. The role ARN and
# any long-lived source keys stay at the gateway; configure
# them with `openshell provider refresh configure`.
# Endpoint access: none. The profile declares no endpoints, so it grants no
# network access on its own — pair it with a sandbox policy
# or another profile (see aws-s3.yaml) that names the AWS
# hosts the workload needs.
# Smoke test: openshell sandbox create --provider <name> -- \
# aws sts get-caller-identity
id: aws
display_name: AWS
description: Generic AWS access via STS temporary credentials
category: other
credentials:
- name: access_key_id
description: AWS access key ID (gateway-minted via STS)
env_vars: [AWS_ACCESS_KEY_ID]
required: true
refresh:
strategy: aws_sts_assume_role
refresh_before_seconds: 300
max_lifetime_seconds: 3600
# One AssumeRole call mints all three AWS credentials. The refresh is
# attached to access_key_id (primary); these outputs co-manage the
# secret key and session token on their sibling credentials.
additional_outputs:
- output: secret_access_key
credential: secret_access_key
- output: session_token
credential: session_token
material:
- name: role_arn
description: ARN of the IAM role to assume
required: true
secret: false
- name: session_name
description: Session name for CloudTrail attribution
required: false
secret: false
- name: external_id
description: External ID for cross-account role assumption
required: false
secret: false
- name: aws_region
description: AWS region for STS endpoint
required: false
secret: false
- name: aws_access_key_id
description: Long-lived IAM access key (only needed if gateway lacks ambient AWS credentials)
required: false
secret: false
- name: aws_secret_access_key
description: Long-lived IAM secret key (only needed if gateway lacks ambient AWS credentials)
required: false
secret: true
- name: aws_session_token
description: Session token for temporary source credentials (SSO or a prior AssumeRole); requires the access/secret pair
required: false
secret: true
- name: secret_access_key
description: AWS secret access key (co-managed with access_key_id)
env_vars: [AWS_SECRET_ACCESS_KEY]
required: true
- name: session_token
description: AWS session token (co-managed with access_key_id)
env_vars: [AWS_SESSION_TOKEN]
required: true