Skip to content

Latest commit

 

History

History
42 lines (40 loc) · 4.81 KB

DESIGN.md

File metadata and controls

42 lines (40 loc) · 4.81 KB

Design

Architecture

┌───────────────────────────────────────────────────────┐           ┌───────────────────────────┐
│                                                       │           │                           │
│  AWS Secrets Manager                                  │           │   GitHub                  │
│                                                       │           │                           │
│ ┌───────────────────────────────────────────────────┐ │           │ ┌──────────────────────┐  │
│ │arn:aws:secretsmanager:...:secret:publishing-secret│ │           │ │ myorg/myrepository   │  │
│ ├───────────────────────────────────────────────────┤ │           │ ├──────────────────────┤  │
│ │                                                   │ │           │ │                      │  │
│ │                                                   │ │           │ │ ┌─────────────────┐  │  │
│ │                                                   │ │           │ │ │ SECRETS         │  │  │
│ │ {                                                 │ │           │ │ ├─────────────────┤  │  │
│ │   "MY_KEY1": "Asz9339839833",                     │ │           │ │ │ MY_KEY1         │  │  │
│ │    BOOM": "as89sx9@#@#",                          │ │           │ │ │ BOOM            │  │  │
│ │   "BAM": "a912n23873jdsj"                         │ │           │ │ │ OLD_SECRET      │  │  │
│ │ }                                                 │ │           │ │ └─────────▲───────┘  │  │
│ │                                                   │ │           │ │           │          │  │
│ └───────────▲───────────────────────────────────────┘ │           │ └───────────┼──────────┘  │
│             │                                         │           │             │             │
└─────────────┼─────────────────────────────────────────┘           └─────────────┴─────────────┘
              │                                                                (encrypted)
          (sigv4)                                                                 │
              │                                                                   │
              │                                                            $ gh secret set -R myorg/myrepository MY_KEY1
           aws-sdk-js                                                      $ gh secret set -R myorg/myrepository BOOM
        secretsmanager                                                     $ gh secret set -R myorg/myrepository BAM
        getSecretValue()                                                   $ gh secret remove -R myorg/myrepository OLD_SECRET
              ┼                                                                   ┼
         [CREDENTIALS: AWS]                                                   [CREDENTIALS: gh login]
              │                                                                   │
              │         ┌──────────────────────────────────────────────────┐      │
              │         │  $ aws-secrets-github-sync                       │      │
              │         │      --secret arn:aws:...:publishing-secret      │      │
              └─────────┤      --all                                       ├──────┘
                        │      --prune                                     │
                        │      --repo myorg/myrepository                   │
                        └──────────────────────────────────────────────────┘