页:1 简体中文
Alibaba Cloud 类型脚本/节点的证书
安装
npm install @alicloud/credentials
节点.js 12 所需经费.
快速示例
在你开始之前,你需要报名 一个阿里巴巴云账户 并收回你的 全权证书。 。 。 .
证书类型
访问键
设置访问权限 密钥证书通过 用户信息管理它对账户有全权 请保持安全 有时出于安全考虑,您无法将一个主账户AccessKey完全接入到项目开发者手中. 您可以创建子账户 RAM 子账户 ,给予 授权,并使用RAM子账户的 AccessKey.
import Credential, { Config } from '@alicloud/credentials';
const config: Config = {
type: 'access_key', // credential type
accessKeyId: 'accessKeyId', // AccessKeyId of your account
accessKeySecret: 'accessKeySecret', // AccessKeySecret of your account
}
const cred = new Credential(config);
const {
accessKeyId,
accessKeySecret,
type
} = await cred.getCredential();
标准
通过安全托肯服务(STS)应用临时安全证书(TSC)创建临时安全证书.
import Credential, { Config } from '@alicloud/credentials';
const config: Config = {
type: 'sts', // credential type
accessKeyId: 'accessKeyId', // AccessKeyId of your account
accessKeySecret: 'accessKeySecret', // AccessKeySecret of your account
securityToken: 'securityToken', // Temporary Security Token
}
const cred = new Credential(config);
const {
accessKeyId,
accessKeySecret,
securityToken,
type
} = await cred.getCredential();
公尺( r)
通过指定 内存角色,证书可以自动请求STS Token的维护. 如果您想要限制权限( I)如何制定政策STS)),该型号. Token, 您可以为 Policy。 。 。 .
import Credential, { Config } from '@alicloud/credentials';
const config: Config = {
type: 'ram_role_arn', // credential type
accessKeyId: 'accessKeyId', // AccessKeyId of your account
accessKeySecret: 'accessKeySecret', // AccessKeySecret of your account
roleArn: 'roleArn', // Format: acs:ram::USER_ID:role/ROLE_NAME
roleSessionName: 'roleSessionName', // Role Session Name
policy: 'policy', // Not required, limit the permissions of STS Token
roleSessionExpiration: 3600, // Not required, limit the Valid time of STS Token
}
const cred = new Credential(config);
const {
accessKeyId,
accessKeySecret,
securityToken,
type
} = await cred.getCredential();
oidc 作用 arn
通过指定 OIDC 角色,证书可以自动请求STS Token的维护. 如果您想要限制权限( I)如何制定政策STS)),该型号. Token, 您可以为 Policy。 。 。 .
import Credential, { Config } from '@alicloud/credentials';
const config: Config = {
type: 'oidc_role_arn', // credential type
roleArn: 'roleArn', // Format: acs:ram::USER_Id:role/ROLE_NAME roleArn can be replaced by setting environment variable: ALIBABA_CLOUD_ROLE_ARN
oidcProviderArn: 'oidcProviderArn', // Format: acs:ram::USER_Id:oidc-provider/ROLE_NAME oidcProviderArn can be replaced by setting environment variable: ALIBABA_CLOUD_OIDC_PROVIDER_ARN
oidcTokenFilePath: '/Users/xxx/xxx', // Format: path OIDCTokenFilePath can be replaced by setting environment variable: ALIBABA_CLOUD_OIDC_TOKEN_FILE
roleSessionName: 'roleSessionName', // Role Session Name
policy: 'policy', // Not required, limit the permissions of STS Token
roleSessionExpiration: 3600, // Not required, limit the Valid time of STS Token
}
const cred = new Credential(config);
const {
accessKeyId,
accessKeySecret,
securityToken,
type
} = await cred.getCredential();
区域( r)
通过指定角色名,证书可以自动请求STS Token的维护.
import Credential, { Config } from '@alicloud/credentials';
const config: Config = {
type: 'ecs_ram_role', // credential type
roleName: 'roleName', // `roleName` is optional. It will be retrieved automatically if not set. It is highly recommended to set it up to reduce requests.
disableIMDSv1: true, // `disableIMDSv1` is optional and is recommended to be turned on. It can be replaced by setting environment variable: ALIBABA_CLOUD_IMDSV1_DISABLED
}
const cred = new Credential(config);
const {
accessKeyId,
accessKeySecret,
securityToken,
type
} = await cred.getCredential();
rsa key pair
通过指定公钥ID和私钥文件,证书可以在发送请求前自动请求AccessKey的维护. 仅支持日本站.
import Credential, { Config } from '@alicloud/credentials';
const config: Config = {
type: 'rsa_key_pair', // credential type
privateKeyFile: 'privateKeyFile', // The file path to store the PrivateKey
publicKeyId: 'publicKeyId', // PublicKeyId of your account
}
const cred = new Credential(config);
const {
accessKeyId,
accessKeySecret,
securityToken,
type
} = await cred.getCredential();
证书 uri
通过指定本地或远程 URI 获取证书并自动刷新 .
import Credential, { Config } from '@alicloud/credentials';
const config: Config = {
type: 'credentials_uri',
credentialsURI: 'http://a_local_or_remote_address/' //credentialsURI can be replaced by setting environment variable: ALIBABA_CLOUD_CREDENTIALS_URI
};
const cred = new Credential(config);
const {
accessKeyId,
accessKeySecret,
securityToken,
type
} = await cred.getCredential();
URI必须满足以下条件:
- 响应状态代码为 200
- 反应机构结构必须是:
{
"Code": "Success",
"AccessKeySecret": "AccessKeySecret",
"AccessKeyId": "AccessKeyId",
"Expiration": "2021-09-26T03:46:38Z",
"SecurityToken": "SecurityToken"
}
无记名者
如果云召中心(CCC)需要证明,请自行申请Bearer Token维修.
import Credential, { Config } from '@alicloud/credentials';
const config: Config = {
type: 'bearer', // credential type
bearerToken: 'bearerToken', // BearerToken of your account
}
const cred = new Credential(config);
let bearerToken: string = await cred.getBearerToken();
let type: string = cred.getType();
提供者
如果你打电话 new Credential() 空的,它会使用提供者链来获取证书.
1. 环境证书
程序首先在环境变量中查找环境证书. 如果 ALIBABA_CLOUD_ACCESS_KEY_ID 财务报告和审定财务报表 ALIBABA_CLOUD_ACCESS_KEY_SECRET 环境变量被定义且不是空的,程序将使用它们来创建默认的证书. 如果没有,程序会在配置文件中加载并寻找客户端.
2. 配置文件
如果有的话 ~/.alibabacloud/credentials 默认文件( 窗口显示) C:\Users\USER_NAME\.alibabacloud\credentials),该程序会自动以"默认"的名称创建证书. 默认文件可能不存在, 但解析错误会丢出例外 。 指定的文件也可以被无限期地加载: AlibabaCloud::load('/data/credentials', 'vfs://AlibabaCloud/credentials', ...); 这个配置文件可以在不同的项目之间和不同的工具之间共享. 因为它在项目之外,不会被意外地承诺用于版本控制. 环境变量可以在Windows上用于指代主目录 %UserProfile%. Unix-like系统可以使用环境变量$HOME或~(tilde). 默认文件的路径可以通过定义 ALIBABA_CLOUD_CREDENTIALS_FILE 环境变量.
[default] # Default credential
type = access_key # Certification type: access_key
access_key_id = foo # access key id
access_key_secret = bar # access key secret
3. 实例记录和档案管理作用
如果环境变量 ALIBABA_CLOUD_ECS_METADATA 定义而非空,程序将把环境变量的值作为角色名并请求 http://100.100.100.200/latest/meta-data/ram/security-credentials/ 拿到临时安全证书.
4. 全权证书统一登记制度
如果环境变量 ALIBABA_CLOUD_CREDENTIALS_URI 定义而非空,
程序将把环境变量的值作为证书 ur.
测试覆盖( S)
- 运行测试
npm run test
- 运行代码覆盖
npm run cov
许可证
版权 (c) 2009年至今,阿里巴巴云 版权所有.