1 个不稳定版本
0.2.1 | 2022年11月2日 |
---|
#954 在 硬件支持
36KB
849 行
氮素 CLI
氮素是一个将网络服务部署到 AWS Nitro Enclaves 的工具。给定一个 Dockerfile 和一个 SSH 密钥,氮素将启动一个 EC2 实例,配置网络,并构建和部署您的网络服务。您将获得一个可用的主机名。氮素是完全开源的,并包含预构建的脚本来部署流行的服务,如 Nginx、Redis 和 MongoDB。
安装
使用以下命令安装氮素
curl -fsSL https://raw.githubusercontent.com/capeprivacy/nitrogen/main/install.sh | sh
注意:需要 AWS 账户。如果您已配置 AWS CLI,可以使用 以下命令 获取您的凭据:cat ~/.aws/credentials
。有关 AWS 账户使用 MFA 的故障排除信息,请参阅 故障排除。
export AWS_ACCESS_KEY_ID=<YOUR ACCESS KEY>
export AWS_SECRET_ACCESS_KEY=<YOUR SECRET>
命令
nitrogen setup<stack_name> <ssh_public_key>
nitrogen build<dockerfile_directory>
nitrogen deploy<stack_name> <ssh_private_key>
nitrogen delete<stack_name>
功能
- 启动任何受支持的 enclave EC2 实例类型(启用 Nitro Enclaves)
- 为指定的端口创建一个安全组。
- 设置 SSH。
- 从公共互联网(TCP)运行一个 socat 代理到 nitro enclave(VSOCK)。
- 将任何 Dockerfile 构建为 Enclave Image File(EIF)。
- 部署任何 EIF 并启动一个 nitro enclave。
示例
$ nitrogen setup nitrogen-test ~/.ssh/id_rsa.pub --instance-type m5n.16xlarge
> INFO nitrogen: Spinning up enclave instance 'nitrogen-test'.
> INFO nitrogen::commands::setup: Successfully created enclave instance. stack_id="arn:aws:cloudformation:us-east-1:657861442343:stack/nitrogen-test/c93c7c80-5581-11ed-8a2b-0e2f3ffeccf1"
> INFO nitrogen: User enclave information: name="nitrogen-test" instance_id="i-07daa284594ff02bc" public_ip="44.197.181.14" availability_zone="us-east-1b" public_dns="ec2-44-197-181-14.compute-1.amazonaws.com"
$ nitrogen build examples/nginx/
> Filename: nitrogen.eif
$ nitrogen deploy nitrogen-test ~/.ssh/id_rsa
> Listening: ec2-1-234-56-789.compute-1.amazonaws.com:5000
$ curl http://ec2-1-234-56-789.compute-1.amazonaws.com:5000/
> Hello World
故障排除
如果您有权限问题,并且您的 AWS 账户启用了 MFA,则在运行 setup
之前尝试使用会话令牌。
aws sts get-session-token --serial-number arn:aws:iam::<AWS ACCOUNT NUMBER>:mfa/<USER NAME> --token-code <CODE>
导出上述命令打印的值
export AWS_ACCESS_KEY_ID=
export AWS_SECRET_ACCESS_KEY=
export AWS_SESSION_TOKEN=
您还可以使用此库中的辅助脚本 sts.sh
。警告:这将取消设置您在 shell 中已设置的任何与认证相关的 AWS 环境变量。
. sts.sh <ACCOUNT> <USER NAME> <CODE>
依赖项
~29–42MB
~674K SLoC