Fix/predictable admin password (#166)
- fix(auth): Prevent privilege escalation via self-writable Cognito custom attribute
Add WriteAttributes restriction to Cognito UserPoolClient to block client-side writes to custom:deployment_admin and custom:wheel_group_id. Add server-side email verification against DEPLOYMENT_ADMIN_EMAILS in the authorizer, middleware, and deployment admin operations as defense-in-depth. Admin API calls (deploy script, Lambda functions) bypass WriteAttributes and continue to work.
sim: https://t.corp.amazon.com/P400495385
- fix(deploy): Replace predictable admin password with random generation
The deployment script used a predictable temporary admin password pattern that could be derived by observing API request paths. Replace with a randomly generated 16-character password that meets Cognito complexity requirements.
版权所有:中国计算机学会技术支持:开源发展技术委员会
京ICP备13000930号-9
京公网安备 11010802032778号
AWS Ops Wheel - Enhanced Multi-Tenant Edition
The AWS Ops Wheel is a tool that simulates a random selection from a group of participants that weights away from participants recently chosen. For any group, the selection can also be rigged to suggest a particular participant that will be selected in a blatantly obvious (and sometimes hilarious) way. Version 2.0 introduces multi-tenant architecture, advanced user management, and enterprise-grade security features.
Quick Start (Recommended V2)
Deploy the enhanced multi-tenant version with advanced features:
Option 1: V2 Deployment (Recommended)
Option 2: Legacy V1 Deployment
Version Comparison
How It Works
Core Concept
The AWS Ops Wheel provides fair random selection with intelligent weighting that reduces the probability of selecting recently chosen participants. This ensures balanced distribution over time while maintaining the element of surprise.
Selection Algorithm
The enhanced weighting system works as follows:
This algorithm ensures recently chosen participants have lower probability of being selected again, promoting fairness over time.
Operations Guide
V2 Enhanced Operations
Wheel Group Operations
Notes: Wheel Groups are isolated organizational containers in V2’s multi-tenant architecture
Enhanced Wheel Operations
Notes: Wheels are scoped to their wheel group with advanced multi-tenant features
Advanced Participant Operations
Notes: Participants have enhanced profiles and are isolated within wheel groups
User Management Operations (V2 Multi-Tenant)
Notes: Users belong to wheel groups with role-based permissions
Deployment Admin Operations (Platform Management)
Notes: Deployment Admins have cross-group platform oversight
V1 Legacy Operations
Basic Wheel Operations (V1)
Notes: V1 provides single-tenant wheel management
Basic Participant Operations (V1)
Notes: Participants aren’t shared between wheels in V1
Authentication and User Management (V1)
Notes: V1 uses basic Cognito authentication without multi-tenant features
Screenshots
Wheels Table
Participants Table
Wheel Interface (Pre-spin)
Wheel Interface (Post-spin)
User Guide
V2 Core Concepts
Wheel Groups
Wheel Groups are isolated organizational containers that provide:
User Roles & Permissions
Enhanced Wheel Operations
Participant Management
Legacy V1 Concepts
V1 provides the original single-tenant experience:
Development Guide
Development Dependencies
V2 Requirements (Recommended)
V1 Requirements (Legacy Support)
AWS Permissions & Setup
Recommended: Dedicated IAM User
Create a dedicated IAM user for development:
cloudformation/awsopswheel-create-policy.jsonRequired AWS Services
Testing
V2 Comprehensive Testing
V1 Legacy Testing
🚀 Deployment Guide
V2 Enhanced Deployment (Recommended)
Quick Deployment
Advanced Options
V2 Deployment Features
V1 Legacy Deployment
Option 1: CloudFormation Launch
Use the launch button above or deploy directly:
Option 2: Manual Build & Deploy
Post-Deployment Setup
V2 Multi-Tenant Setup
V1 Single-Tenant Setup
Miscellaneous
Import Participant Data from CSV
V1 Legacy CSV Import
Use the utility script for V1 deployments:
Stack Management
V2 Stack Operations
Wheel Customization
To change wheel spinning speed, modify
EASE_OUT_FRAMESandLINEAR_FRAMESinui/src/components/wheel.jsx. Lower values correspond to faster spinning.License & Legal
This project is licensed under the Apache License 2.0. See
LICENSE,NOTICE, andTHIRD-PARTY-LICENSESfor complete details.