示例工程教程后端【免费下载链接】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 Secrets Manager 用于安全地加密、存储和检索数据库及其他服务的凭据而 AWS SDK for RubyVersion 3提供了访问该服务的原生 Ruby API。本文以当前仓库中 ruby/example_code/secretsmanager 目录下的示例为骨架完整讲解如何在 Ruby 程序中初始化 Secrets Manager 客户端、列出指定 AWS 区域内的全部密钥并逐一读取其明文值同时给出环境准备、依赖安装、凭证配置与最小权限least privilege建议帮助读者快速落地可运行的 Secrets Manager 管理脚本。示例概述与代码清单该目录下的示例展示了一个单一动作Single action使用 SDK for Ruby 调用单个服务函数获取某个 AWS 区域内的全部密钥。Secrets Manager 的核心价值在于帮助你对数据库及其他服务的凭据进行安全加密、存储与检索避免将敏感信息硬编码在代码或配置文件中。目录内包含两个文件README.md示例说明文档本文主体来源。sm_get_secrets.rb核心示例代码对应ListSecrets动作并联动GetSecretValue读取密钥值。README 中登记的单一动作如下示例底层 APIGet all secrets in an AWS RegionListSecrets核心实现源码解析示例的核心逻辑集中在 sm_get_secrets.rb 这一个文件中。整个脚本虽短却完整演示了 Secrets Manager 最常见的两条 API 调用链先列出密钥元数据再按名称读取具体值。1. 引入 SDK 并初始化客户端require aws-sdk-secretsmanager # Gets all secrets in us-west-2 # Replace us-west-2 with the AWS Region youre using for Amazon Secrets Manager. sm Aws::SecretsManager::Client.new(region: us-west-2)require aws-sdk-secretsmanager引入 Secrets Manager 专属的 gem。该 gem 属于 AWS SDK for Ruby v3 服务体系仓库根目录 Gemfile.lock 中锁定版本为aws-sdk-secretsmanager (1.76.0)其依赖aws-sdk-core (~ 3, 3.174.0)当前锁定aws-sdk-core (3.240.0)。通过Aws::SecretsManager::Client.new创建客户端。示例中把区域硬编码为us-west-2源码注释明确提示使用前请替换为你实际使用 Secrets Manager 的 AWS 区域。凭证并未显式传入SDK 会按默认凭证解析顺序自动读取环境变量、共享凭证文件~/.aws/credentials或 IAM 角色等来源详见下文前置条件一节。2. 调用 ListSecrets 列出密钥resp sm.list_secretslist_secrets对应 AWS Secrets Manager 的ListSecretsAPI返回当前区域内密钥的元数据列表含名称、ARN、描述、标签等不包含密钥明文值。响应对象为resp其中resp.secret_list是密钥元数据数组每个元素s的关键字段包括s.name密钥名称。需要说明的是从源码实现看示例直接调用list_secrets而未做显式分页处理。当区域内密钥数量较多时API 默认单页返回上限约为 100 条生产环境建议结合响应中的next_token迭代拉取全部结果。3. 遍历密钥并调用 GetSecretValue 读取明文puts Secrets: resp.secret_list.each do |s| puts name: #{s.name} puts key/value: resp sm.get_secret_value(secret_id: s.name) puts #{resp.secret_string} if resp.secret_string puts end对secret_list中的每一个密钥打印其name。以密钥名称为secret_id调用sm.get_secret_value即GetSecretValueAPI。secret_id既可以是密钥名称也可以是密钥的 ARN此处使用名称最直接。响应中的resp.secret_string为密钥的明文值仅在密钥以字符串形式存储时可用若密钥以二进制形式存储则对应字段为resp.secret_binary。脚本通过if resp.secret_string做了存在性判断避免打印空值。整个循环对每个密钥依次发起一次GetSecretValue请求。这也说明ListSecrets只给元数据读明文必须逐密钥调用GetSecretValue这是 Secrets Manager 出于安全考虑的设计。从脚本结构可以推断这是一个典型的列出即读取的运维/审计型工具它不创建、不更新、不删除密钥只负责把区域内所有密钥的当前值打印到标准输出适合用于人工核查或小规模导出。运行环境与前置条件Ruby 版本与依赖仓库根目录 ruby/README.md 说明了 SDK for Ruby 代码的通用准备步骤确认 Ruby 版本使用ruby -v检查。Gemfile 当前声明ruby 3.3.7如需使用其他版本可修改或移除该声明ruby/README.md 同时注明该代码使用 Ruby 3.1.2 进行过测试。在ruby目录下解析依赖gem install bundler bundle installaws-sdk-secretsmanager通过 Gemfile 中的顶层gem aws-sdk元 gem 一并引入无需单独追加声明Gemfile.lock 显示aws-sdk-secretsmanager (1.76.0)已随aws-sdk (3.1.0)解析安装。AWS 账户与凭证配置运行本示例前需要一个已开通的 AWS 账户本地已配置 AWS 凭证如AWS_ACCESS_KEY_ID/AWS_SECRET_ACCESS_KEY环境变量或~/.aws/credentials共享凭证文件或已附加到运行环境的 IAM 角色目标区域内已存在至少一个密钥否则list_secrets返回空列表脚本只会打印Secrets:头。仓库根目录 README.md 中给出了所有 AWS SDK 的通用账户设置与本地凭证配置指引。运行示例在ruby/example_code/secretsmanager目录下直接执行ruby sm_get_secrets.rb脚本会先打印Secrets:随后按行输出每个密钥的名称与值。注意输出中包含明文密钥值请务必在受控环境执行避免敏感信息泄露到日志或终端记录中。权限与安全注意事项原文档与仓库 ruby/README.md 均强调以下安全准则运行本示例同样适用可能产生费用运行本代码或相关测试可能对 AWS 账户产生费用请确认目标密钥与区域后再执行。最小权限least privilege建议仅授予完成任务所需的最低权限。就本示例而言运行账户的 IAM 策略应至少包含secretsmanager:ListSecrets列出密钥元数据secretsmanager:GetSecretValue读取密钥明文值。 切勿为整个脚本授予secretsmanager:*或管理员权限。区域适配本代码并未在每个 AWS 区域经过测试请在 Secrets Manager 可用的区域中使用。测试约定仓库的 Ruby 测试统一使用 RSpec约定位于各示例目录的spec文件夹中详见 ruby/README.md 的 Tests 章节单元测试使用 SDK 的 stubbed 响应不发起真实请求、不产生费用。在示例目录运行rspec --tag ~integ集成测试发起真实 AWS 请求可能创建/销毁资源并产生费用。运行rspec --tag integ需要说明的是当前secretsmanager目录仅包含 README.md 与 sm_get_secrets.rb尚未包含对应的spec测试文件因此在本地直接运行上述命令可能不会产生实际测试用例。代码质量与贡献仓库为 Ruby 代码引入了 RuboCop 风格检查使用自定义配置 .github/linters/.ruby-lint.yml。若想对本示例做本地检查可先gem install rubocop然后运行rubocop --config .github/linters/.ruby-lint.yml ruby/example_code/secretsmanager仓库鼓励社区为示例代码添砖加瓦完整的贡献流程见 CONTRIBUTING.md。示例代码以 Apache-2.0 许可证发布头部标注了SPDX-License-Identifier: Apache-2.0。仓库内的延伸参考若需要对比其他语言的同类实现当前仓库还提供了PythonBoto3版 Secrets Manager 示例python/example_code/secretsmanager/README.md其中 get_secret_value.py 封装了带ResourceNotFoundException异常处理的get_secret_value调用JavaScriptv3版示例javascriptv3/example_code/secrets-manager/README.md。小结本文围绕 ruby/example_code/secretsmanager/sm_get_secrets.rb 完整还原了列出并读取全部密钥的 Ruby 实现通过Aws::SecretsManager::Client客户端先用list_secrets获取区域内密钥元数据再以密钥名称为secret_id循环调用get_secret_value读取明文。配合 ruby/README.md 中的 Ruby 版本与bundle install依赖解析步骤、ruby sm_get_secrets.rb运行方式以及ListSecretsGetSecretValue的最小权限建议读者可以立即将其改造为适用于自身环境的安全运维脚本。赞分享示例工程教程后端【免费下载链接】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 .NET 读取 AWS Secrets Manager 密钥GetSecretValue 实战指南使用 AWS SDK for .NET 读取 AWS Secrets Manager 密钥GetSecretValue 实战指南 本文以 AWS 官方示例仓库示例工程教程后端使用 AWS SDK for C 读取 AWS Secrets Manager 密钥getSecretValue 实战指南使用 AWS SDK for C 读取 AWS Secrets Manager 密钥getSecretValue 实战指南 本文以 cpp/example示例工程教程后端使用 AWS SDK for JavaScript (v3) 读取 AWS Secrets Manager 密钥GetSecretValue 实战指南使用 AWS SDK for JavaScript v3 读取 AWS Secrets Manager 密钥GetSecretValue 实战指南 本文以开源示例工程教程后端上一篇Qwen3.8-27B-8bit性能调优实战5个技巧让Apple Silicon推理速度大幅提升下一篇告别编辑器崩溃LazyVim日志分析与错误排查全指南创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考