Skip to content

Commit 43eb37c

Browse files
Copilotsgbaird
andcommitted
Add detailed step-by-step IAM user creation instructions
Co-authored-by: sgbaird <45469701+sgbaird@users.noreply.github.com>
1 parent 047cbba commit 43eb37c

File tree

1 file changed

+43
-10
lines changed

1 file changed

+43
-10
lines changed

src/ac_training_lab/a1_cam/README.md

Lines changed: 43 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -51,11 +51,28 @@ Create AWS IAM credentials with S3 access permissions. Follow the official guide
5151
- [Creating an IAM user in your AWS account](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_create.html)
5252
- [Managing access keys for IAM users](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_access-keys.html)
5353

54-
**Security best practice**: Create credentials with minimal permissions (principle of least privilege):
54+
**Detailed step-by-step instructions**:
5555

56-
1. In the AWS Console, go to **IAM****Users****Create user**
57-
2. Create a user specifically for this camera device (e.g., `a1-cam-user`)
58-
3. Attach a custom inline policy that grants only the necessary S3 permissions. Here's a recommended policy (based on [Issue #159](https://github.com/AccelerationConsortium/ac-dev-lab/issues/159#issuecomment-2725490350)):
56+
1. **Navigate to IAM**:
57+
- In the AWS Console, search for "IAM" in the top search bar or go to the Services menu → Security, Identity, & Compliance → IAM
58+
59+
2. **Create a new user**:
60+
- In the left sidebar, click **Users**
61+
- Click the **Create user** button (orange button in top right)
62+
- Enter a user name (e.g., `a1-cam-user`)
63+
- Click **Next**
64+
65+
3. **Set permissions**:
66+
- Select **Attach policies directly**
67+
- **Do not** select any AWS managed policies (we'll add a custom policy next)
68+
- Click **Next**
69+
- Review and click **Create user**
70+
71+
4. **Add custom inline policy**:
72+
- After creating the user, click on the user name to open the user details
73+
- Click on the **Add permissions** dropdown → **Create inline policy**
74+
- Click on the **JSON** tab
75+
- Replace the default policy with the following (based on [Issue #159](https://github.com/AccelerationConsortium/ac-dev-lab/issues/159#issuecomment-2725490350)):
5976

6077
```json
6178
{
@@ -87,12 +104,28 @@ Create AWS IAM credentials with S3 access permissions. Follow the official guide
87104
}
88105
```
89106

90-
Replace `your-bucket-name` with your actual bucket name.
91-
92-
4. Create access keys for this user and save them securely
93-
- You'll receive an `AWS_ACCESS_KEY_ID` and `AWS_SECRET_ACCESS_KEY`
94-
- **Important**: These credentials will only be shown once, so save them immediately to a secure password manager
95-
- **Security best practice**: Rotate these credentials periodically and revoke them immediately if compromised
107+
- Replace `your-bucket-name` with your actual bucket name (e.g., `rpi-zero2w-toolhead-camera`)
108+
- Click **Next**
109+
- Enter a policy name (e.g., `a1-cam-s3-access`)
110+
- Click **Create policy**
111+
112+
5. **Create access keys**:
113+
- Still on the user details page, click the **Security credentials** tab
114+
- Scroll down to **Access keys** section
115+
- Click **Create access key**
116+
- Select **Application running outside AWS** as the use case
117+
- Click **Next**
118+
- (Optional) Add a description tag (e.g., "A1 Mini Camera Raspberry Pi")
119+
- Click **Create access key**
120+
- **IMPORTANT**: You'll see your `AWS_ACCESS_KEY_ID` and `AWS_SECRET_ACCESS_KEY` displayed
121+
- Click **Download .csv file** or copy both values immediately - they will only be shown once!
122+
- Save these credentials securely in a password manager
123+
- Click **Done**
124+
125+
**Security best practices**:
126+
- Rotate these credentials periodically (every 90 days recommended)
127+
- Revoke credentials immediately if compromised
128+
- Never commit credentials to version control
96129

97130
The a1_cam device generates URLs like:
98131
```

0 commit comments

Comments
 (0)