alibabacloud / credentials
PHP 阿里云凭证
Requires
- php: >=5.6
- ext-curl: *
- ext-json: *
- ext-libxml: *
- ext-mbstring: *
- ext-openssl: *
- ext-simplexml: *
- ext-xmlwriter: *
- adbario/php-dot-notation: ^2.2
- alibabacloud/tea: ^3.0
- guzzlehttp/guzzle: ^6.3|^7.0
Requires (Dev)
- ext-dom: *
- ext-pcre: *
- ext-sockets: *
- ext-spl: *
- composer/composer: ^1.8
- drupal/coder: ^8.3
- mikey179/vfsstream: ^1.6
- monolog/monolog: ^1.24
- phpunit/phpunit: ^5.7|^6.6|^9.3
- psr/cache: ^1.0
- symfony/dotenv: ^3.4
- symfony/var-dumper: ^3.4
Suggests
- ext-sockets: To use client-side monitoring
This package is auto-updated.
Last update: 2024-09-12 01:56:43 UTC
README
英文 | 简体中文
PHP 阿里云凭证
PHP 阿里云凭证是一款帮助 PHP 开发者管理凭证的工具。
先决条件
您的系统需要满足 先决条件,包括 PHP ≥ 5.6。我们强烈推荐使用 cURL 扩展,并使用 TLS 后端编译 cURL 7.16.2+。
安装
如果您已经在您的系统上全局安装了 Composer,可以直接在项目目录中运行以下命令将 PHP 阿里云凭证作为依赖项安装
composer require alibabacloud/credentials
一些用户可能因为网络问题而无法安装,您可以选择切换到 阿里云 Composer 镜像。
有关通过 Composer 和其他方式安装的详细信息,请参阅 安装。
快速示例
开始之前,您需要注册一个阿里云账户并获取您的 凭证。
凭证类型
AccessKey
通过 [用户信息管理][ak] 设置 access_key 凭证,它具有对账户的完全权限,请妥善保管。有时出于安全原因,您不能将具有完全访问权限的主账户 AccessKey 交给项目开发者。您可能需要创建一个子账户 [RAM 子账户][ram],授予其 [授权][权限],并使用 RAM 子账户的 AccessKey。
<?php use AlibabaCloud\Credentials\Credential; // Chain Provider if no Parameter $credential = new Credential(); $credential->getAccessKeyId(); $credential->getAccessKeySecret(); // Access Key $ak = new Credential([ 'type' => 'access_key', 'access_key_id' => '<access_key_id>', 'access_key_secret' => '<access_key_secret>', ]); $ak->getAccessKeyId(); $ak->getAccessKeySecret();
STS
通过安全令牌服务 (STS) 申请临时安全凭证 (TSC) 创建临时安全凭证。
<?php use AlibabaCloud\Credentials\Credential; $sts = new Credential([ 'type' => 'sts', 'access_key_id' => '<access_key_id>', 'accessKey_secret' => '<accessKey_secret>', 'security_token' => '<security_token>', ]); $sts->getAccessKeyId(); $sts->getAccessKeySecret(); $sts->getSecurityToken();
RamRoleArn
通过指定 [RAM 角色][RAM Role],凭证将能够自动请求维护 STS 令牌。如果您想限制 STS 令牌的权限([如何制作策略][policy]),可以为 Policy
分配值。
<?php use AlibabaCloud\Credentials\Credential; $ramRoleArn = new Credential([ 'type' => 'ram_role_arn', 'access_key_id' => '<access_key_id>', 'access_key_secret' => '<access_key_secret>', 'role_arn' => '<role_arn>', 'role_session_name' => '<role_session_name>', 'policy' => '', ]); $ramRoleArn->getAccessKeyId(); $ramRoleArn->getAccessKeySecret(); $ramRoleArn->getRoleArn(); $ramRoleArn->getRoleSessionName(); $ramRoleArn->getPolicy();
EcsRamRole
通过指定角色名称,凭证将能够自动请求维护 STS 令牌。
<?php use AlibabaCloud\Credentials\Credential; $ecsRamRole = new Credential([ 'type' => 'ecs_ram_role', 'role_name' => '<role_name>', ]); $ecsRamRole->getRoleName(); // Note: `role_name` is optional. It will be retrieved automatically if not set. It is highly recommended to set it up to reduce requests.
Bearer Token
如果凭证需要由云呼叫中心 (CCC) 提供,请自行申请 Bearer Token 维护。
<?php use AlibabaCloud\Credentials\Credential; $bearerToken = new Credential([ 'type' => 'bearer', 'bearer_token' => '<bearer_token>', ]); $bearerToken->getBearerToken(); $bearerToken->getSignature();
默认凭证提供者链
默认凭证提供者链按以下顺序寻找可用的凭证
1. 环境证书
程序首先在环境变量中查找环境凭证。如果定义了 ALIBABA_CLOUD_ACCESS_KEY_ID
和 ALIBABA_CLOUD_ACCESS_KEY_SECRET
环境变量并且它们不为空,则程序将使用它们来创建默认凭证。
2. 配置文件
如果用户的家目录中存在默认文件
~/.alibabacloud/credentials
(Windows上是C:\Users\USER_NAME\.alibabacloud\credentials
),程序将自动创建指定类型和名称的凭据。默认文件可能不存在,但解析错误将抛出异常。凭证名称不区分大小写。如果存在同名凭证,后者将覆盖前者。此配置文件可以在不同的项目和工具之间共享,并且因为它位于项目之外,所以不会意外地提交到版本控制。Windows上可以引用环境变量 %UserProfile% 到家目录。类Unix系统可以使用环境变量 $HOME 或 ~(波浪号)。可以通过定义环境变量ALIBABA_CLOUD_CREDENTIALS_FILE
来修改默认文件的路径。
[default] type = access_key # Authentication method is access_key access_key_id = foo # Key access_key_secret = bar # Secret [project1] type = ecs_ram_role # Authentication method is ecs_ram_role role_name = EcsRamRoleTest # Role name, optional. It will be retrieved automatically if not set. It is highly recommended to set it up to reduce requests. [project2] type = ram_role_arn # Authentication method is ram_role_arn access_key_id = foo access_key_secret = bar role_arn = role_arn role_session_name = session_name
3. 实例RAM角色
如果定义了环境变量 ALIBABA_CLOUD_ECS_METADATA
且不为空,程序将使用环境变量的值作为角色名称,并请求 http://100.100.100.200/latest/meta-data/ram/security-credentials/
来获取临时安全凭证,用作默认凭证。
自定义凭证提供者链
您可以通过自定义程序链来替换程序链的默认顺序,或者将闭包写入提供者。
<?php use AlibabaCloud\Credentials\Providers\ChainProvider; ChainProvider::set( ChainProvider::ini(), ChainProvider::env(), ChainProvider::instance() );
文档
问题
提交问题,不符合指南的问题可能会立即关闭。
发布说明
每个版本的详细更改记录在 发布说明 中。
贡献
在提交拉取请求之前,请阅读 贡献指南。
相关
许可证
版权所有 (c) 2009-现在,阿里云。保留所有权利。