stups-piu 完整使用手册一、包基础概述1. 核心定义stups-piu是Zalando STUPS 云原生体系下的 Python 命令行/SDK 工具包全称PIU (Platform Identity User)专门面向 AWS 企业多账号集群做身份、权限、服务账号、临时凭证管理是 STUPS 平台配套的权限管控工具。定位企业 AWS 多账户 IAM 轻量化管理工具替代手动创建 IAM 用户/角色/访问密钥适用场景大型微服务集群、多AWS组织账号、自动化CI/CD流水线、服务账号轮换密钥、权限合规审计开源归属Zalando STUPS 开源套件兼容 Python3.7–3.112. 核心功能服务账号全生命周期管理创建/删除/查询 AWS IAM 服务账号机器账号非人工用户绑定项目、环境、团队标签。临时凭证下发与轮换自动生成、轮换、撤销 AWS AccessKey/SecretKey支持定时密钥轮换满足安全合规。权限策略绑定预定义 STUPS 标准权限模板S3读写、EC2只读、CloudWatch日志、Lambda执行等一键绑定给服务账号。多AWS账号切换统一配置多组织AWS账户通过环境标识dev/test/prod快速切换操作上下文。权限审计导出导出账号权限清单、密钥创建时间、上次轮换时间、闲置账号识别输出CSV/JSON审计报表。CLI Python SDK 双接口既可终端命令行操作也可在Python代码内调用API做自动化开发。标签标准化管控强制给所有IAM资源打上团队、应用、环境、成本中心标签用于云成本分摊。流水线集成能力输出兼容 AWS CLI、boto3 的凭证文件可直接接入Jenkins/GitLab CI/Airflow。二、安装方式环境前置依赖Python ≥3.7pip 工具本地已配置基础 AWS 凭证管理员权限具备创建IAM用户权限STUPS 平台基础配置文件.stups.yml项目根目录方式1pip 标准安装# 稳定正式版pipinstallstups-piu# 指定版本安装pipinstallstups-piu1.8.2# 开发版GitHub源码pipinstallgithttps://github.com/zalando-stups/stups-piu.git方式2虚拟环境隔离安装推荐生产python-mvenv venv_piusourcevenv_piu/bin/activate# Windows: venv_piu\Scripts\activatepipinstallstups-piu验证安装成功# CLI验证piu--version# Python SDK验证python-cimport piu; print(piu.__version__)配套初始化配置创建项目根目录.stups.yml必填aws_accounts:dev:123456789012prod:987654321098default_environment:devteam:data-platformcost_center:cc-00123region:eu-west-1三、语法、全局参数与子命令1. CLI 通用语法piu[全局参数]子命令[子命令参数]2. 全局通用参数所有子命令共享参数说明-e/--env指定环境 dev/test/prod覆盖默认配置-t/--team覆盖配置文件团队标签-r/--region指定AWS区域-o/--output输出格式table/json/csv-v/--verbose打印详细调试日志--dry-run模拟执行不实际修改AWS资源--no-tag跳过强制标签校验仅测试用3. 核心子命令及参数详解1create创建服务账号作用新建IAM服务账号自动生成密钥、绑定权限模板piu create SERVICE_NAME--permissionsPERM1,PERM2关键参数--permissions权限模板列表必填--description账号用途备注--expire-days密钥过期天数默认90--no-key不自动生成访问密钥2list查询所有服务账号piu list--team>--envprod参数--unused只列出超过30天未使用闲置账号3rotate轮换账号密钥piu rotate SERVICE_NAME --expire-days60参数--delete-old-key轮换后直接删除旧密钥4revoke撤销指定密钥piu revoke SERVICE_NAME --key-id AKIAEXAMPLE1235delete删除服务账号piu delete SERVICE_NAME--force--force跳过二次确认6grant追加权限到已有账号piu grant SERVICE_NAME--permissionss3-write,cloudwatch-logs7audit导出权限审计报表piu audit--outputcsv--fileaudit_report.csv8credential输出本地凭证文件piu credential SERVICE_NAME--file~/.aws/credentials4. Python SDK 基础语法importpiu# 初始化PIU客户端clientpiu.PiuClient(envprod,teamdata-platform,config_path./.stups.yml)# 核心SDK方法client.create_account()client.list_accounts()client.rotate_access_key()client.grant_permissions()client.export_audit()四、8个完整可运行实际应用案例案例1创建数据S3写入服务账号CLI需求prod环境data-team团队服务名etl-job赋予S3写入CloudWatch日志权限密钥60天过期piu create etl-job\-eprod\-t>\--permissionss3-write,cloudwatch-logs\--descriptionETL离线数据同步任务账号\--expire-days60\-ojson输出返回账号名称、AccessKey、SecretKey、过期时间JSON。案例2Python SDK 批量查询闲置30天以上账号importpiuimportjson clientpiu.PiuClient(config_path./.stups.yml,envdev)# 查询闲置账号unused_accountsclient.list_accounts(unused_days30)# 打印审计结果print(json.dumps(unused_accounts,indent2,ensure_asciiFalse))# 导出本地文件withopen(unused_dev_account.json,w)asf:json.dump(unused_accounts,f)案例3定时轮换生产环境API服务密钥Shell脚本集成#!/bin/bash# rotate_api_account.shSERVICE_NAMEgateway-apiENVprod# dry-run先校验piu rotate$SERVICE_NAME-e$ENV--dry-run# 正式轮换并删除旧密钥piu rotate$SERVICE_NAME-e$ENV--delete-old-key --expire-days45# 导出新凭证到aws配置piu credential$SERVICE_NAME-e$ENV--file~/.aws/credentialsecho密钥轮换完成可接入crontab每周自动执行。案例4给已有账号追加Lambda执行权限CLIpiu grant airflow-scheduler\-edev\--permissionslambda-execute,ec2-readSDK版本clientpiu.PiuClient(envdev)client.grant_permissions(service_nameairflow-scheduler,permission_list[lambda-execute,ec2-read])案例5全环境权限审计导出CSV合规报表# 导出prod全量账号审计表包含密钥创建、过期、权限清单piu audit-eprod-ocsv--fileprod_iam_audit_202606.csv用途交付安全团队月度合规检查。案例6CI流水线内创建临时构建账号用完自动删除GitLab CI 片段build_job:script:-pip install stups-piu-piu create ci-builder-$CI_JOB_ID-e test--permissions ecr-push--expire-days 1-piu credential ci-builder-$CI_JOB_ID--file .aws/creds-aws ecr push xxx.dkr.ecr.eu-west-1.amazonaws.com/appafter_script:-piu delete ci-builder-$CI_JOB_ID-e test--force案例7批量批量删除长期闲置测试账号SDKimportpiu clientpiu.PiuClient(envtest)unusedclient.list_accounts(unused_days90)foraccountinunused:service_nameaccount[service_name]print(f正在删除闲置账号:{service_name})client.delete_account(service_name,forceTrue)print(闲置账号清理完成)案例8撤销泄露的AccessKey应急安全处置# 发现AKIAXXXX密钥泄露立即撤销piu revoke>-eprod --key-id AKIAEXAMPLE123456789# 同步轮换生成新密钥piu rotate>-eprod --delete-old-key五、常见错误、报错原因与解决方案错误1ConfigNotFoundError: .stups.yml not found原因执行目录无配置文件或路径未指定解决当前目录新建.stups.yml或手动指定配置路径piu create xxx --config ./config/.stups.yml错误2AWS UnauthorizedOperation: User not allowed to create iam user原因本地AWS凭证缺少IAM管理员权限解决给执行身份附加IAMFullAccess或最小权限策略允许CreateUser、CreateAccessKey、PutUserPolicy错误3PermissionTemplateNotFound: s3-write is not defined原因权限模板名称拼写错误或平台未定义该模板解决执行piu list-permissions查看所有可用模板核对名称错误4AccessKeyExpiredError: existing keys expired over 7 days原因账号密钥超期未轮换平台安全拦截解决执行piu rotate 服务名生成新密钥错误5DuplicateAccountError: service xxx already exists原因同名服务账号已存在解决使用piu list确认账号改用grant追加权限不要重复create错误6TagValidationError: missing mandatory tag cost_center原因未配置成本中心标签平台强制标签校验拦截解决在.stups.yml补充cost_center字段或命令行传参--cost-center cc-001错误7DryRunError: resource modification blocked by dry-run原因加了--dry-run参数仅模拟不执行真实操作解决去掉--dry-run参数正式执行错误8Python import error: No module named piu原因未安装包、虚拟环境未激活、多Python版本冲突解决激活虚拟环境重新执行pip install stups-piu六、使用注意事项安全生产规范1. 安全规范禁止人工长期使用服务账号密钥必须配置自动轮换≤90天生产建议45天轮换周期。密钥禁止硬编码在代码、Git仓库、CI配置文件使用piu credential临时写入本地凭证。出现密钥泄露第一时间执行revoke撤销对应AK再轮换密钥不可仅删除账号。最小权限原则仅绑定业务必需权限模板不使用全权限策略。2. 运维规范区分环境dev/test/prod操作生产环境必须显式加-e prod防止误操作测试账号。每月执行一次piu audit导出审计报表清理闲置90天以上未使用账号。流水线临时CI账号设置最短过期时间1天内任务结束自动删除。所有账号必须携带team、cost_center、environment标签用于云成本分摊与权限溯源。3. 开发SDK规范生产代码不要关闭标签校验--no-tag仅本地测试使用。SDK操作增加异常捕获捕获piu.exceptions.PiuError统一处理权限/配置异常。批量操作增加限流避免短时间大量调用AWS IAM接口触发API限流。4. 兼容性限制不支持Python3.12高版本最高兼容3.11高版本会出现依赖冲突。仅原生支持AWS云不兼容阿里云、Azure、GCP。仅管理IAM服务机器账号不管理人工登录用户STUPS另有用户管理工具。5. 性能提示piu list查询大量账号时加--output json比table格式更快大批量审计导出建议在非业务高峰执行避免IAM接口限流报错。《动手学PyTorch建模与应用:从深度学习到大模型》是一本从零基础上手深度学习和大模型的PyTorch实战指南。全书共11章前6章涵盖深度学习基础包括张量运算、神经网络原理、数据预处理及卷积神经网络等后5章进阶探讨图像、文本、音频建模技术并结合Transformer架构解析大语言模型的开发实践。书中通过房价预测、图像分类等案例讲解模型构建方法每章附有动手练习题帮助读者巩固实战能力。内容兼顾数学原理与工程实现适配PyTorch框架最新技术发展趋势。
Python之stups-piu包语法、参数和实际应用案例
发布时间:2026/6/30 23:05:00
stups-piu 完整使用手册一、包基础概述1. 核心定义stups-piu是Zalando STUPS 云原生体系下的 Python 命令行/SDK 工具包全称PIU (Platform Identity User)专门面向 AWS 企业多账号集群做身份、权限、服务账号、临时凭证管理是 STUPS 平台配套的权限管控工具。定位企业 AWS 多账户 IAM 轻量化管理工具替代手动创建 IAM 用户/角色/访问密钥适用场景大型微服务集群、多AWS组织账号、自动化CI/CD流水线、服务账号轮换密钥、权限合规审计开源归属Zalando STUPS 开源套件兼容 Python3.7–3.112. 核心功能服务账号全生命周期管理创建/删除/查询 AWS IAM 服务账号机器账号非人工用户绑定项目、环境、团队标签。临时凭证下发与轮换自动生成、轮换、撤销 AWS AccessKey/SecretKey支持定时密钥轮换满足安全合规。权限策略绑定预定义 STUPS 标准权限模板S3读写、EC2只读、CloudWatch日志、Lambda执行等一键绑定给服务账号。多AWS账号切换统一配置多组织AWS账户通过环境标识dev/test/prod快速切换操作上下文。权限审计导出导出账号权限清单、密钥创建时间、上次轮换时间、闲置账号识别输出CSV/JSON审计报表。CLI Python SDK 双接口既可终端命令行操作也可在Python代码内调用API做自动化开发。标签标准化管控强制给所有IAM资源打上团队、应用、环境、成本中心标签用于云成本分摊。流水线集成能力输出兼容 AWS CLI、boto3 的凭证文件可直接接入Jenkins/GitLab CI/Airflow。二、安装方式环境前置依赖Python ≥3.7pip 工具本地已配置基础 AWS 凭证管理员权限具备创建IAM用户权限STUPS 平台基础配置文件.stups.yml项目根目录方式1pip 标准安装# 稳定正式版pipinstallstups-piu# 指定版本安装pipinstallstups-piu1.8.2# 开发版GitHub源码pipinstallgithttps://github.com/zalando-stups/stups-piu.git方式2虚拟环境隔离安装推荐生产python-mvenv venv_piusourcevenv_piu/bin/activate# Windows: venv_piu\Scripts\activatepipinstallstups-piu验证安装成功# CLI验证piu--version# Python SDK验证python-cimport piu; print(piu.__version__)配套初始化配置创建项目根目录.stups.yml必填aws_accounts:dev:123456789012prod:987654321098default_environment:devteam:data-platformcost_center:cc-00123region:eu-west-1三、语法、全局参数与子命令1. CLI 通用语法piu[全局参数]子命令[子命令参数]2. 全局通用参数所有子命令共享参数说明-e/--env指定环境 dev/test/prod覆盖默认配置-t/--team覆盖配置文件团队标签-r/--region指定AWS区域-o/--output输出格式table/json/csv-v/--verbose打印详细调试日志--dry-run模拟执行不实际修改AWS资源--no-tag跳过强制标签校验仅测试用3. 核心子命令及参数详解1create创建服务账号作用新建IAM服务账号自动生成密钥、绑定权限模板piu create SERVICE_NAME--permissionsPERM1,PERM2关键参数--permissions权限模板列表必填--description账号用途备注--expire-days密钥过期天数默认90--no-key不自动生成访问密钥2list查询所有服务账号piu list--team>--envprod参数--unused只列出超过30天未使用闲置账号3rotate轮换账号密钥piu rotate SERVICE_NAME --expire-days60参数--delete-old-key轮换后直接删除旧密钥4revoke撤销指定密钥piu revoke SERVICE_NAME --key-id AKIAEXAMPLE1235delete删除服务账号piu delete SERVICE_NAME--force--force跳过二次确认6grant追加权限到已有账号piu grant SERVICE_NAME--permissionss3-write,cloudwatch-logs7audit导出权限审计报表piu audit--outputcsv--fileaudit_report.csv8credential输出本地凭证文件piu credential SERVICE_NAME--file~/.aws/credentials4. Python SDK 基础语法importpiu# 初始化PIU客户端clientpiu.PiuClient(envprod,teamdata-platform,config_path./.stups.yml)# 核心SDK方法client.create_account()client.list_accounts()client.rotate_access_key()client.grant_permissions()client.export_audit()四、8个完整可运行实际应用案例案例1创建数据S3写入服务账号CLI需求prod环境data-team团队服务名etl-job赋予S3写入CloudWatch日志权限密钥60天过期piu create etl-job\-eprod\-t>\--permissionss3-write,cloudwatch-logs\--descriptionETL离线数据同步任务账号\--expire-days60\-ojson输出返回账号名称、AccessKey、SecretKey、过期时间JSON。案例2Python SDK 批量查询闲置30天以上账号importpiuimportjson clientpiu.PiuClient(config_path./.stups.yml,envdev)# 查询闲置账号unused_accountsclient.list_accounts(unused_days30)# 打印审计结果print(json.dumps(unused_accounts,indent2,ensure_asciiFalse))# 导出本地文件withopen(unused_dev_account.json,w)asf:json.dump(unused_accounts,f)案例3定时轮换生产环境API服务密钥Shell脚本集成#!/bin/bash# rotate_api_account.shSERVICE_NAMEgateway-apiENVprod# dry-run先校验piu rotate$SERVICE_NAME-e$ENV--dry-run# 正式轮换并删除旧密钥piu rotate$SERVICE_NAME-e$ENV--delete-old-key --expire-days45# 导出新凭证到aws配置piu credential$SERVICE_NAME-e$ENV--file~/.aws/credentialsecho密钥轮换完成可接入crontab每周自动执行。案例4给已有账号追加Lambda执行权限CLIpiu grant airflow-scheduler\-edev\--permissionslambda-execute,ec2-readSDK版本clientpiu.PiuClient(envdev)client.grant_permissions(service_nameairflow-scheduler,permission_list[lambda-execute,ec2-read])案例5全环境权限审计导出CSV合规报表# 导出prod全量账号审计表包含密钥创建、过期、权限清单piu audit-eprod-ocsv--fileprod_iam_audit_202606.csv用途交付安全团队月度合规检查。案例6CI流水线内创建临时构建账号用完自动删除GitLab CI 片段build_job:script:-pip install stups-piu-piu create ci-builder-$CI_JOB_ID-e test--permissions ecr-push--expire-days 1-piu credential ci-builder-$CI_JOB_ID--file .aws/creds-aws ecr push xxx.dkr.ecr.eu-west-1.amazonaws.com/appafter_script:-piu delete ci-builder-$CI_JOB_ID-e test--force案例7批量批量删除长期闲置测试账号SDKimportpiu clientpiu.PiuClient(envtest)unusedclient.list_accounts(unused_days90)foraccountinunused:service_nameaccount[service_name]print(f正在删除闲置账号:{service_name})client.delete_account(service_name,forceTrue)print(闲置账号清理完成)案例8撤销泄露的AccessKey应急安全处置# 发现AKIAXXXX密钥泄露立即撤销piu revoke>-eprod --key-id AKIAEXAMPLE123456789# 同步轮换生成新密钥piu rotate>-eprod --delete-old-key五、常见错误、报错原因与解决方案错误1ConfigNotFoundError: .stups.yml not found原因执行目录无配置文件或路径未指定解决当前目录新建.stups.yml或手动指定配置路径piu create xxx --config ./config/.stups.yml错误2AWS UnauthorizedOperation: User not allowed to create iam user原因本地AWS凭证缺少IAM管理员权限解决给执行身份附加IAMFullAccess或最小权限策略允许CreateUser、CreateAccessKey、PutUserPolicy错误3PermissionTemplateNotFound: s3-write is not defined原因权限模板名称拼写错误或平台未定义该模板解决执行piu list-permissions查看所有可用模板核对名称错误4AccessKeyExpiredError: existing keys expired over 7 days原因账号密钥超期未轮换平台安全拦截解决执行piu rotate 服务名生成新密钥错误5DuplicateAccountError: service xxx already exists原因同名服务账号已存在解决使用piu list确认账号改用grant追加权限不要重复create错误6TagValidationError: missing mandatory tag cost_center原因未配置成本中心标签平台强制标签校验拦截解决在.stups.yml补充cost_center字段或命令行传参--cost-center cc-001错误7DryRunError: resource modification blocked by dry-run原因加了--dry-run参数仅模拟不执行真实操作解决去掉--dry-run参数正式执行错误8Python import error: No module named piu原因未安装包、虚拟环境未激活、多Python版本冲突解决激活虚拟环境重新执行pip install stups-piu六、使用注意事项安全生产规范1. 安全规范禁止人工长期使用服务账号密钥必须配置自动轮换≤90天生产建议45天轮换周期。密钥禁止硬编码在代码、Git仓库、CI配置文件使用piu credential临时写入本地凭证。出现密钥泄露第一时间执行revoke撤销对应AK再轮换密钥不可仅删除账号。最小权限原则仅绑定业务必需权限模板不使用全权限策略。2. 运维规范区分环境dev/test/prod操作生产环境必须显式加-e prod防止误操作测试账号。每月执行一次piu audit导出审计报表清理闲置90天以上未使用账号。流水线临时CI账号设置最短过期时间1天内任务结束自动删除。所有账号必须携带team、cost_center、environment标签用于云成本分摊与权限溯源。3. 开发SDK规范生产代码不要关闭标签校验--no-tag仅本地测试使用。SDK操作增加异常捕获捕获piu.exceptions.PiuError统一处理权限/配置异常。批量操作增加限流避免短时间大量调用AWS IAM接口触发API限流。4. 兼容性限制不支持Python3.12高版本最高兼容3.11高版本会出现依赖冲突。仅原生支持AWS云不兼容阿里云、Azure、GCP。仅管理IAM服务机器账号不管理人工登录用户STUPS另有用户管理工具。5. 性能提示piu list查询大量账号时加--output json比table格式更快大批量审计导出建议在非业务高峰执行避免IAM接口限流报错。《动手学PyTorch建模与应用:从深度学习到大模型》是一本从零基础上手深度学习和大模型的PyTorch实战指南。全书共11章前6章涵盖深度学习基础包括张量运算、神经网络原理、数据预处理及卷积神经网络等后5章进阶探讨图像、文本、音频建模技术并结合Transformer架构解析大语言模型的开发实践。书中通过房价预测、图像分类等案例讲解模型构建方法每章附有动手练习题帮助读者巩固实战能力。内容兼顾数学原理与工程实现适配PyTorch框架最新技术发展趋势。