本文中含有需要您注意的重要提示信息,忽略该信息可能对您的业务造成影响,请务必仔细阅读。
使用PHP SDK发起OSS请求,您需要配置访问凭证。阿里云服务会通过访问凭证验证您的身份信息和访问权限。您可以根据使用场景对认证和授权的要求,选择不同类型的访问凭证。本文介绍如何配置临时访问凭证和长期访问凭证。
前提条件
在配置访问凭证前,您需要安装OSS PHP SDK。详情请参见安装。
访问凭证
您可以选择以下类型的访问凭证。
注意事项
本文介绍了如何在不同操作系统(例如macOS、Linux、Windows)中使用Shell命令配置环境变量。正确设置环境变量可确保命令行启动的程序能正确识别必要的配置。如果您是在IDE中,可能需要参考本文在IDE中单独设置环境变量,以便程序在该环境下正确运行。
使用临时访问凭证
当您准备临时使用PHP SDK访问OSS服务时,您可以选择以下方式配置临时访问凭证。
配置STS临时访问凭证:如果您需要在规定时间内访问您的OSS,您可以通过STS服务颁发一个STS临时访问凭证。临时访问凭证无需透露您的RAM用户访问密钥,使您的OSS访问更加安全。
配置RAM角色:如果您需要授权访问或跨账号访问OSS,您可以通过RAM用户扮演对应RAM角色的方式授权访问或跨账号访问OSS。
配置ECS的RAM角色:如果你需要在阿里云的云服务器ECS中访问您的OSS,您可以通过ECS实例RAM角色的方式访问OSS。实例RAM角色允许您将一个角色关联到云服务器实例,在实例内部基于STS临时凭证通过指定方法访问OSS。STS临时凭证由系统自动生成和更新,应用程序可以使用指定的实例元数据URL获取临时凭证,无需特别管理。
配置STS临时访问凭证
创建RAM用户。
具体操作,请参见创建RAM用户。
为RAM用户授予
AliyunSTSAssumeRoleAccess
权限。具体操作,请参见为RAM用户授权。
使用RAM用户调用STS服务的AssumeRole接口获取STS临时访问凭证。
具体操作,请参见AssumeRole。
配置STS临时访问凭证。
环境变量
使用获取的STS临时访问凭证配置环境变量。
macOS
打开终端。
执行以下命令。
nano ~/.bash_profile
在文件末尾添加从STS服务获取的临时访问凭证(包括AccessKeyId、AccessKeySecret、SecurityToken)。
export OSS_ACCESS_KEY_ID=STS.NV5ZCwphFSXqscqUHAKbH**** export OSS_ACCESS_KEY_SECRET=IrVTNZNy**** export OSS_SESSION_TOKEN=CAES+wMI****
按
Ctrl
+X
,按Y
键确认保存,然后按Enter
键退出文件。执行以下命令以使更改生效。
source ~/.bash_profile
执行以下命令验证环境变量配置。
echo $OSS_ACCESS_KEY_ID echo $OSS_ACCESS_KEY_SECRET echo $OSS_SESSION_TOKEN
成功返回示例如下:
STS.NV5ZCwphFSXqscqUHAKbH**** IrVTNZNy**** CAES+wMI****
Linux
打开终端。
执行以下命令。
sudo vim /etc/profile
在文件末尾添加从STS服务获取的临时访问凭证(包括AccessKeyId、AccessKeySecret、SecurityToken)。
export OSS_ACCESS_KEY_ID=STS.NV5ZCwphFSXqscqUHAKbH**** export OSS_ACCESS_KEY_SECRET=IrVTNZNy**** export OSS_SESSION_TOKEN=CAES+wMI****
按
ESC
键退出编辑模式,输入:wq
,然后按Enter
键保存并退出文件。执行以下命令以使更改生效。
source /etc/profile
执行以下命令验证环境变量配置。
echo $OSS_ACCESS_KEY_ID echo $OSS_ACCESS_KEY_SECRET echo $OSS_SESSION_TOKEN
成功返回示例如下:
STS.NV5ZCwphFSXqscqUHAKbH**** IrVTNZNy**** CAES+wMI****
Windows
通过图形化用户界面GUI
以Windows 10为例,通过图形化用户界面以环境变量的方式设置STS临时访问凭证的步骤如下:
在桌面右键单击此电脑,选择
。添加以下环境变量。
变量名
示例值
OSS_ACCESS_KEY_ID
STS.NV5ZCw****
OSS_ACCESS_KEY_SECRET
IrVTNZNy****
OSS_SESSION_TOKEN
CAES+wMI****
执行以下命令验证环境变量配置。
echo %OSS_ACCESS_KEY_ID% echo %OSS_ACCESS_KEY_SECRET% echo %OSS_SESSION_TOKEN%
成功返回示例如下:
STS.NV5ZCw**** IrVTNZNy**** CAES+wMI****
通过命令行提示符CMD
打开命令行。
执行以下命令配置从STS服务获取的临时访问凭证(包括AccessKeyId、AccessKeySecret、SecurityToken)。
set OSS_ACCESS_KEY_ID=STS.NV5ZCw**** set OSS_ACCESS_KEY_SECRET=IrVTNZNy**** set OSS_SESSION_TOKEN=CAES+wMI****
执行以下命令以使更改生效。
setx OSS_ACCESS_KEY_ID "%OSS_ACCESS_KEY_ID%" setx OSS_ACCESS_KEY_SECRET "%OSS_ACCESS_KEY_SECRET%" setx OSS_SESSION_TOKEN "%OSS_SESSION_TOKEN%"
执行以下命令验证环境变量配置。
echo %OSS_ACCESS_KEY_ID% echo %OSS_ACCESS_KEY_SECRET% echo %OSS_SESSION_TOKEN%
成功返回示例如下:
STS.NV5ZCw**** IrVTNZNy**** CAES+wMI****
通过Windows PowerShell
按下键盘上的
Win + X
组合键。设置STS临时访问凭证。
仅当前会话有效
在弹出的菜单中,选择Windows PowerShell。
为当前会话添加以下环境变量。
$env:OSS_ACCESS_KEY_ID = "STS.NV5ZCw****" $env:OSS_ACCESS_KEY_SECRET = "IrVTNZNy****" $env:OSS_SESSION_TOKEN = "CAES+wMI****"
对所有新会话有效
在弹出的菜单中,选择Windows PowerShell。
为所有新会话添加以下环境变量。
[System.Environment]::SetEnvironmentVariable('OSS_ACCESS_KEY_ID', 'STS.NV5ZCw****', [System.EnvironmentVariableTarget]::User) [System.Environment]::SetEnvironmentVariable('OSS_ACCESS_KEY_SECRET', 'IrVTNZNy****', [System.EnvironmentVariableTarget]::User) [System.Environment]::SetEnvironmentVariable('OSS_SESSION_TOKEN', 'CAES+wMI****', [System.EnvironmentVariableTarget]::User)
对所有用户有效
在弹出的菜单中,选择Windows PowerShell(管理员)。
为所有用户添加以下环境变量。
[System.Environment]::SetEnvironmentVariable('OSS_ACCESS_KEY_ID', 'STS.NV5ZCw****', [System.EnvironmentVariableTarget]::Machine) [System.Environment]::SetEnvironmentVariable('OSS_ACCESS_KEY_SECRET', 'IrVTNZNy****', [System.EnvironmentVariableTarget]::Machine) [System.Environment]::SetEnvironmentVariable('OSS_SESSION_TOKEN', 'CAES+wMI****', [System.EnvironmentVariableTarget]::Machine)
执行以下命令验证环境变量配置。
Get-ChildItem env:OSS_ACCESS_KEY_ID Get-ChildItem env:OSS_ACCESS_KEY_SECRET Get-ChildItem env:OSS_SESSION_TOKEN
成功返回示例如下:
STS.NV5ZCw**** IrVTNZNy**** CAES+wMI****
从环境变量中获取STS临时访问凭证。
// 使用环境变量中获取的STS临时访问密钥和安全令牌配置访问凭证。 $provider = new EnvironmentVariableCredentialsProvider();
代码嵌入
警告在代码中嵌入访问凭证会导致安全问题。如果访问凭证被泄漏,攻击者就可以使用该访问凭证来访问您的资源OSS,造成损失。因此,建议您使用更安全的方式,例如从环境变量中获取访问凭证,来提高安全性。
// STS临时访问密钥AccessKey ID和AccessKey Secret。 $accessKeyId = "yourAccessKeyId"; $accessKeySecret = "yourAccessKeySecret"; // STS安全令牌SecurityToken。 $securityToken = "yourSecurityToken"; // 使用代码嵌入的STS临时访问密钥和安全令牌配置访问凭证。 $provider = new StaticCredentialsProvider($accessKeySecret, $accessKeySecret, $securityToken);
配置RAM角色
执行以下命令安装
alibabacloud/credentials
。composer require alibabacloud/credentials
获取RAM用户的访问密钥。
具体操作,请参见创建RAM用户的AccessKey。
重要为降低RAM用户的访问密钥被泄露的风险,对于超过3个月的RAM用户的访问密钥,建议及时轮换。对于长期不用的RAM用户的访问密钥,建议及时禁用并删除。
获取目标RAM角色的RamRoleArn。
说明RamRoleArn是RAM角色的ARN信息,即需要扮演的角色ID。格式为acs:ram::$accountID:role/$roleName。$accountID为阿里云账号ID。$roleName为RAM角色名称。
具体操作,请参见查看RAM角色。
配置RAM用户的访问密钥和目标RAM角色的RAMRoleArn作为访问凭证。
环境变量
使用获取的RAM用户的访问密钥和目标RAM角色的RamRoleArn配置环境变量。
macOS
打开终端。
执行以下命令。
nano ~/.bash_profile
在文件末尾添加获取的RAM用户的访问密钥和RAM角色的RamRoleArn。
export OSS_ACCESS_KEY_ID=LTAI**** export OSS_ACCESS_KEY_SECRET=IrVTNZNy**** export OSS_STS_ROLE_ARN=acs:ram::17464958********:role/ossststest
按
Ctrl
+X
,按Y
键确认保存,然后按Enter
键退出文件。执行以下命令以使更改生效。
source /etc/profile
执行以下命令验证环境变量配置。
echo $OSS_ACCESS_KEY_ID echo $OSS_ACCESS_KEY_SECRET echo $OSS_STS_ROLE_ARN
成功返回示例如下:
LTAI**** IrVTNZNy**** acs:ram::17464958********:role/ossststest
Linux
打开终端。
执行以下命令。
sudo vim /etc/profile
在文件末尾添加获取的RAM用户的访问密钥和RAM角色的RamRoleArn。
export OSS_ACCESS_KEY_ID=LTAI**** export OSS_ACCESS_KEY_SECRET=IrVTNZNy**** export OSS_STS_ROLE_ARN=acs:ram::17464958********:role/ossststest
按
ESC
键退出编辑模式,输入:wq
,然后按Enter
键保存并退出文件。执行以下命令以使更改生效。
source /etc/profile
执行以下命令验证环境变量配置。
echo $OSS_ACCESS_KEY_ID echo $OSS_ACCESS_KEY_SECRET echo $OSS_STS_ROLE_ARN
成功返回示例如下:
LTAI**** IrVTNZNy**** acs:ram::17464958********:role/ossststest
Windows
通过图形化用户界面GUI
以Windows 10为例,通过图形化用户界面以环境变量的方式设置RAM用户的访问密钥和目标RAM角色的RAMRoleArn步骤如下:
在桌面右键单击此电脑,选择
。添加以下环境变量。
变量名
示例值
OSS_ACCESS_KEY_ID
LTAI****
OSS_ACCESS_KEY_SECRET
IrVTNZNy****
OSS_STS_ROLE_ARN
acs:ram::17464958********:role/ossststest
执行以下命令验证环境变量配置。
echo $OSS_ACCESS_KEY_ID echo $OSS_ACCESS_KEY_SECRET echo $OSS_STS_ROLE_ARN
成功返回示例如下:
LTAI**** IrVTNZNy**** acs:ram::17464958********:role/ossststest
通过命令行提示符CMD
打开命令行。
执行以下命令配置RAM用户的访问密钥和RAM角色的RamRoleArn。
set OSS_ACCESS_KEY_ID=LTAI**** set OSS_ACCESS_KEY_SECRET=IrVTNZNy**** set OSS_STS_ROLE_ARN=acs:ram::17464958********:role/ossststest
执行以下命令以使更改生效。
setx OSS_ACCESS_KEY_ID "%OSS_ACCESS_KEY_ID%" setx OSS_ACCESS_KEY_SECRET "%OSS_ACCESS_KEY_SECRET%" setx OSS_STS_ROLE_ARN "%OSS_STS_ROLE_ARN%"
执行以下命令验证环境变量配置。
echo %OSS_ACCESS_KEY_ID% echo %OSS_ACCESS_KEY_SECRET% echo %OSS_STS_ROLE_ARN%
成功返回示例如下:
LTAI**** IrVTNZNy**** acs:ram::17464958********:role/ossststest
通过Windows PowerShell
按下键盘上的
Win + X
组合键。设置RAM用户的访问密钥和目标RAM角色的RAMRoleArn。
仅当前会话有效
在弹出的菜单中,选择Windows PowerShell。
为当前会话添加以下环境变量。
$env:OSS_ACCESS_KEY_ID = "LTAI****" $env:OSS_ACCESS_KEY_SECRET = "IrVTNZNy****" $env:OSS_STS_ROLE_ARN = "acs:ram::17464958********:role/ossststest"
对所有新会话有效
在弹出的菜单中,选择Windows PowerShell。
为所有新会话添加以下环境变量。
[System.Environment]::SetEnvironmentVariable('OSS_ACCESS_KEY_ID', 'LTAI****', [System.EnvironmentVariableTarget]::User) [System.Environment]::SetEnvironmentVariable('OSS_ACCESS_KEY_SECRET', 'IrVTNZNy****', [System.EnvironmentVariableTarget]::User) [System.Environment]::SetEnvironmentVariable('OSS_STS_ROLE_ARN', 'acs:ram::17464958********:role/ossststest', [System.EnvironmentVariableTarget]::User)
对所有用户有效
在弹出的菜单中,选择Windows PowerShell(管理员)。
为所有用户添加以下环境变量。
[System.Environment]::SetEnvironmentVariable('OSS_ACCESS_KEY_ID', 'LTAI****', [System.EnvironmentVariableTarget]::Machine) [System.Environment]::SetEnvironmentVariable('OSS_ACCESS_KEY_SECRET', 'IrVTNZNy****', [System.EnvironmentVariableTarget]::Machine) [System.Environment]::SetEnvironmentVariable('OSS_STS_ROLE_ARN', 'acs:ram::17464958********:role/ossststest', [System.EnvironmentVariableTarget]::Machine)
执行以下命令验证环境变量配置。
Get-ChildItem env:OSS_ACCESS_KEY_ID Get-ChildItem env:OSS_ACCESS_KEY_SECRET Get-ChildItem env:OSS_STS_ROLE_ARN
成功返回示例如下:
LTAI**** IrVTNZNy**** acs:ram::17464958********:role/ossststest
从环境变量中获取RAM用户的访问密钥和RAM角色的RamRoleArn。
<?php if (is_file(__DIR__ . '/../autoload.php')) { require_once __DIR__ . '/../autoload.php'; } if (is_file(__DIR__ . '/../vendor/autoload.php')) { require_once __DIR__ . '/../vendor/autoload.php'; } use OSS\Credentials\CredentialsProvider; use AlibabaCloud\Credentials\Credential; use OSS\Credentials\StaticCredentialsProvider; use OSS\Core\OssException; use OSS\OssClient; class AlibabaCloudCredentialsWrapper implements CredentialsProvider{ /** * @var \OSS\Credentials\Credentials */ private $wrapper; public function __construct($wrapper){ $this->wrapper = $wrapper; } public function getCredentials(){ $ak = $this->wrapper->getAccessKeyId(); $sk = $this->wrapper->getAccessKeySecret(); $token = $this->wrapper->getSecurityToken(); return new StaticCredentialsProvider($ak, $sk, $token); } } $ramRoleArn = new Credential(array( // 填写Credential类型,固定值为ram_role_arn。 'type' => 'ram_role_arn', // 从环境变量中获取RAM用户的访问密钥(AccessKey ID和AccessKey Secret)。 'access_key_id' => getenv('OSS_ACCESS_KEY_ID'), 'access_key_secret' => getenv('OSS_ACCESS_KEY_SECRET'), // 从环境变量中获取RAM角色的RamRoleArn。即需要扮演的角色ID,格式为acs:ram::$accountID:role/$roleName。 'role_arn' => getenv('OSS_STS_ROLE_ARN'), // 自定义角色会话名称,用于区分不同的令牌。 'role_session_name' => 'yourRoleSessionName', // 自定义权限策略。 'policy' => '', )); // 使用环境变量中获取的RAM用户的访问密钥和RAM角色的RamRoleArn配置访问凭证。 $providerWarpper = new AlibabaCloudCredentialsWrapper($ramRoleArn); $provider = $providerWarpper->getCredentials(); $config = array( 'provider' => $provider, // 以华东1(杭州)为例,填写为https://oss-cn-hangzhou.aliyuncs.com。其他Region请按实际情况填写。 'endpoint'=> 'https://oss-cn-hangzhou.aliyuncs.com' ); try { $ossClient = new OssClient($config); var_dump($ossClient); } catch (OssException $e) { print $e->getMessage(); }
代码嵌入
警告在代码中嵌入访问凭证会导致安全问题。如果访问凭证被泄漏,攻击者就可以使用该访问凭证来访问您的资源OSS,造成损失。因此,建议您使用更安全的方式,例如从环境变量中获取访问凭证,来提高安全性。
<?php if (is_file(__DIR__ . '/../autoload.php')) { require_once __DIR__ . '/../autoload.php'; } if (is_file(__DIR__ . '/../vendor/autoload.php')) { require_once __DIR__ . '/../vendor/autoload.php'; } use OSS\Credentials\CredentialsProvider; use AlibabaCloud\Credentials\Credential; use OSS\Credentials\StaticCredentialsProvider; use OSS\Core\OssException; use OSS\OssClient; class AlibabaCloudCredentialsWrapper implements CredentialsProvider{ /** * @var \OSS\Credentials\Credentials */ private $wrapper; public function __construct($wrapper){ $this->wrapper = $wrapper; } public function getCredentials(){ $ak = $this->wrapper->getAccessKeyId(); $sk = $this->wrapper->getAccessKeySecret(); $token = $this->wrapper->getSecurityToken(); return new StaticCredentialsProvider($ak, $sk, $token); } } $ramRoleArn = new Credential(array( // 填写Credential类型,固定值为ram_role_arn。 'type' => 'ram_role_arn', // 填写RAM用户的访问密钥(AccessKey ID和AccessKey Secret)。 'access_key_id' => 'OSS_ACCESS_KEY_ID', 'access_key_secret' => 'OSS_ACCESS_KEY_SECRET', // 填写RAM角色的RamRoleArn。即需要扮演的角色ID,格式为acs:ram::$accountID:role/$roleName。 'role_arn' => 'OSS_STS_ROLE_ARN', // 自定义角色会话名称,用于区分不同的令牌。 'role_session_name' => 'yourRoleSessionName', // 自定义权限策略。 'policy' => '', )); $providerWarpper = new AlibabaCloudCredentialsWrapper($ramRoleArn); $provider = $providerWarpper->getCredentials(); $config = array( 'provider' => $provider, // 以华东1(杭州)为例,填写为https://oss-cn-hangzhou.aliyuncs.com。其他Region请按实际情况填写。 'endpoint'=> 'https://oss-cn-hangzhou.aliyuncs.com' ); try { $ossClient = new OssClient($config); var_dump($ossClient); } catch (OssException $e) { print $e->getMessage(); }
配置ECS的RAM角色
执行以下命令安装
alibabacloud/credentials
。composer require alibabacloud/credentials
为ECS实例授予RAM角色。
具体操作,请参见授予实例RAM角色。
配置ECS的RAM角色作为访问凭证。
<?php if (is_file(__DIR__ . '/../autoload.php')) { require_once __DIR__ . '/../autoload.php'; } if (is_file(__DIR__ . '/../vendor/autoload.php')) { require_once __DIR__ . '/../vendor/autoload.php'; } use OSS\Credentials\CredentialsProvider; use AlibabaCloud\Credentials\Credential; use OSS\Credentials\StaticCredentialsProvider; use OSS\Core\OssException; use OSS\OssClient; class AlibabaCloudCredentialsWrapper implements CredentialsProvider{ /** * @var \OSS\Credentials\Credentials */ private $wrapper; public function __construct($wrapper){ $this->wrapper = $wrapper; } public function getCredentials(){ $ak = $this->wrapper->getAccessKeyId(); $sk = $this->wrapper->getAccessKeySecret(); $token = $this->wrapper->getSecurityToken(); return new StaticCredentialsProvider($ak, $sk, $token); } } $ecsRamRole = new Credential(array( // 填写Credential类型,固定值为ecs_ram_role。 'type' => 'ecs_ram_role', // 填写角色名称。 'role_name' => 'EcsRamRoleOssTest', )); // 使用环境变量中获取的RAM用户的访问密钥和RAM角色的RamRoleArn配置访问凭证。 $providerWarpper = new AlibabaCloudCredentialsWrapper($ecsRamRole); $provider = $providerWarpper->getCredentials(); $config = array( 'provider' => $provider, // 以华东1(杭州)为例,填写为https://oss-cn-hangzhou.aliyuncs.com。其他Region请按实际情况填写。 'endpoint'=> 'https://oss-cn-hangzhou.aliyuncs.com' ); try { $ossClient = new OssClient($config); } catch (OssException $e) { print $e->getMessage(); }
使用长期访问凭证
当您准备在应用或服务中长期使用PHP SDK访问OSS服务时,您可以通过以下方式配置长期访问凭证。
配置RAM用户的访问密钥:如果您需要长期访问您的OSS,您可以通过RAM用户的访问密钥的方式访问您的OSS。
配置RAM用户的访问密钥
获取RAM用户的访问密钥。
如何获取RAM用户的访问密钥,请参见创建RAM用户的AccessKey。
重要对于超过3个月的RAM用户的访问密钥,建议及时轮换。对于长期不用的RAM用户的访问密钥,建议及时禁用并删除。以此降低RAM用户的访问密钥被泄露的风险。
配置RAM用户的访问密钥。
环境变量
配置环境变量。
macOS
打开终端。
执行以下命令。
nano ~/.bash_profile
在文件末尾添加RAM用户的访问密钥。
export OSS_ACCESS_KEY_ID=LTAI**** export OSS_ACCESS_KEY_SECRET=IrVTNZNy****
按
Ctrl
+X
,按Y
键确认保存,然后按Enter
键退出文件。输入以下命令以使更改生效。
source ~/.bash_profile
执行以下命令验证环境变量配置。
echo $OSS_ACCESS_KEY_ID echo $OSS_ACCESS_KEY_SECRET
成功返回示例如下:
LTAI**** IrVTNZNy****
Linux
打开终端。
执行以下命令。
sudo vim /etc/profile
在文件末尾添加RAM用户的访问密钥。
export OSS_ACCESS_KEY_ID=LTAI**** export OSS_ACCESS_KEY_SECRET=IrVTNZNy****
按
ESC
键退出编辑模式,输入:wq
,然后按Enter
键保存并退出文件。输入以下命令以使更改生效。
source /etc/profile
执行以下命令验证环境变量配置。
echo $OSS_ACCESS_KEY_ID echo $OSS_ACCESS_KEY_SECRET
成功返回示例如下:
LTAI**** IrVTNZNy****
Windows
通过图形化用户界面GUI
以Windows 10为例,通过图形化用户界面以环境变量的方式设置RAM用户访问密钥的步骤如下:
在桌面右键单击此电脑,选择
。添加以下环境变量。
变量名
示例值
OSS_ACCESS_KEY_ID
LTAI****
OSS_ACCESS_KEY_SECRET
IrVTNZNy****
执行以下命令验证环境变量配置。
echo $OSS_ACCESS_KEY_ID echo $OSS_ACCESS_KEY_SECRET
成功返回示例如下:
LTAI**** IrVTNZNy****
通过命令行提示符CMD
打开命令行。
执行以下命令配置RAM用户的访问密钥。
set OSS_ACCESS_KEY_ID=LTAI**** set OSS_ACCESS_KEY_SECRET=IrVTNZNy****
执行以下命令以使更改生效。
setx OSS_ACCESS_KEY_ID "%OSS_ACCESS_KEY_ID%" setx OSS_ACCESS_KEY_SECRET "%OSS_ACCESS_KEY_SECRET%"
执行以下命令验证环境变量配置。
echo %OSS_ACCESS_KEY_ID% echo %OSS_ACCESS_KEY_SECRET%
成功返回示例如下:
LTAI**** IrVTNZNy****
通过Windows PowerShell
按下键盘上的
Win + X
组合键。设置RAM用户的访问密钥。
仅当前会话有效
在弹出的菜单中,选择Windows PowerShell。
为当前会话添加以下环境变量。
$env:OSS_ACCESS_KEY_ID = "LTAI****" $env:OSS_ACCESS_KEY_SECRET = "IrVTNZNy****"
对所有新会话有效
在弹出的菜单中,选择Windows PowerShell。
为所有新会话添加以下环境变量。
[System.Environment]::SetEnvironmentVariable('OSS_ACCESS_KEY_ID', 'LTAI****', [System.EnvironmentVariableTarget]::User) [System.Environment]::SetEnvironmentVariable('OSS_ACCESS_KEY_SECRET', 'IrVTNZNy****', [System.EnvironmentVariableTarget]::User)
对所有用户有效
在弹出的菜单中,选择Windows PowerShell(管理员)。
为所有用户添加以下环境变量。
[System.Environment]::SetEnvironmentVariable('OSS_ACCESS_KEY_ID', 'LTAI****', [System.EnvironmentVariableTarget]::Machine) [System.Environment]::SetEnvironmentVariable('OSS_ACCESS_KEY_SECRET', 'IrVTNZNy****', [System.EnvironmentVariableTarget]::Machine)
执行以下命令验证环境变量配置。
Get-ChildItem env:OSS_ACCESS_KEY_ID Get-ChildItem env:OSS_ACCESS_KEY_SECRET
成功返回示例如下:
LTAI**** IrVTNZNy****
从环境变量中获取RAM用户的访问密钥。
// 使用环境变量中获取的STS临时访问密钥和安全令牌配置访问凭证。 $provider = new EnvironmentVariableCredentialsProvider();
代码嵌入
警告在代码中嵌入访问凭证会导致安全问题。如果访问凭证被泄漏,攻击者就可以使用该访问凭证来访问您的资源OSS,造成损失。因此,建议您使用更安全的方式,例如从环境变量中获取访问凭证,来提高安全性。
// 从环境变量中获取RAM用户的访问密钥(AccessKey ID和AccessKey Secret)。 $accessKeyId = "yourAccessKeyId"; $accessKeySecret = "yourAccessKeySecret"; // 使用代码嵌入的RAM用户的访问密钥配置访问凭证。 $provider = new StaticCredentialsProvider($accessKeyId, $accessKeySecret);