企业如何建官方网站,关于做网站的英语对话,和wordpress差不多的,外贸网站下载目录 1、撤消访问令牌
2、在CI/CD工作流中使用私有包
2.1 创建新的访问令牌
持续整合
持续部署
交互式工作流
CIDR白名单
2.2 将令牌设置为CI/CD服务器上的环境变量
2.3 创建并签入特定于项目的.npmrc文件
2.4 令牌安全
3、Docker和私有模块
3.1 背景#xff1a;运…目录 1、撤消访问令牌
2、在CI/CD工作流中使用私有包
2.1 创建新的访问令牌
持续整合
持续部署
交互式工作流
CIDR白名单
2.2 将令牌设置为CI/CD服务器上的环境变量
2.3 创建并签入特定于项目的.npmrc文件
2.4 令牌安全
3、Docker和私有模块
3.1 背景运行时变量
3.2 更新Dockerfile
3.3 构建Docker镜像 1、撤消访问令牌
为了确保您的帐户和软件包的安全我们强烈建议您撤销删除不再需要或已被泄露的令牌。您可以撤销已创建的任何令牌。 1、如果要查看令牌列表请在命令行上运行 npm token list 2、在令牌表中查找并复制要删除的令牌的ID。 3、在命令行上运行以下命令例如删除的令牌的ID为0a4d81 npm token delete 0a4d81 4、要确认令牌已删除请再次运行如下命令查看下令牌是否已删除 根据创建时间倒序排列的令牌列表可以发现刚才的只读令牌已删除。 注意必须使用令牌ID来删除令牌而不是令牌的截断版本。在某些情况下在令牌被成功撤销之前可能存在长达一小时的延迟。 2、在CI/CD工作流中使用私有包 您可以使用访问令牌在持续集成CI系统中测试私有npm包或者使用持续部署CD系统部署它们。 2.1 创建新的访问令牌 创建一个新的访问令牌仅用于从CI/CD服务器访问npm包。 持续整合 当生成用于持续集成环境的访问令牌时我们建议使用具有有限访问权限的粒度访问令牌以提供更高的安全性。 如果您使用传统令牌默认情况下npm token create将生成具有读写权限的令牌。我们建议创建只读令牌 npm token create --read-only 有关创建访问令牌包括CIDR白名单令牌的详细信息可以参考之前的文章NPM与外部服务的集成上 持续部署 由于持续部署环境通常涉及到创建部署工件因此您可能希望在网站上创建一个自动化令牌 。这将允许您发布即使您在帐户上启用了双因素身份验证。 交互式工作流 如果您的工作流生成了一个包但您在验证后手动发布了它那么您将需要创建一个具有读写权限的令牌这些权限是通过标准令牌创建命令授予的 npm token create CIDR白名单 为了提高安全性您可以使用CIDR白名单令牌该令牌只能在特定的IP地址范围内使用。您可以使用CIDR白名单和读取和发布令牌或只读令牌 npm token create --cidr[list]
npm token create --read-only --cidr[list] Example:范例 npm token create --cidr192.0.2.0/24 2.2 将令牌设置为CI/CD服务器上的环境变量
在CI/CD服务器中将令牌设置为环境变量或密码。
例如在GitHub Actions中您可以将令牌添加为密钥 。然后您可以将密钥设置为可用于工作流。
如果您将secret命名为NPM_TOKEN那么您需要从该secret创建一个名为NPM_TOKEN的环境变量。
steps:- run: |npm install- env:NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
2.3 创建并签入特定于项目的.npmrc文件
使用特定于项目的.npmrc文件和令牌的变量以使用npm安全地验证CI/CD服务器。
1、在项目的根目录中创建包含以下内容的自定义.npmrc文件
//registry.npmjs.org/:_authToken${NPM_TOKEN} 注意您指定的是一个文本值${NPM_TOKEN}。npm cli会将这个值替换为NPM_TOKEN环境变量的内容。不要在此文件中放置令牌。 2.4 令牌安全
您的令牌可能有权读取私有包、代表您发布新包或更改用户或包设置。保护好你的令牌。
不要将令牌添加到版本控制中或以不安全的方式存储令牌。将其存储在密码管理器、云提供商的安全存储或CI/CD提供商的安全存储中。
如果可能请使用具有最低必要权限的粒度访问令牌并为令牌设置较短的到期日期。
3、Docker和私有模块
要在Docker容器中安装私有npm包您需要使用Docker构建密钥。
3.1 背景运行时变量
您不能仅使用运行时变量在Docker容器中安装私有npm包。考虑以下Dockerfile
FROM nodeCOPY package.json package.json
RUN npm install# Add your source files
COPY . .
CMD npm start
它将使用官方的Node.js镜像将package.json复制到我们的容器中安装依赖项复制源文件并运行package.json中指定的start命令。
为了安装私有包你可能会认为我们可以在运行npm install之前添加一行使用ENV参数
ENV NPM_TOKEN00000000-0000-0000-0000-000000000000
然而这并不像你期望的那样工作因为你希望npm安装在你运行docker build时发生在这个例子中没有使用ENV变量它们只为运行时设置。
你必须使用Docker构建秘密而不是运行时变量。
3.2 更新Dockerfile
利用这一点的Dockerfile比前面的示例多了几行允许我们使用您的全局.npmrc和在运行npm login命令时创建的访问令牌如果您还没有运行它-请在继续之前运行它。
# https://docs.npmjs.com/docker-and-private-modules
FROM node:18ENV APP_HOME/appWORKDIR ${APP_HOME}COPY package*.json ${APP_HOME}/RUN --mounttypesecret,idnpmrc,target/root/.npmrc npm installCOPY . ${APP_HOME}/CMD npm start
这将配置您的Dockerfile通过build secrets接收.npmrc文件在npm依赖安装完成后不会留下任何痕迹。
3.3 构建Docker镜像
要使用上述Dockerfile和npm身份验证令牌构建镜像可以运行以下命令。请注意最后给予.将当前目录作为参数提供给docker build。
docker build . -t secure-app-secrets:1.0 --secret idnpmrc,src$HOME/.npmrc
这将使用通过build secrets接收的全局.npmrc文件中的访问令牌构建Docker镜像因此您可以作为当前登录用户在容器中运行npm install。 注意您可能需要指定一个不同于默认/的工作目录否则某些框架如Angular将失败。