ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

使用 AWS CLI 的 cloud9 describe-environment-memberships 查询开发环境成员信息

使用 AWS CLI 的 cloud9 describe-environment-memberships 查询开发环境成员信息 使用 AWS CLI 的 cloud9 describe-environment-memberships 查询开发环境成员信息【免费下载链接】aws-cliUniversal Command Line Interface for Amazon Web Services项目地址: https://gitcode.com/GitHub_Trending/aw/aws-cli导读本文围绕 AWS CLI本仓库 aws-cli 项目中aws cloud9 describe-environment-memberships命令展开讲解如何查询 AWS Cloud9 开发环境的成员环境成员及其权限信息。你将掌握三种典型查询方式按环境 ID 查询全部成员、按权限类型过滤成员、按用户 ARN 跨环境查询成员并了解其请求参数、返回结构与底层分页机制可直接应用于环境访问权限审计与日常运维脚本。注意根据 service-2.json 中服务级文档说明AWS Cloud9 已不再向新客户开放现有客户可继续正常使用。本文所述命令基于当前仓库中该服务模型版本2017-09-23的实际定义。命令概览describe-environment-memberships 能做什么DescribeEnvironmentMemberships是 Cloud9 服务提供的一类信息查询操作其服务端模型定义于 service-2.jsonHTTP 方法为POST请求 URI 为/输入结构为DescribeEnvironmentMembershipsRequest输出结构为DescribeEnvironmentMembershipsResult官方语义Gets information about environment members for an Cloud9 development environment.获取某个 Cloud9 开发环境的环境成员信息。该操作返回每个成员的成员权限类型、IAM 用户 ID、用户 ARN、所属环境 ID以及可选最近访问时间可用于审计谁有权限访问哪个环境、权限级别是什么。命令语法与参数详解输入结构DescribeEnvironmentMembershipsRequest定义于 service-2.json四个可选参数说明如下CLI 参数对应成员类型说明--user-arnuserArnstring单个环境成员的 ARN。指定后只返回该成员的信息不指定则返回全部成员信息--environment-idenvironmentIdstring环境 ID。正则约束为^[a-zA-Z0-9]{8,32}$832 位字母数字定义于 EnvironmentId--permissionspermissionslist权限类型过滤条件。可选值owner、read-only、read-write由 Permissions 枚举定义--max-resultsmaxResultsinteger单次最多返回的成员数取值范围 025见 MaxResults--next-tokennextTokenstring分页游标用于获取下一批结果四个参数均为可选但参数之间具有实际的组合语义--environment-id用于限定单个环境--user-arn用于限定单个用户两者可单独使用也可组合使用--permissions在两者之上再做权限类型过滤。若全部省略则返回当前账号有权限查看的全部成员记录。关于权限枚举需要说明请求侧Permissions枚举与返回侧一致均包含owner、read-write、read-only而 MemberPermissions 仅含read-write、read-only用于create-environment-membership/update-environment-membership这类授予成员权限的操作因为成员权限只能授予为读写或只读owner 不可通过成员管理接口授予。三种典型使用场景官方示例文档 describe-environment-memberships.rst 提供了三个典型调用下面逐一展开。场景一查询指定环境的所有成员不指定任何过滤条件仅按--environment-id查询该环境下全部成员aws cloud9 describe-environment-memberships --environment-id 8a34f51ce1e04a08882f1e811bd706EX输出示例{ memberships: [ { environmentId: 8a34f51ce1e04a08882f1e811bd706EX, userId: AIDAJ3LOROMOUXTBSU6EX, userArn: arn:aws:iam::123456789012:user/AnotherDemoUser, permissions: read-write }, { environmentId: 8a34f51ce1e04a08882f1e811bd706EX, userId: AIDAJNUEDQAQWFELJDLEX, userArn: arn:aws:iam::123456789012:user/MyDemoUser, permissions: owner } ] }从返回结构EnvironmentMemberservice-2.json可知每条成员记录包含permissions必填成员权限取值owner/read-write/read-onlyuserId必填成员在 IAM 中的用户 IDuserArn必填成员的 IAM ARNenvironmentId必填所属环境 IDlastAccess可选成员最近打开该环境的时间采用 epoch 秒时间戳格式。上述示例中可以看到AnotherDemoUser拥有read-write权限MyDemoUser为环境所有者owner。场景二按权限类型过滤成员当成员较多时可用--permissions过滤例如只查环境所有者aws cloud9 describe-environment-memberships --environment-id 8a34f51ce1e04a08882f1e811bd706EX --permissions owner输出示例{ memberships: [ { environmentId: 8a34f51ce1e04a08882f1e811bd706EX, userId: AIDAJNUEDQAQWFELJDLEX, userArn: arn:aws:iam::123456789012:user/MyDemoUser, permissions: owner } ] }--permissions参数是列表类型PermissionsList因此可以同时传多个值进行过滤例如--permissions owner read-write。但需要说明从当前仓库的服务模型中无法确认多个过滤值之间是与还是或的语义实际语义以 Cloud9 服务端行为为准最稳妥的用法仍是单值过滤。场景三按用户 ARN 跨环境查询不指定--environment-id仅指定--user-arn可查询同一成员在多个环境中的成员关系便于盘点某用户的所有环境访问权限aws cloud9 describe-environment-memberships --user-arn arn:aws:iam::123456789012:user/MyDemoUser输出示例{ memberships: [ { environmentId: 10a75714bd494714929e7f5ec4125aEX, lastAccess: 1516213427.0, userId: AIDAJNUEDQAQWFELJDLEX, userArn: arn:aws:iam::123456789012:user/MyDemoUser, permissions: owner }, { environmentId: 1980b80e5f584920801c09086667f0EX, lastAccess: 1516144884.0, userId: AIDAJNUEDQAQWFELJDLEX, userArn: arn:aws:iam::123456789012:user/MyDemoUser, permissions: owner } ] }该场景的输出中出现了lastAccess字段epoch 秒如1516213427.0可用于分析用户活跃度。--environment-id与--user-arn也可组合使用精确定位某环境下某用户的成员关系。返回结构、分页与错误处理返回结构与字段语义输出结构DescribeEnvironmentMembershipsResultservice-2.json包含membershipsEnvironmentMembersListEnvironmentMember的列表nextToken若结果超过 25 条仅返回前 25 条并附带游标用于继续取下一页。分页与 maxResults从 paginators-1.json 可以看到DescribeEnvironmentMemberships已被声明为可自动分页的操作result_keymembershipsoutput_tokennextTokeninput_tokennextTokenlimit_keymaxResults因此除手动传递--next-token外AWS CLI 也支持在命令尾部追加--paginate参数自动翻页并合并全部结果这是处理大量成员时的推荐做法。注意maxResults服务端上限为 25见 MaxResults即单次请求最多返回 25 条成员记录超出部分必须依赖游标分页获取。错误码模型 service-2.json 声明该操作可能抛出以下异常BadRequestException请求参数不合法例如environmentId不满足^[a-zA-Z0-9]{8,32}$约束ConflictException请求与当前状态冲突NotFoundException指定的环境或用户不存在ForbiddenException权限不足无权查看目标成员信息TooManyRequestsException请求过于频繁被限流LimitExceededException超出服务限制InternalServerErrorException服务端内部错误。这些错误在 CLI 中会以An error occurred (xxxException) when calling the DescribeEnvironmentMemberships operation的形式输出排查时可结合命令尾部添加--debug查看详细请求过程。与成员管理命令的配合使用describe-environment-memberships是 Cloud9 成员管理链路中的查询环节可与其配套命令形成完整的管理闭环相关示例位于 awscli/examples/cloud9 目录添加成员create-environment-membership.rstaws cloud9 create-environment-membership --environment-id 8a34f51ce1e04a08882f1e811bd706EX --user-arn arn:aws:iam::123456789012:user/AnotherDemoUser --permissions read-write调整成员权限update-environment-membership.rstaws cloud9 update-environment-membership --environment-id 8a34f51ce1e04a08882f1e811bd706EX --user-arn arn:aws:iam::123456789012:user/AnotherDemoUser --permissions read-only移除成员delete-environment-membership.rstaws cloud9 delete-environment-membership --environment-id 8a34f51ce1e04a08882f1e811bd706EX --user-arn arn:aws:iam::123456789012:user/AnotherDemoUser典型运维流程为先用describe-environment-memberships审计当前成员与权限 → 对需要收敛权限的成员执行update-environment-membership降级为read-only→ 对已离职/不应再访问的成员执行delete-environment-membership移除 → 再次调用查询命令验证结果。例如可用--permissions read-write过滤出全部写权限成员逐一核查是否需要回收。在脚本中的实际用法建议以下为可复制到 Shell 脚本中的实际用法示例数据来自官方示例文档审计某环境全部写权限成员输出成员 ARN 与权限aws cloud9 describe-environment-memberships --environment-id 8a34f51ce1e04a08882f1e811bd706EX --query memberships[?permissionsread-write].[userArn,permissions] --output text自动分页获取某用户在所有环境中的成员记录aws cloud9 describe-environment-memberships --user-arn arn:aws:iam::123456789012:user/MyDemoUser --paginate --query memberships[].[environmentId,permissions,lastAccess] --output table仅取环境所有者 ARNaws cloud9 describe-environment-memberships --environment-id 8a34f51ce1e04a08882f1e811bd706EX --permissions owner --query memberships[].userArn --output text--query采用 JMESPath 语法由 botocore 底层的jmespath实现支撑--output支持json/text/table三种格式便于直接与其他命令或审计系统对接。小结aws cloud9 describe-environment-memberships提供了一种简洁、可过滤、可分页的成员信息查询方式通过--environment-id限定环境--user-arn限定用户--permissions过滤权限类型结合--max-results/--next-token或--paginate处理大批量结果即可完成 Cloud9 环境访问权限的全面审计。其参数与返回结构均可在 service-2.json 中逐一核对配合 create、update、delete 三个成员管理示例命令可构成完整的成员生命周期管理能力。【免费下载链接】aws-cliUniversal Command Line Interface for Amazon Web Services项目地址: https://gitcode.com/GitHub_Trending/aw/aws-cli创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表