示例工程教程后端【免费下载链接】aws-doc-sdk-examplesWelcome to the AWS Code Examples Repository. This repo contains code examples used in the AWS documentation, AWS SDK Developer Guides, and more. For more information, see the Readme.md file below.项目地址https://gitcode.com/gh_mirrors/aw/aws-doc-sdk-examples点击查看免费下载本指南以 php/example_code/sts 目录为线索系统讲解如何在 PHP 项目中使用 AWS Security Token ServiceAWS STS获取临时安全凭证并借助这些凭证安全地访问 S3 等其他 AWS 服务。读完本文你将掌握assumeRole的核心调用方式、临时凭证的下游复用模式以及从 IAM 角色创建到凭证生效的完整链路。概述为什么需要 AWS STSAWS STSAWS Security Token Service为可信用户创建并提供临时安全凭证用于控制对 AWS 资源的访问。与长期凭证如 IAM 用户的 Access Key相比临时凭证具有三个显著特点有限生命周期凭证在几十分钟到数小时内自动过期降低长期泄露风险按需权限可以通过角色Role或联合身份Federated Identity动态获得一组权限无需在代码中硬编码密钥可组合使用获取临时凭证后可将其作为credentials注入任意 AWS 服务客户端如 S3、DynamoDB实现以角色的身份执行操作。在 PHP 生态中这一切通过 AWS SDK for PHP v3 的Aws\Sts\StsClient完成。本仓库的 STS 示例目录 提供了最核心的AssumeRole.php示例本文将以它为骨架展开讲解。环境准备与前置条件按照 php 目录 README 的说明运行 STS 示例前需要准备PHP 8.1 或更高版本Composer用于依赖管理仓库根部的 composer.json 声明了aws/aws-sdk-php: ^3.209这是 PHP 示例的统一 SDK 版本基线PHPUnit用于运行单元测试仅测试场景需要AWS 凭证按 AWS 共享凭证/配置文件方式配置默认defaultprofileSDK 会通过默认凭证提供链自动加载。安装依赖cd php composer install注意STS 示例所在目录本身没有独立的composer.json需要从php目录级别安装依赖后再进入php/example_code/sts运行示例。核心示例解析AssumeRole.phpAssumeRole.php 是本目录唯一的示例文件它完整演示了假设一个 IAM 角色 → 拿到临时凭证 → 用临时凭证初始化 S3 客户端的全过程。第一步初始化 StsClient$client new StsClient([ profile default, region us-west-2, version 2011-06-15 ]);三个关键配置项的说明配置项取值示例含义profiledefault指定使用~/.aws/credentials或~/.aws/config中哪个命名的凭证集不传则走默认凭证提供链regionus-west-2请求发往的 AWS 区域STS 是全局服务但请求仍需落在某个区域端点version2011-06-15STS API 版本号SDK for PHP v3 强制要求显式指定版本也可以写latest从源码看version是不可省略的 SDK 约束示例文件中统一显式声明版本这也是 SDK for PHP v3 客户端初始化的标准写法。第二步调用 assumeRole$roleToAssumeArn arn:aws:iam::123456789012:role/RoleName; try { $result $client-assumeRole([ RoleArn $roleToAssumeArn, RoleSessionName session1 ]);assumeRole的入参要点RoleArn目标 IAM 角色的 ARN形如arn:aws:iam::account-id:role/RoleName。示例中的123456789012:role/RoleName是占位符实际运行必须替换为真实角色的 ARNRoleSessionName会话名称用于在 CloudTrail 中标识该次角色会话的来源例如session1也作为sts:RoleSessionName条件键的取值依据。第三步解析返回值并用临时凭证驱动 S3$s3Client new S3Client([ version 2006-03-01, region us-west-2, credentials [ key $result[Credentials][AccessKeyId], secret $result[Credentials][SecretAccessKey], token $result[Credentials][SessionToken] ] ]); } catch (AwsException $e) { error_log($e-getMessage()); }assumeRole的返回结果$result[Credentials]包含四个字段示例中使用其中三个注入 S3 客户端字段用途AccessKeyId临时访问密钥 IDSecretAccessKey临时访问密钥配合上面使用SessionToken必须传递的会话令牌缺少token的请求无法通过 STS 凭证校验Expiration凭证过期时间示例未使用生产环境应据此规划轮换或续期这里的关键点是临时凭证的临时属性决定了它必须与SessionToken一起提交SDK 在构造客户端时通过credentials数组的key/secret/token三项完成注入之后该 S3 客户端的所有请求都将以被假设角色所拥有的权限来执行。AwsException的捕获与error_log输出则展示了最小化的异常处理模式——生产代码建议在此处补充重试或告警逻辑。从简单到完整临时凭证的三种获取方式除assumeRole外STS 还提供getSessionToken与getFederationToken两种获取临时凭证的方式仓库在 S3 示例中均有可运行佐证getSessionToken用当前身份换取会话凭证s3-request-with-temp-credentials.php 展示了为当前 AWS 账户身份换取临时会话凭证的写法$sts new StsClient([ version latest, region us-east-1 ]); $sessionToken $sts-getSessionToken(); $s3 new S3Client([ region us-east-1, version latest, credentials [ key $sessionToken[Credentials][AccessKeyId], secret $sessionToken[Credentials][SecretAccessKey], token $sessionToken[Credentials][SessionToken] ] ]);注意该示例将version写为latest与AssumeRole.php的显式版本号风格并存两者都是 SDK 支持的做法。随后它用临时凭证分页列出 S3 桶内对象。getFederationToken为联邦用户下发带限定策略的凭证s3-request-fed-user-with-temp-credentials.php 演示了更贴近真实多端架构的模式受信侧代码用长期凭证调用getFederationToken并通过Policy参数把权限收紧到最小范围再把临时凭证交给低信任侧代码使用$sessionToken $sts-getFederationToken([ Name User1, DurationSeconds 3600, Policy json_encode([ Statement [ Sid randomstatementid . time(), Action [s3:ListBucket], Effect Allow, Resource arn:aws:s3::: . $bucket ] ]) ]);这里DurationSeconds示例为 3600 秒控制凭证有效期Policy则动态收窄权限边界——这是最小权限原则在 STS 场景中的直接落地。文件注释也明确区分了受信代码与较少受信代码两部分为理解临时凭证的信任边界提供了很好的参考。完整链路验证IAM 场景中的 assumeRole临时凭证的价值必须放在真实调用链中验证。GettingStartedWithIAM.php 给出了从创建角色到凭证生效的七步完整场景与AssumeRole.php互为印证创建一个无任何权限的 IAM 用户创建一个角色并附加允许s3:ListAllMyBuckets的策略通过信任策略AssumeRolePolicyDocument和用户内联策略Action: sts:AssumeRole把允许该用户假设该角色的权限授予用户用该用户自己的长期凭证创建 S3 客户端尝试listBuckets——预期失败调用assumeRole换取临时凭证见源码 第 105-110 行用临时凭证重建 S3 客户端再次listBuckets——预期成功清理所有资源。其中第 4 步与第 6 步的先失败、后成功对比实验正是对 STS 工作机制最直观的验证权限不挂在用户身上而是通过角色 临时凭证的提权路径授予。这也解释了为什么assumeRole需要同时满足两个条件角色信任策略允许该主体Principal且主体自身拥有sts:AssumeRole权限。从实现细节看IAM 示例中的信任策略文档形如{ Version: 2012-10-17, Statement: [{ Effect: Allow, Principal: {AWS: user-arn}, Action: sts:AssumeRole }] }这里的Action: sts:AssumeRole是角色能否被假设的开关与 STS 侧 APIassumeRole一一对应。运行示例与测试运行 STS 示例本仓库 PHP 示例的通用运行方式为先在php目录执行composer install然后在示例所在目录直接执行 PHP 文件。STS 示例没有额外的Runner.php因此直接运行cd php/example_code/sts php AssumeRole.php运行前请务必把文件中的arn:aws:iam::123456789012:role/RoleName替换为你账户中真实存在的、且信任你当前凭证主体的角色 ARN否则将抛出权限拒绝类AwsException。运行测试STS 目录本身未附带测试文件STS README 与 php 目录 README 指出测试的通用指引遵循php目录约定测试文件以Test.php结尾、通常位于示例旁的tests目录并通过 PHPUnit 执行。整个 PHP 示例集可以按如下方式过滤运行cd php/example_code phpunit --testsuite testsuite-name # 按服务过滤 phpunit --group integ # 只跑集成测试 phpunit --group unit # 只跑单元测试与 STS 强相关的可验证测试位于 IAM 场景IAMServiceTest.php 与 IAMBasicsTest.php 中通过构造包含sts:AssumeRole动作的信任策略文档来创建角色并断言返回值可以作为 STS 相关代码行为回归的参考。注意运行这些测试同样会产生 AWS 费用。安全与成本注意事项原 README 的 Important 部分对运行此类示例提出了明确警示这里结合代码补充说明费用运行示例尤其是真实调用assumeRole并访问 S3可能产生 AWS 账户费用运行测试同样如此最小权限建议只授予任务所需的最低权限。实践中体现在两个层面角色应只挂载必要策略若走getFederationToken还应通过Policy参数进一步收窄正如 s3-request-fed-user-with-temp-credentials.php 所做区域可用性示例代码并未在每个 AWS 区域验证不同区域的服务可用性存在差异生产部署前应确认目标区域是否支持所需功能凭证安全长期凭证应保存在共享凭证文件或环境变量中避免写入代码临时凭证虽然生命周期短同样不应泄露到日志或版本控制中。进一步探索唯一 STS 示例文件AssumeRole.phpSTS 示例 READMEphp/example_code/sts/README.mdPHP 示例总入口前置条件、安装、测试约定php/README.mdSDK 版本基线配置php/composer.json临时凭证在 S3 中的两种用法s3-request-with-temp-credentials.php、s3-request-fed-user-with-temp-credentials.phpassumeRole 完整调用链场景GettingStartedWithIAM.php。Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. SPDX-License-Identifier: Apache-2.0赞分享示例工程教程后端【免费下载链接】aws-doc-sdk-examplesWelcome to the AWS Code Examples Repository. This repo contains code examples used in the AWS documentation, AWS SDK Developer Guides, and more. For more information, see the Readme.md file below.项目地址https://gitcode.com/gh_mirrors/aw/aws-doc-sdk-examples点击查看免费下载相关推荐使用 AWS SDK for Go 实现 STS AssumeRole获取临时安全凭证的完整实战指南使用 AWS SDK for Go 实现 STS AssumeRole获取临时安全凭证的完整实战指南 导读 本文以 go/sts https://link.g示例工程教程后端AWS STS 临时凭证实战指南使用 AWS SDK for JavaScript (v3) 实现 AssumeRole 角色扮演AWS STS 临时凭证实战指南使用 AWS SDK for JavaScript v3 实现 AssumeRole 角色扮演 导读 本文以 AWS Code示例工程教程后端AWS SDK for .NET 使用 STS AssumeRole 获取临时安全凭证完整示例与单元测试解析AWS SDK for .NET 使用 STS AssumeRole 获取临时安全凭证完整示例与单元测试解析 导读 本文基于 aws doc sdk exam示例工程教程后端上一篇XXMI启动器把多款游戏的模组管理装进同一个窗口下一篇QQ空间说说导出完整指南用GetQzonehistory一键备份你的全部历史说说创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
企业数字化 ERP 产品动态
相关推荐
嵌入式开发实操指南:从学习路线到C674X缓存优化 干嵌入式这行,最不缺的就是劝退贴和学习资料,但最缺的其实是那种"一篇文章能把全局讲清楚、把弯路标出来"的实操总结。我在这个领域摸爬滚打了十几年,从裸机写LED驱动到上手C6748 DSP,中间踩过的坑比很多人写过的代码都… · 2026/9/27 11:01:00
紧急!3大主流工具遭投毒波及千万用户,这份4步自查清单请收好 知晓众人好, 我身为聚焦民生政策的自媒体从业之人。当下之日, 不去谈论补贴之事, 也不涉及医保方面内容, 而是要去讲述一个与诸位每人皆紧密关联的网络安全相关话题。4月10日, 国家网络安全通报中心发出了一条紧急警示, 如今有这样一种情况, 近期呈现出多起供应链投毒攻击事件集… · 2026/9/27 11:00:54
ZGC 垃圾回收器:内存配置与生产调优实战 在低延迟、高并发的 Java 应用架构中,GC(垃圾回收)停顿往往是影响系统可用性的头号杀手。ZGC(Z Garbage Collector)作为 JDK 11 引入、JDK 15+ 正式生产级的低延迟垃圾收集器,凭借其停顿时间不超过 10ms(JDK 21+ 分代 ZGC 可达亚毫秒级)且停顿时间不随堆大小增加的特性… · 2026/9/27 11:00:54
九章云极Alaya Token适配Kimi K3:3T级开源模型接入TaoToken配置实战 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/27 11:50:13
3家定制高端网站建设企业对比评测,解决没流量痛点 3家定制高端网站建设企业对比评测,解决没流量痛点 网站做好了没人访问,这是最扎心的现实。很多老板花大价钱找公司定制高端网站建设企业,上线后打开率却惨不忍睹。别急,问题往往出在选型和SEO底层逻辑上。今天我不讲虚的,直接拿三家在湖北武汉及周边… · 2026/9/27 11:50:07
3个实战案例拆解建设网站管理规定,拒绝被黑挂马 3个实战案例拆解建设网站管理规定,拒绝被黑挂马 网站上线三天,后台突然多出几十个陌生管理员账号,首页代码被替换成了赌博广告,客户投诉电话打爆手机。这种“网站被黑挂马不知道怎么办”的绝望,是无数站长和开发者踩过的深坑。很多人第一反应是重装系统… · 2026/9/27 11:50:07
IT66612深度解析:HDMI信号再生原理与工程实践 1. 为什么IT66612不是“一分二”的简单搬运工,而是HDMI信号再生的精密手术刀你拆开市面上那些标着“HDMI一分二有源分配器”的小盒子,十有八九会看到一块印着IT66612字样的黑色芯片。但如果你真以为它只是把一根HDMI线的信号原封不动地“复制粘贴”到两根… · 2026/9/27 11:50:01
STM32开发避坑指南:从时钟树到外设调试的实践经验 STM32这个系列我前前后后用了六七年,从最早的F103标准库一路做到H743的HAL工程,产品级的东西交付过不少,板子上翻过车的事情也多得数不清。如果你让我总结一句最真实的感受,那就是:STM32本身并不难,难的是那… · 2026/9/27 11:49:55
MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现 简介:这套Matlab仿真工具完整呈现雷达信号脉冲压缩过程,从线性调频(LFM)信号生成、目标回波仿真到匹配滤波压缩处理均有可运行代码支撑,面向电子信息工程、计算机、数学等专业学生,适用于课程设计、期末大作… · 2026/9/27 0:00:01
汕头网站建设制作厂家避坑指南:5大注意事项救急 汕头网站建设制作厂家避坑指南:5大注意事项救急 改个需求建站公司拖一周,这种憋屈事我见得太多了。 很多汕头老板找本地建站团队,签合同前看着方案挺美,一上线就变脸。 今天不聊虚的,直接拆解找 汕头网站建设制作厂家 时的5个核心 注意事项… · 2026/9/27 0:00:01
多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习 简介:基于PyTorch的多模态虚假新闻检测项目完整代码包,面向自然语言处理与计算机视觉交叉方向的开发者、科研人员及毕业设计选题者,解决社交媒体中文本与图像联合识别虚假新闻的问题。系统以BERT预训练模型提取文本语义特征,以Res… · 2026/9/27 0:00:01
MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现 简介:这套Matlab仿真工具完整呈现雷达信号脉冲压缩过程,从线性调频(LFM)信号生成、目标回波仿真到匹配滤波压缩处理均有可运行代码支撑,面向电子信息工程、计算机、数学等专业学生,适用于课程设计、期末大作… · 2026/9/27 0:00:01
汕头网站建设制作厂家避坑指南:5大注意事项救急 汕头网站建设制作厂家避坑指南:5大注意事项救急 改个需求建站公司拖一周,这种憋屈事我见得太多了。 很多汕头老板找本地建站团队,签合同前看着方案挺美,一上线就变脸。 今天不聊虚的,直接拆解找 汕头网站建设制作厂家 时的5个核心 注意事项… · 2026/9/27 0:00:01
多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习 简介:基于PyTorch的多模态虚假新闻检测项目完整代码包,面向自然语言处理与计算机视觉交叉方向的开发者、科研人员及毕业设计选题者,解决社交媒体中文本与图像联合识别虚假新闻的问题。系统以BERT预训练模型提取文本语义特征,以Res… · 2026/9/27 0:00:01