/20 DOP-202503 DOP-202503 All(40 Questions) 1 / 20 1. No.6 一家公司要求账户之间共享的所有 AMI 都经过加密。 DevOps 工程师可以访问构建未加密自定义 AMI 的源账户。 DevOps 工程师还可以访问 Amazon EC2 Auto Scaling 组从 AMI 启动 EC2 实例的目标账户。 DevOps 工程师必须与目标账户共享 AMI。 该公司在源账户中创建了一个 AWS 密钥管理服务 (AWS KMS) 密钥。 DevOps 工程师应采取哪些额外步骤来满足要求?(选择三个。) A. 在源账户中,将未加密的 AMI 复制到加密的 AMI。在复制操作中指定 KMS 密钥。 B. 在源账户中,将未加密的 AMI 复制到加密的 AMI。在复制操作中,指定默认的 Amazon Elastic Block Store (Amazon EBS) 加密密钥。 C. 在源账户中,创建一个 KMS 授权,将权限委托给目标账户中 Auto Scaling 组的服务相关角色。 D.在源账户中,修改密钥策略以在目标账户中授予创建权限。在目标账户中,创建一个 KMS 角色,将权限委托给 Auto Scaling 组的服务相关角色。 E. 在源账户中,与目标账户共享未加密的 AMI。 F. 在源账户中,与目标账户共享加密的 AMI。 答案:A、D、F 解释: Share encrypted AMI across AWS accounts 选项 A - 无法选择 B,因为我正在使用 KMS 选项 D - 权限是临时的,必须与您的帐户共享 选项 F - 与目标共享 AMI 2 / 20 2. No.9 一家公司使用 AWS Key Management Service (AWS KMS) 密钥和手动密钥轮换来满足监管合规性要求。如果密钥在 90 天后仍未轮换,安全团队希望收到通知。 什么解决方案可以实现这一目标? A. 配置 AWS KMS,当密钥超过 90 天时发布到 Amazon Simple Notification Service (Amazon SNS) 主题。 B. 配置 Amazon EventBridge 事件以触发 AWS Lambda 函数,该函数调用 AWS Trusted Advisor API 并发布到 Amazon Simple Notification Service (Amazon SNS) 主题。 C. 制定自定义 AWS Config 规则,如果密钥超过 90 天,则发布到 Amazon Simple Notification Service (Amazon SNS) 主题。 D. 如果密钥超过 90 天,则配置 AWS Security Hub 以发布到 Amazon Simple Notification Service (Amazon SNS) 主题。 答案:C 解释: 选项 A - 这不适用,因为 KMS 不提供此功能。 选项 C-配置规则将通知您。 这一定是一条自定义规则。规则“access-keys-rotated”检查访问密钥,而不是 KMS 密钥。 事实上,对此有一个管理规则: https://docs.aws.amazon.com/config/latest/developerguide/access-keys-rotated.html 无论如何,缺乏这样的检查意味着无法使用值得信赖的顾问。此外,KMS 没有此操作,并且 Security Hub 不执行主动检查,它只对事件做出反应。 3 / 20 3. No.10 安全审查发现,AWS CodeBuild 项目正在使用未经身份验证的请求从 Amazon S3 存储桶下载数据库填充脚本。安全团队不允许对此项目的 S3 存储桶发出未经身份验证的请求。 我怎样才能以最安全的方式解决这个问题? A.将存储桶名称添加到 CodeBuild 项目设置的 AllowedBuckets 部分。更新构建规范以使用 AWS CLI 下载数据库填充脚本。 B. 修改您的 S3 存储桶设置以启用 HTTPS 基本身份验证并指定令牌。更新您的构建规范以使用 cURL 传递令牌来下载数据库填充脚本。 C. 使用存储桶策略从 S3 存储桶中删除未经授权的访问。修改 CodeBuild 项目的服务角色以包含 Amazon S3 访问权限。使用 AWS CLI 下载数据库填充脚本。 D.使用存储桶策略从 S3 存储桶中删除未经授权的访问。使用 AWS CLI 使用您的 IAM 访问密钥和秘密访问密钥下载数据库填充脚本。 答案:C 解释: 选项 C - 使用存储桶策略从 S3 存储桶中删除未经授权的访问。 修改 CodeBuild 项目的服务角色以包含 Amazon S3 访问权限。 4 / 20 4. No.14 一位 DevOps 工程师正在为使用 AWS Lambda 函数的无服务器应用程序构建持续部署管道。该公司希望减少部署失败对客户的影响。我们也想监控这个问题。 哪个部署阶段配置满足这些要求? A.使用 AWS 无服务器应用程序模型 (AWS SAM) 模板定义无服务器应用程序。使用 AWS CodeDeploy 以 Canary10Percent15Minutes 部署配置类型部署 Lambda 函数。使用 Amazon CloudWatch 警报监控您的功能的运行状况。 B. 使用 AWS CloudFormation 发布新的堆栈更新,以包含所有资源的 Amazon CloudWatch 警报。配置 AWS CodePipeline 批准操作,以使开发人员能够验证和批准 AWS CloudFormation 更改集。 C. 使用 AWS CloudFormation 在每次堆栈更新时发布新版本,并为所有资源包含 Amazon CloudWatch 警报。使用 AWS::Lambda::Alias 资源的 RoutingConfig 属性在堆栈更新期间更新流量路由。 D.使用 AWS CodeBuild 将示例事件负载添加到您的 Lambda 函数进行测试。发布函数的新版本并包含 Amazon CloudWatch 警报。更新生产别名以指向新版本。配置当警报处于 ALARM 状态时发生的回滚。 答案:A 解释: 认证提示:有关 Lambda 和 CloudFormation 的 99% 的问题都有 SAM 相关的答案。 减少对客户的影响:AWS CodeDeploy 使用金丝雀部署(Canary10Percent15Minutes)逐步推出新版本。最初,10% 的流量将被引导至新版本,如果一切顺利,剩余的流量将在 15 分钟内迁移完成。此次谨慎的推出将最大限度地降低对客户的风险和影响。 监控:您可以设置 Amazon CloudWatch 警报来跟踪功能错误、延迟和其他重要指标。如果出现任何问题,我们可以立即做出反应。 5 / 20 5. No.25 一家公司有多个 AWS 账户。该公司使用与 AWS Toolkit for Microsoft Azure DevOps 集成的 AWS IAM Identity Center(AWS Single Sign-On)。访问控制功能的属性在 IAM 身份中心中启用。 属性映射列表包含两个条目:部门键映射到${path:enterprise.department}。 costCenter 键映射到 ${path:enterprise.costCenter}。 所有现有的 Amazon EC2 实例都有与公司中的三个部门相对应的部门标签:d1、d2 和 d3。 DevOps 工程师必须根据匹配的属性创建策略。该策略应最大限度地减少管理工作量,并允许每个 Azure AD 用户仅访问标有用户各自部门名称的 EC2 实例。 DevOps 工程师应在自定义权限策略中包含哪些条件键来满足这些要求? A. "Condition": { "ForAllValues:StringEquals": { "aws:TagKeys": ["department"] } } B. "Condition": { "StringEquals": { "aws:PrincipalTag/department": "$(aws:ResourceTag/department)" } } C. "Condition": { "StringEquals": { "ec2:ResourceTag/department": "$(aws:PrincipalTag/department)" } } D. "Condition": { "ForAllValues:StringEquals": { "ec2:ResourceTag/department": ["d1", "d2", "d3"] } } A. "Condition": { "ForAllValues:StringEquals": { "aws:TagKeys": ["department"] } } B. "Condition": { "StringEquals": { "aws:PrincipalTag/department": "${aws:ResourceTag/department}" } } C. "Condition": { "StringEquals": { "ec2:ResourceTag/department": "${aws:PrincipalTag/department}" } } D. "Condition": { "ForAllValues:StringEquals": { "ec2:ResourceTag/department": ["d1", "d2", "d3"] } } 答案:C 解释: C 是正确答案。如果 EC2 部门标签与用户(主体标签)部门标签相同,则允许访问。 答:你的语法不正确。应该仅是 StringEquals B:它正在检查 EC2 标签,而不是 AWS 标签。 D:通过此配置,所有案例都会匹配,并且您将可以访问所有 EC2,无论部门如何。 6 / 20 6. No.26 一家公司在其 AWS 账户中托管一个安全审计应用程序。审计应用程序使用 IAM 角色访问其他 AWS 账户。所有账户均位于 AWS Organizations 内的同一组织中。 最近的安全审计显示,被审计的 AWS 账户中的用户可以修改或删除审计应用程序的 IAM 角色。您的公司必须阻止除受信任的管理员 IAM 角色之外的任何实体修改审计应用程序的 IAM 角色。 哪种解决方案可以满足这些要求? A.创建一个包含用于修改审计应用程序的 IAM 角色的拒绝语句的 SCP。包括允许受信任的管理员 IAM 角色进行更改的条件。将 SCP 附加到您的组织的根目录。 B. 创建一个 SCP,其中包含允许受信任的管理员 IAM 角色修改审计应用程序的 IAM 角色的语句。包含对任何其他 IAM 主体所做的任何更改的拒绝声明。将 SCP 附加到审计应用程序具有 IAM 角色的每个 AWS 账户中的 IAM 服务。 C. 创建一个 IAM 权限边界,其中包括用于修改审计应用程序的 IAM 角色的拒绝语句。包括允许受信任的管理员 IAM 角色进行更改的条件。将权限边界附加到您想要审计的 AWS 账户。 D.创建一个 IAM 权限边界,其中包括用于修改审计应用程序的 IAM 角色的拒绝语句。包括允许受信任的管理员 IAM 角色进行更改的条件。将权限边界附加到 AWS 账户中审计应用程序的 IAM 角色。 答案:A 解释: 服务控制策略 (SCP) 是限制组织级别权限的好方法。在这种情况下,它用于限制对审计应用程序使用的 IAM 角色的更改,但仍允许受信任的管理员进行更改。选项 C 和 D 效果较差,因为 IAM 权限边界适用于 IAM 实体(用户、组和角色)而不是账户本身,并且必须适用于账户中的所有 IAM 实体。 7 / 20 7. No.31 一家公司希望将其基于容器的应用程序迁移到 Amazon EKS 并建立自动电子邮件通知。发送到每个电子邮件地址的通知用于与 EKS 组件相关的特定活动。该解决方案包括一个 Amazon SNS 主题和一个 AWS Lambda 函数,用于评估传入的日志事件并将消息发布到适当的 SNS 主题。 哪种日志解决方案支持这些要求? A.启用 Amazon CloudWatch Logs 来记录 EKS 组件。为每个组件创建一个 CloudWatch 订阅过滤器,并以 Lambda 作为订阅源目标。 B. 启用 Amazon CloudWatch Logs 来记录 EKS 组件。创建一个 CloudWatch Logs Insights 查询,该查询链接到调用 Lambda 的 Amazon EventBridge 事件。 C. 为 EKS 组件启用 Amazon S3 日志记录。为每个组件配置一个 Amazon CloudWatch 订阅过滤器,并使用 Lambda 作为订阅源目标。 D. 为 EKS 组件启用 Amazon S3 日志记录。配置 S3 PUT 对象事件通知,以 AWS Lambda 作为目标。 答案:A 解释: Amazon EKS 与 CloudWatch Logs 集成,提供有关集群中服务运行状况和执行情况的详细日志。您可以使用 CloudWatch 订阅过滤器将特定日志事件从 CloudWatch Logs 组路由到 Lambda 函数。然后,Lambda 函数可以处理该事件并将通知发布到适当的 Amazon SNS 主题。 8 / 20 8. No.39 一家公司希望使用 AWS CloudFormation 进行基础设施部署。该公司对标记和资源有严格的要求,并希望将部署限制在两个地区。开发人员需要部署同一个应用程序的多个版本。 哪种解决方案可以确保资源按照公司政策进行部署? A.创建 AWS Trusted Advisor 检查以查找并修复未经授权的 CloudFormation StackSets。 B. 创建云形成漂移检测操作来查找和修复未经授权的 CloudFormation StackSets。 C. 使用已批准的 CloudFormation 模板创建 CloudFormation StackSets。 D. 使用已批准的 CloudFormation 模板创建 AWS Service Catalog 产品。 答案:D 解释: AWS Service Catalog 使您能够集中管理云资源并实现使用 CloudFormation 或 Terraform 配置编写的基础设施即代码 (IaC) 模板的大规模治理。 AWS Service Catalog 可让您帮助客户快速部署所需的云资源,同时满足合规性要求。 https://aws.amazon.com/servicecatalog/ 其他答案中的所有其他服务均不相关。 9 / 20 9. No.41 DevOps 工程师使用 AWS CodePipeline 构建多阶段管道,用于构建、验证、暂存、测试和部署应用程序。测试和部署阶段之间需要手动批准阶段。开发团队使用支持 webhook 的自定义聊天工具,需要近乎实时的通知。 DevOps 工程师如何设置聊天工具来发布管道活动和批准请求的状态更新? A.创建一个 Amazon CloudWatch Logs 订阅,用于筛选 CodePipeline 管道执行状态的变化。订阅将事件发布到 Amazon Simple Notification Service (Amazon SNS) 主题。将聊天 webhook URL 订阅到 SNS 主题并完成订阅验证。 B. 创建一个由 AWS CloudTrail 事件调用的 AWS Lambda 函数。当 CodePipeline 检测到管道执行状态改变事件时,它会将事件详细信息发送到聊天 webhook URL。 C. 创建一个 Amazon EventBridge 规则,过滤 CodePipeline 管道执行状态的变化。将事件发布到 Amazon Simple Notification Service (Amazon SNS) 主题。创建一个 AWS Lambda 函数,将事件详细信息发送到聊天 webhook URL。将函数订阅到 SNS 主题。 D. 修改管道代码,在每个阶段结束时将事件详细信息发送到聊天 webhook URL。参数化 URL,以便每个管道可以根据管道环境发送到不同的 URL。 答案:C 解释: DevOps 工程师需要创建 Amazon EventBridge 规则来过滤 CodePipeline 管道执行状态变化,并将管道活动和批准请求的状态更新发布到聊天工具。您必须创建一个 AWS Lambda 函数,将事件发布到 Amazon Simple Notification Service (Amazon SNS) 主题并将事件详细信息发送到聊天 webhook URL。该函数必须订阅 SNS 主题。选项C正确。 选项 A 不正确,因为它建议使用 CloudWatch Logs 而不是 EventBridge。对于这种用例来说,这不是最好的解决方案。选项 B 不正确,因为它建议使用 CloudTrail 而不是 CodePipeline 事件。这不相关。选项 D 不正确,因为它不需要对管道代码进行任何更改并且增加了不必要的复杂性。 考试提示:如果您认为这个问题与事件或行动有关 --> EventBridge 10 / 20 10. No.44 一家公司有一个应用程序,使用与 MySQL 兼容的 Amazon Aurora Multi-AZ DB 集群作为其数据库。创建跨区域只读副本是为了实现灾难恢复目的。在发生故障时,DevOps 工程师希望自动将副本提升为主数据库实例。 哪种解决方案可以实现这一目标? A. 配置基于延迟的 Amazon Route 53 CNAME 并进行运行状况检查以指向主端点和副本端点。订阅来自 AWS CloudTrail 的 Amazon RDS 故障通知的 Amazon SNS 主题,然后使用该主题调用将副本实例提升为主实例的 AWS Lambda 函数。 B. 创建指向主数据库实例的 Aurora 自定义端点。配置您的应用程序以使用此端点。配置 AWS CloudTrail 以运行 AWS Lambda 函数,该函数提升副本实例并更改自定义终端节点以指向新提升的实例。 C. 修改应用程序的 AWS CloudFormation 模板以提升副本,通过应用模板更新堆栈,并创建一个将应用程序指向新提升的实例的 AWS Lambda 函数。创建一个 Amazon CloudWatch 警报,在发生故障事件后调用此 Lambda 函数。 D.将 Aurora 端点存储在 AWS Systems Manager 参数存储中。创建一个 Amazon EventBridge 事件,该事件检测数据库故障并执行 AWS Lambda 函数,该函数提升副本实例并更新存储在 AWS Systems Manager 参数存储中的终端节点 URL。如果数据库连接失败,请对应用程序进行编码以从 Parameter Store 重新加载端点。 答案:D 解释: 为了在发生故障时自动将只读副本提升为主实例,您必须检测故障并调用 AWS Lambda 函数来提升副本实例。这可以使用 Amazon EventBridge 实现。 选项A不正确。如果您在健康检查中使用 CNAME,则您的只读副本无法自动提升。此外,从 AWS CloudTrail 订阅 Amazon SNS 主题到 Amazon RDS 故障通知不支持提升副本。 选项B不正确。这是因为您不需要自定义端点来提升只读副本。此外,使用 AWS CloudTrail 运行 AWS Lambda 函数来提升副本实例不会自动更新应用程序终端节点以指向新提升的实例。 11 / 20 No.50 一家公司已经将精心设计的结构实施到可全局访问的 API 堆栈中。该设计必须确保北美和欧洲用户的高可靠性和快速响应时间。 11. API 堆栈包括三层: Amazon API 网关 - AWS Lambda - 亚马逊 DynamoDB - 哪种解决方案符合您的要求? A. 将 Amazon Route 53 指向北美和欧洲的 API 网关 API,并进行健康检查。配置您的 API 以将请求转发到该区域中的 Lambda 函数。配置您的 Lambda 函数以检索和更新与 Lambda 函数位于同一区域的 DynamoDB 表中的数据。 B. 配置 Amazon Route 53 以指向北美和欧洲的 API 网关 API,使用基于延迟的路由和健康检查。配置您的 API 以将请求转发到该区域中的 Lambda 函数。配置 Lambda 函数以检索和更新 DynamoDB 全局表中的数据。 C. 配置 Amazon Route 53 以指向北美的 API 网关,在欧洲创建灾难恢复 API,并配置两个 API 以将请求转发到该地区的 Lambda 函数。从 DynamoDB 全局表中检索数据。部署一个 Lambda 函数,每 5 分钟检查一次北美 API 的运行状况。如果发生灾难,请更新 Route 53 以指向灾难恢复 API。 D. 使用基于延迟的路由配置 Amazon Route 53 以指向北美的 API 网关 API。配置您的 API 以将请求转发到最靠近用户的区域中的 Lambda 函数。配置 Lambda 函数以检索和更新 DynamoDB 表中的数据。 答案:B 解释: 要求是确保北美和欧洲用户的高可靠性和快速响应时间。为了满足此要求,我们使用基于延迟的路由的 Amazon Route 53 将用户引导到最近的 API 网关端点。此外,您可以使用健康检查来监控每个端点的健康状况,并将流量引导出不健康的端点。 为了保持高可靠性,您可以使用 AWS Lambda 来处理 API 请求。 Lambda 会自动扩展,因此您不必担心配置或维护基础设施。您还可以使用 DynamoDB 作为数据库,因为它提供低延迟访问和自动扩展。 12 / 20 12. No.52 一家公司使用 AWS Organizations 来管理多个账户。您的信息安全策略要求将所有未加密的 Amazon EBS 卷标记为不合规。 DevOps 工程师需要自动部署解决方案并确保始终存在此合规性检查。 哪种解决方案可以实现这一目标? A. 创建一个 AWS CloudFormation 模板,定义一个 AWS Inspector 规则,检查是否启用了 EBS 加密。将此模板保存在公司内所有账户共享的 Amazon S3 存储桶中。更新您的帐户创建脚本以指向 Amazon S3 的 CloudFormation 模板。 B. 创建一个 AWS Config 组织规则,检查是否启用了 EBS 加密,然后使用 AWS CLI 部署该规则。创建并应用 SCP 以防止在整个组织中停止和删除 AWS Config。 C. 在组织中创建 SCP。使用条件表达式配置策略,以防止启动没有加密 EBS 卷的 Amazon EC2 实例。将 SCP 应用于所有 AWS 账户。使用 Amazon Athena 分析 AWS CloudTrail 输出并查找拒绝 ec2:RunInstances 操作的事件。 D.从单个受信任的账户将 IAM 角色部署到所有账户。使用 AWS CodePipeline,您将构建一个管道,其中包含一个阶段,供 AWS Lambda 承担 IAM 角色并列出账户中的所有 EBS 卷。将报告发布到 Amazon S3。 答案:B 解释: 当您部署具有 ConfigRuleName 属性中指定的加密卷的 CloudFormation 模板时,AWS Config 会自动扫描您的环境以查找未加密的 EBS 卷。 选项A不正确。 AWS Inspector 规则用于分析 EC2 实例上的应用程序行为,并且不检查 EBS 卷加密。 13 / 20 13. No.58 一家公司在 Amazon EC2 实例上运行应用程序。该公司使用一系列 AWS CloudFormation 堆栈来定义其应用程序资源。开发人员在笔记本电脑上构建和测试应用程序,并通过将构建输出和 CloudFormation 堆栈模板上传到 Amazon S3 来执行更新。在开发人员运行 CloudFormation 堆栈更新并在 EC2 实例上安装新版本的应用程序之前,开发人员的同事会检查这些更改。 当开发人员使用新应用程序更新每个 EC2 实例时,部署过程容易出错且耗时。该公司希望尽可能地实现应用程序部署流程的自动化,同时在进行任何应用程序或资源更改之前仍保留最终的手动批准步骤。 该公司已将其应用程序源代码和 CloudFormation 模板迁移到 AWS CodeCommit。您还可以创建一个 AWS CodeBuild 项目来构建和测试您的应用程序。 哪些步骤组合能够满足公司的要求?(选择两个。) A. 在 AWS CodeDeploy 中创建一个应用程序组和一个部署组。在 EC2 实例上安装 CodeDeploy 代理。 B. 在 AWS CodeDeploy 中创建应用程序修订和部署组。在 CodeDeploy 中创建环境。将 EC2 实例注册到您的 CodeDeploy 环境。 C. 使用 AWS CodePipeline 调用 CodeBuild 作业,执行 CloudFormation 更新,并暂停手动批准步骤。批准后,AWS CodeDeploy 部署开始。 D. 使用 AWS CodePipeline 调用 CodeBuild 作业来为每个应用程序堆栈创建 CloudFormation 变更集并暂停以进行手动批准步骤。一旦获得批准,它将执行 CloudFormation 变更集并启动 AWS CodeDeploy 部署。 E. 使用 AWS CodePipeline 调用 CodeBuild 作业来为每个应用程序堆栈创建 CloudFormation 变更集并暂停以进行手动批准步骤。批准后,AWS CodeDeploy 部署开始。 答案:A、D 解释: 选项 A — 在此步骤中,您将设置环境以使用 AWS CodeDeploy 进行应用程序部署。 CodeDeploy 使用安装在 EC2 实例上的代理来执行部署任务。 选项 D - 在此选项中,您使用 CodePipeline 来协调流程。 CodeBuild 用于构建和测试应用程序。 CloudFormation 用于将基础设施更新准备为变更集。在应用更改之前会插入手动批准步骤。批准后,应用 CloudFormation 变更集并调用 CodeDeploy 将新版本的应用程序部署到 EC2 实例。 14 / 20 14. No.65 一家公司的应用程序当前部署在单个 AWS 区域中。最近,该公司在另一个大陆开设了一个新办事处。新办公室的用户遇到了较高的延迟。该公司的应用程序在应用程序负载均衡器 (ALB) 后面的 Amazon EC2 实例上运行,并使用 Amazon DynamoDB 作为数据库层。这些实例在跨多个可用区域的 EC2 Auto Scaling 组中运行。 DevOps 工程师的任务是最大限度地缩短应用程序响应时间并提高两个地区用户的可用性。 应采取哪些措施组合来解决延迟问题?(选择三项) A.在新区域中创建一个新的 DynamoDB 表,并启用跨区域复制。 B. 创建新的 ALB 和 Auto Scaling 组全局资源,并配置新的 ALB 以将流量引导至新的 Auto Scaling 组。 C. 在新区域中创建新的 ALB 和 Auto Scaling 组资源,并配置新的 ALB 以将流量引导至新的 Auto Scaling 组。 D. 创建 Amazon Route 53 记录、健康检查和基于延迟的路由策略以路由到 ALB。 E. 创建 Amazon Route 53 别名、健康检查和故障转移路由策略以路由到 ALB。 F.将 DynamoDB 表转换为全局表。 答案:C、D、F 解释: C. 在新区域中创建新的 ALB 和 Auto Scaling 组资源,并配置新的 ALB 以将流量引导至新的 Auto Scaling 组。这减少了用户和应用程序服务器之间的网络跳数,从而允许新区域中的用户以更低的延迟访问您的应用程序。 D. 创建 Amazon Route 53 记录、健康检查和基于延迟的路由策略以路由到 ALB。这使得 Route 53 能够根据用户和 ALB 之间的延迟将用户流量路由到最近的健康 ALB。 F.将 DynamoDB 表转换为全局表。这使得对两个区域中的表的读取和写入具有低延迟,从而提高了应用程序的总体响应时间。 15 / 20 15. No.67 一家公司在 AWS Organizations 内的组织中拥有 AWS 账户。 AWS Config 在每个 AWS 账户中手动配置。该公司需要实施一项解决方案,为组织中的所有账户集中配置 AWS Config。该解决方案还要求将资源变化记录在中央账户中。 DevOps 工程师应采取哪些行动组合来满足这些要求?(选择两个。) A.为 AWS Config 设置委派管理员账户。在您的组织中启用对 AWS Config 的可信访问。 B. 为 AWS Config 配置委派管理员账户。在您组织的管理账户中为 AWS Config 创建服务相关角色。 C. 创建 AWS CloudFormation 模板以创建 AWS Config 聚合器。配置 CloudFormation 堆栈集以将模板部署到组织中的所有账户。 D.在组织的管理账户中创建 AWS Config 组织聚合器。配置从组织中的所有 AWS 账户和所有 AWS 区域收集数据。 E. 在委派管理员账户中创建 AWS Config 组织聚合器。配置从组织中的所有 AWS 账户和所有 AWS 区域收集数据。 答案:A、E 解释: https://aws.amazon.com/blogs/mt/org-aggregator-delegated-admin/ 答 - 启用信任会创建与服务相关的角色,但反之则不然。 E - 委托账户是管理 AWS 配置的账户,因此需要集中收集所有数据。 16 / 20 16. No.72 一家公司想要建立一条持续交付管道。该公司将其应用程序代码存储在私人 GitHub 存储库中。该公司需要在 Amazon Elastic Container Service (Amazon ECS)、Amazon EC2 和 AWS Lambda 上部署应用程序组件。管道必须支持手动批准操作。 哪种解决方案可以满足这些要求? A. 使用 AWS CodePipeline 以及 Amazon ECS、Amazon EC2 和 Lambda 作为部署提供程序。 B. 使用 AWS CodePipeline 和 AWS CodeDeploy 作为部署提供程序。 C. 使用 AWS CodePipeline 和 AWS Elastic Beanstalk 作为部署提供程序。 D. 使用与 GitHub 集成的 AWS CodeDeploy 部署应用程序。 答案:B 解释: 因为有这么一个术语:“管道必须支持手动审批操作”。 如果没有管道,这是不可能的。 使用 codePipeline 和 codeDeploy 的 ECS 部署解决方案 创建 CodeDeploy 应用程序和部署组(ECS 计算平台) https://docs.aws.amazon.com/codepipeline/latest/userguide/tutorials-ecs-ecr-codedeploy.html#tutorials-ecs-ecr-codedeploy-deployment 17 / 20 17. No.79 一家公司正在实施 AWS CodePipeline 来自动化其测试流程。我希望在执行状态失败时收到通知,因此我在 Amazon EventBridge 中使用了以下自定义事件模式: { "source": [ "aws.codepipeline" ], "detail-type": [ "CodePipeline Action Execution State Change" ], "detail": { "state" [ "FAILED" ], "type": { "category": ["Approval"] } } } 哪些类型的事件与此事件模式匹配? A. 部署并构建所有管道中失败的操作 B. 所有管道中被拒绝或失败的所有审批操作 C. 所有管道中的所有事件 D. 每条管道的审批行动 答案:B 解释: 使用此示例事件模式来捕获所有管道中被拒绝或失败的所有批准操作。 https://docs.aws.amazon.com/codepipeline/latest/userguide/detect-state-changes-cloudwatch-events.html 18 / 20 No.81 一家公司管理一个将日志存储在 Amazon CloudWatch Logs 中的应用程序。该公司希望将日志存档到 Amazon S3 存储桶。 90 天后日志很少被访问,必须保留 10 年。 18. DevOps 工程师应采取哪些步骤组合来满足这些要求?(选择两个。) A.配置 CloudWatch Logs 订阅过滤器以使用 AWS Glue 将所有日志转发到 S3 存储桶。 B. 配置 CloudWatch Logs 订阅过滤器,以使用 Amazon Kinesis Data Firehose 将所有日志流式传输到 S3 存储桶。 C. 配置 CloudWatch Logs 订阅过滤器以将所有日志流式传输到 S3 存储桶。 D. 为您的 S3 存储桶配置生命周期策略,以便在 90 天后将日志转换到 S3 Glacier,并在 3,650 天后使日志过期。 E. 为您的 S3 存储桶配置生命周期策略,以便将日志在 90 天后转换为减少冗余,并在 3,650 天后使日志过期。 答案:BD 解释: Amazon Kinesis Data Firehose 简化了将流数据加载到 S3 的过程,并提供自动扩展、缓冲和重试功能。 19 / 20 19. No.83 一位 DevOps 工程师正在将公司应用程序的新版本部署到与 Amazon EC2 实例关联的 AWS CodeDeploy 部署组。一段时间后,部署失败。工程师注意到与特定部署 ID 相关的所有事件都处于“已跳过”状态,并且尚未将任何代码部署到与部署组相关的实例。 导致这次失败的正当理由是什么?(选择两个。) A.您的网络配置不允许您的 EC2 实例通过 NAT 网关或 Internet 网关访问互联网以到达 CodeDeploy 终端节点。 B. 触发应用程序部署的 IAM 用户没有权限与 CodeDeploy 端点交互。 C. 目标 EC2 实例未正确注册到 CodeDeploy 端点。 D. 具有正确权限的实例配置文件未附加到目标 EC2 实例。 E. appspec.yml 文件未包含在应用程序修订版中。 答案:A.D. 解释: 一个。 为了使 CodeDeploy 正常工作,您的 EC2 实例需要能够到达 CodeDeploy 端点并下载部署工件。如果您的 EC2 实例的网络配置不允许其通过 NAT 网关或 Internet 网关访问互联网,则该实例将无法到达 CodeDeploy 终端节点,并且部署将失败。 20 / 20 20. No.85 您的应用程序在应用程序负载均衡器 (ALB) 后面的 Amazon EC2 实例上运行。一位 DevOps 工程师正在使用 AWS CodeDeploy 发布新版本。部署在 AllowTraffic 生命周期事件期间失败,但部署日志未指示失败的原因。 可能是什么原因造成的? A. 您的 appspec.yml 文件包含在 AllowTraffic 生命周期挂钩中运行的无效脚本。 B. 启动部署的用户没有与 ALB 交互所需的权限。 C. 为 ALB 目标组指定的健康检查配置不正确。 D. ALB 目标组的一部分的 EC2 实例没有安装 CodeDeploy 代理。 答案:C 解释: 答案是 C。 请参阅此处:https://docs.aws.amazon.com/codedeploy/latest/userguide/troubleshooting-deployments.html#troubleshooting-deployments-allowtraffic-no-logs Your score is 0% Restart quiz /20 Copy - DOP-202503 DOP-202503 All(40 Questions) 1 / 20 1. No.87 我有一个在 VPC 中运行的 Amazon EC2 实例,我需要从受限的 Amazon S3 存储桶下载对象。当 DevOps 工程师尝试下载对象时,他们会收到 AccessDenied 错误。 导致此错误的可能原因有哪些?(选择两个。) A.S3 存储桶已启用默认加密。 B. S3存储桶策略有错误。 C. 对象被移动到 S3 Glacier。 D.您的 IAM 角色配置有错误。 E. S3 版本控制已启用。 答案:BD 解释: 但这不是一个错误。这是一个配置错误。 2 / 20 2. No.89 一名 DevOps 工程师正在开展数据存档项目,将本地数据迁移到 Amazon S3 存储桶。 DevOps 工程师开发脚本,将一个月前的本地数据逐步存档到 Amazon S3。一旦数据传输到 Amazon S3,它就会从您的本地位置删除。该脚本使用 S3 PutObject 操作。 在代码审查期间,一名 DevOps 工程师发现该脚本并未检查数据是否已成功复制到 Amazon S3。 DevOps 工程师必须更新脚本以确保数据在传输过程中不会损坏。在删除本地数据之前,脚本应该使用 MD5 校验和验证数据完整性。 哪些脚本解决方案满足这些要求?(选择两个。) A.检查返回的响应中的VersionId。将返回的 VersionId 与 MD5 校验和进行比较。 B. 在 Content-MD5 参数中包含 MD5 校验和。检查操作调用的返回状态,查看是否返回了错误。 C. 将校验和摘要作为 URL 查询参数包含在标记参数中。 D.检查返回的响应中的ETag。将返回的 ETag 与 MD5 校验和进行比较。 E. 将校验和摘要作为名称-值对包含在元数据参数中。上传后,使用 S3 HeadObject 操作从对象中检索元数据。 答案:BD 解释: B.描述:当您使用S3 PutObject操作时,您可以在请求的Content-MD5参数中包含对象的MD5校验和。 Amazon S3 计算对象的 MD5 校验和并将其与您提供的校验和进行比较。如果校验和不匹配,Amazon S3 将返回错误响应,表示数据完整性检查失败。这样,您就可以确保您的数据已成功复制到 Amazon S3 且没有损坏。 D. 解释:当您使用 S3 PutObject 操作时,响应中会返回一个 ETag。这是存储在 Amazon S3 中的对象的 MD5 校验和。执行上传后,您可以将返回的 ETag 与本地计算的 MD5 校验和进行比较。如果匹配,则表示数据已成功传输,且没有任何损坏。不匹配表明数据完整性存在问题,因此可以采取适当的措施。 3 / 20 3. No.91 一家公司开发了一个 AWS Lambda 函数来处理通过 API 收到的订单。该公司使用 AWS CodeDeploy 部署 Lambda 函数作为其 CI/CD 管道的最后一步。 一位 DevOps 工程师注意到,订购 API 在部署后会间歇性地失败几秒钟。经过一番调查,DevOps 工程师认为这是由于在调用 Lambda 函数之前数据库更改未完全传播造成的。 DevOps 工程师该如何克服这个问题? A.将 BeforeAllowTraffic 挂钩添加到您的 AppSpec 文件,以便在流量流向新版本的 Lambda 函数之前测试并等待必要的数据库更改。 B. 向您的 AppSpec 文件添加一个 AfterAllowTraffic 挂钩,使流量等待待处理的数据库更改,然后才允许您的新版本的 Lambda 函数做出响应。 C. 将 BeforeInstall 挂钩添加到您的 AppSpec 文件,以便在部署新版本的 Lambda 函数之前测试并等待任何所需的数据库更改。 D. 将 ValidateService 挂钩添加到您的 AppSpec 文件以检查传入流量,如果依赖服务(如数据库)尚未准备就绪,则拒绝负载。 答案:A 解释: 根据我的研究,Lambda 部署只有两个 CodeDeploy AppSpec ifecycle 事件挂钩。 BeforeAllowTraffic # 用于在流量转移到已部署的 Lambda 函数版本之前运行任务。 AfterAllowTraffic # 用于在所有流量转移到已部署的 Lambda 函数版本后运行任务。 答:(是)在做好准备之前不要改变交通路线 B:(否)阻止流量,直到准备就绪 C:(否)Lambda 事件挂钩不适用 D:(否)Lambda 事件挂钩不适用 4 / 20 4. No.93 企业需要其数据和应用程序的一致 RPO 为 2 小时,RTO 为 10 分钟。该应用程序使用 MySQL 数据库和 Amazon EC2 网络服务器。开发团队需要故障转移和灾难恢复策略。 哪种部署策略组合可以满足这些要求?(选择两个) A. 在跨多个区域的单个可用区域中创建 Amazon Aurora 集群并将其用作数据存储。如果发生灾难,请使用 Aurora 的自动恢复功能。 B. 在两个区域创建一个 Amazon Aurora 全局数据库作为数据存储。如果发生停电,我们会将辅助区域提升为您的应用程序的主要区域。 C. 创建一个跨多个区域的 Amazon Aurora 多主集群并将其用作数据存储。使用网络负载均衡器来平衡不同区域之间的数据库流量。 D. 在两个区域中设置应用程序,并使用指向两个区域中的应用程序负载均衡器的基于故障转移的 Amazon Route 53 路由。使用健康检查来确定特定区域的可用性。使用每个区域中的 Auto Scaling 组根据需求调整容量。 E.在两个区域中设置应用程序,并使用应用程序负载均衡器后面的多区域自动扩展组根据需求管理容量。发生灾难时,通过调整 Auto Scaling 组所需的实例数量来增加故障转移区域中的基线容量。 答案:BD 解释: 答案 B 和 D 正确。 <需要故障转移和灾难恢复策略> 表示全局表或数据库集群和 Route53 故障转移策略 A 和 C:这些选项指的是将您的 Amazon Aurora 集群跨越多个区域。这是不正确的。集群可以跨越多个可用区 (AZ),但不能跨越多个区域。唯一能够跨越多个区域的 Aurora 解决方案是具有多个集群的全局表。 E:没有提及基于 Route 53 故障转移的路由 5 / 20 5. No.94 一家公司有一个由五个独立的 AWS Lambda 函数组成的应用程序。 DevOps 工程师使用 AWS CodePipeline 和 AWS CodeBuild 构建了 CI/CD 管道,以按顺序构建、测试、打包和部署每个 Lambda 函数。管道使用 Amazon EventBridge 规则来确保在对应用程序源代码进行更改后管道尽快启动。 使用该管道几个月后,DevOps 工程师意识到它花费的时间太长了。 DevOps 工程师应该实施什么来最好地提高管道速度? A.修改管道中的 CodeBuild 项目以使用具有更多可用网络吞吐量的计算类型。 B. 创建一个自定义的 CodeBuild 执行环境,其中包括一个对称多处理配置,以并行运行构建。 C.修改您的 CodePipeline 配置以并行运行每个 Lambda 函数的操作,并指定相同的 runOrder。 D. 修改每个 CodeBuild 项目以在 VPC 内运行并使用专用实例来增加吞吐量。 答案:C 解释: 并行执行: 通过修改 CodePipeline 配置以使用相同的 runOrder 并行执行每个 Lambda 函数的操作,您现在可以同时构建和部署多个 Lambda 函数,从而显著提高管道的整体速度。 运行顺序: CodePipeline 中的 runOrder 参数使您能够指定执行操作的顺序。如果多个操作具有相同的 runOrder,则它们可以并行运行。 6 / 20 6. No.96 一家公司正在部署使用 Amazon EC2 实例的新应用程序。该公司需要一个解决方案来查询应用程序日志和 AWS 账户 API 活动。 哪种解决方案可以满足这些要求? A.使用 Amazon CloudWatch 代理将日志从您的 EC2 实例发送到 Amazon CloudWatch Logs。配置 AWS CloudTrail 以将 API 日志传送至 Amazon S3。使用 CloudWatch 查询两组日志。 B. 使用 Amazon CloudWatch 代理将日志从您的 EC2 实例发送到 Amazon CloudWatch Logs。配置 AWS CloudTrail 以将 API 日志传送到 CloudWatch Logs。使用 CloudWatch Logs Insights 查询两组日志。 C. 使用 Amazon CloudWatch 代理将日志从 EC2 实例发送到 Amazon Kinesis。配置 AWS CloudTrail 以将 API 日志传送至 Kinesis。使用 Kinesis 将数据加载到 Amazon Redshift。使用 Amazon Redshift 查询两组日志。 D. 使用 Amazon CloudWatch 代理将日志从您的 EC2 实例发送到 Amazon S3。使用 AWS CloudTrail 将 API 日志传送至 Amazon S3。使用 Amazon Athena 查询 Amazon S3 中的两组日志。 答案:B 解释: B 是正确答案 A - 错误,因为 CloudWatch 不是查询工具。 C - 不正确,因为 CloudWatch 代理无法直接将日志发送到 Kinesis。必须从 CloudWatch Logs 发送 D - 不正确,因为 CloudWatch 代理无法直接将日志发送到 S3。我需要将 CloudWatch 日志发送到 firehorse,然后发送到 S3 7 / 20 7. No.97 一家公司希望确保其 EC2 实例的安全。如果在我的实例上发现任何新的漏洞,我希望收到通知,并且我还希望对我的实例上的所有登录活动进行审计跟踪。 哪种解决方案可以满足这些要求? A. 使用 AWS Systems Manager 检测您的 EC2 实例中的漏洞。安装 Amazon Kinesis Agent 以捕获系统日志并将其传送到 Amazon S3。 B. 使用 AWS Systems Manager 检测您的 EC2 实例中的漏洞。安装 Systems Manager Agent 以捕获系统日志并在 CloudTrail 控制台中查看日志活动。 C. 配置 Amazon CloudWatch 以检测 EC2 实例中的漏洞。安装 AWS Config 守护程序以捕获系统日志并在 AWS Config 控制台中查看它们。 D. 配置 Amazon Inspector 以检测 EC2 实例中的漏洞。安装 Amazon CloudWatch 代理以捕获系统日志并将其记录在 Amazon CloudWatch Logs 中。 答案:D 解释: Amazon Inspector 可近乎实时地检测 AWS 工作负载(包括 Amazon EC2、AWS Lambda 函数和 Amazon ECR)中的软件漏洞和意外的网络暴露。 8 / 20 8. No.109 安全团队使用 AWS CloudTrail 检测公司 AWS 账户中的敏感安全问题。 DevOps 工程师需要一个解决方案来自动修复其 AWS 账户中已禁用的 CloudTrail。 有哪些解决方案可以最大限度地减少 CloudTrail 日志传送的停机时间? A. 为 CloudTrail StopLogging 事件创建 Amazon EventBridge 规则。使用 AWS SDK 创建一个 AWS Lambda 函数,该函数使用调用 StopLogging 的资源的 ARN 调用 StartLogging。将 Lambda 函数的 ARN 添加为 EventBridge 规则中的目标。 B. 部署 AWS 管理的支持 CloudTrail 的 AWS Config 规则并配置一小时的定期间隔。为 AWS Config 规则合规性变更创建 Amazon EventBridge 规则。使用 AWS SDK 创建一个 AWS Lambda 函数,该函数使用调用 StopLogging 的资源的 ARN 调用 StartLogging。将 Lambda 函数的 ARN 添加为 EventBridge 规则中的目标。 C. 为每 5 分钟安排一次的事件创建 Amazon EventBridge 规则。创建一个 AWS Lambda 函数,该函数使用 AWS SDK 在您的 AWS 账户中的 CloudTrail 跟踪上调用 StartLogging。将 Lambda 函数的 ARN 添加为 EventBridge 规则中的目标。 D. 使用每 5 分钟运行一次的脚本启动 t2.nano 实例并使用 AWS SDK 查询当前账户的 CloudTrail。如果 CloudTrail 跟踪被禁用,该脚本将重新启用该跟踪。 答案:A 解释: 一个。 古老但有价值的链接: https://aws.amazon.com/blogs/mt/monitor-changes-and-auto-enable-logging-in-aws-cloudtrail/ 9 / 20 9. No.116 一家公司最近将旧版应用程序从本地迁移到 AWS。该应用程序托管在 Amazon API Gateway 后面的应用程序负载均衡器后面的 Amazon EC2 实例上。该公司希望在推出新版本的应用程序时尽量减少对用户的干扰。如果出现问题,我们还希望能够快速回滚更新。 什么解决方案可以满足这些要求,同时最大限度地减少对应用程序的更改? A. 在现有环境旁边的单独环境中部署更改。通过金丝雀部署,您可以配置 API Gateway 将一小部分用户流量发送到新环境。 B. 在与现有环境并行的单独环境中部署更改。更新应用程序的 DNS 别名记录以指向新环境。 C. 将变化作为现有应用程序负载均衡器后面的另一个目标组引入。配置 API 网关以逐步将用户流量路由到新的目标组。 D. 将变化作为现有应用程序负载均衡器后面的另一个目标组引入。配置 API 网关以将所有流量路由到应用程序负载均衡器,然后将流量发送到新的目标组。 答案:A 解释: 选项 A 也是一种有效的方法,只需对您的应用程序进行最少的更改即可满足您的要求。 在选项 A 中,变更将作为单独的环境与现有环境一起引入。您可以使用这个新环境来部署应用程序的新版本。当您将 API Gateway 配置为使用金丝雀发布部署时,一小部分用户流量会被发送到新环境,而大部分流量则会继续路由到托管应用程序当前版本的现有环境。 10 / 20 10. No.137 一家公司在自己的 VPC 中管理多租户环境,并在相应的 AWS 账户中配置了 Amazon GuardDuty。该公司将所有 GuardDuty 发现发送至 AWS Security Hub。 来自可疑来源的流量正在产生大量发现。 DevOps 工程师应该实施一种解决方案,当 GuardDuty 检测到新的可疑源时,自动拒绝跨 VPC 的流量。 哪种解决方案可以满足这些要求? A. 创建 GuardDuty 威胁列表。配置 GuardDuty 以引用列表。创建一个更新威胁列表的 AWS Lambda 函数。配置一个 Lambda 函数来响应来自 GuardDuty 的新 Security Hub 发现而运行。 B.配置包含自定义规则组的 AWS WAF Web ACL。创建一个 AWS Lambda 函数,该函数在自定义规则组中创建一个阻止规则。配置一个 Lambda 函数来响应来自 GuardDuty 的新 Security Hub 发现而运行。 C. 在AWS网络防火墙上配置防火墙。创建一个 AWS Lambda 函数,该函数在防火墙策略中创建一个删除操作规则。配置一个 Lambda 函数来响应来自 GuardDuty 的新 Security Hub 发现而运行。 D.创建一个创建 GuardDuty 抑制规则的 AWS Lambda 函数。配置一个 Lambda 函数来响应来自 GuardDuty 的新 Security Hub 发现而运行。 答案:C 解释: C 是正确答案。只有网络防火墙可以阻止 VPC 级别的流量。 A仅更新列表,不执行任何阻止操作 B- WAF 和 Web ACL 只能阻止 API/VPC 端点/Cloudfront 分布的 HTTPS 流量,而不能阻止整个 VPC 11 / 20 11. No.147 AnyCompany 使用 AWS Organizations 来创建和管理多个 AWS 账户。 AnyCompany 最近收购了一家规模较小的公司 Example Corp。在收购过程中,Example Corp 的单个 AWS 账户通过组织邀请加入了 AnyCompany 的管理账户。 AnyCompany 将新成员帐户移至专供 Example Corp 使用的 OU。 AnyCompany 的 DevOps 工程师有一个 IAM 用户,该用户承担名为 OrganizationAccountAccessRole 的角色来访问成员帐户。此角色配置了完全访问策略。当 DevOps 工程师尝试使用 AWS 管理控制台在 Example Corp 的新成员账户中担任角色时,该 DevOps 工程师收到以下错误消息:“一个或多个字段包含无效信息。请验证您的信息或联系您的管理员。” 哪种解决方案为 DevOps 工程师提供了访问新成员帐户的权限? A.在管理账户中,授予 DevOps 工程师 IAM 用户权限,以承担新成员账户中的 OrganizationAccountAccessRole IAM 角色。 B. 在管理账户中,创建一个新的 SCP。在您的 SCP 中,授予 DevOps 工程师 IAM 用户对新成员账户中所有资源的完全访问权限。将 SCP 附加到将包含新成员帐户的 OU。 C. 在新的成员账户中,创建一个名为 OrganizationAccountAccessRole 的新 IAM 角色。将 AdministratorAccess AWS 托管策略附加到角色。该角色的信任策略授予管理账户承担该角色的权限。 D. 在新的成员账户中,编辑 OrganizationAccountAccessRole IAM 角色的信任策略。授予管理账户承担该角色的权限。 答案:C 解释: C 是正确的:<在 Example Corp 的新成员账户中担任角色> 表示此角色尚未正确配置(或创建) 答:它只讲承担角色,不讲创造角色。 B:scp 与此无关 D:它只谈论建立信任关系 12 / 20 12. No.152 DevOps 工程师正在 EC2 Auto Scaling 组中的一组 Amazon EC2 实例中使用 AWS CodeDeploy。与 EC2 Auto Scaling 集成的关联 CodeDeploy 部署组配置为使用 CodeDeployDefault.OneAtATime 执行就地部署。在进行新的部署时,工程师注意到,尽管整体部署已成功完成,但五个实例中有两个仍然部署了以前的应用程序修订版。其余三个实例具有最新的应用程序修订版。 什么原因导致了这个问题? A.受影响的两个实例无法获得新的部署。 B. AfterInstall 生命周期事件挂钩失败,导致 CodeDeploy 代理在受影响的实例上回滚到以前的版本。 C. 受影响的两个实例上未安装 CodeDeploy 代理。 D. EC2 Auto Scaling 在新部署尚未完成时启动了两个新实例,导致之前的版本被部署到受影响的实例。 答案:D 解释: D 是正确答案。就地部署在部署时搜索所有可用的代理并更新应用程序版本。如果搜索后启动了新实例,则会跳过这些实例并检索最新的可用应用程序版本(以前的修订版)。 A 和 B:如果发生这种情况,其他三个也会受到影响 C:如果未安装 Code Deploy Agent,则两个实例上不会安装任何版本 13 / 20 No.154 一家公司使用 AWS Organizations 为每个部门创建单独的 AWS 账户。该公司需要自动化以下任务: • 定期使用新补丁更新Linux AMI并生成黄金映像。 • 在黄金映像上安装新版本的 Chef 代理(如果可用) • 将新生成的AMI 交付给部门账户。 13. 哪种解决方案需要的管理开销最少? A.创建一个脚本,从之前的黄金映像启动 Amazon EC2 实例。应用补丁更新。安装新版本的 Chef 代理,生成新的黄金映像,然后更改 AMI 上的权限以仅与部门账户共享新映像。 B. 使用 Amazon EC2 Image Builder 创建一个由基本 Linux AMI 和安装 Chef 代理的组件组成的映像管道。使用 AWS Resource Access Manager 与部门账户共享 EC2 Image Builder 映像。 C. 使用 AWS Systems Manager Automation 运行手册通过上一个映像更新 Linux AMI。指定更新 Chef 代理的脚本的 URL。使用 AWS Organizations 替换部门账户中的先前黄金映像。 D. 使用 Amazon EC2 Image Builder 创建一个由基本 Linux AMI 和安装 Chef 代理的组件组成的映像管道。在 AWS Systems Manager 参数存储中创建一个参数,以存储可从部门账户引用的新 AMI ID。 答案:B 解释: B 是正确的:<生成黄金映像> 表示您需要在自动化管道中使用 EC2 映像生成器来创建黄金映像 A 和 C:未提及 EC2 Image Builder D:该选项利用SSM来共享镜像,这是不正确的。要在账户之间共享资源,您需要 AWS 资源共享 14 / 20 14. No.155 一家公司在 AWS 上有一个使用自动扩展功能的关键任务应用程序。该公司希望部署生命周期满足以下参数: • 应一次部署一个应用程序实例,以便剩余的资源组能够继续处理流量。 • 该应用程序占用大量CPU,应密切监控。 • 如果部署实例的 CPU 利用率超过 85%,则部署应自动回滚。 哪种解决方案可以满足这些要求? A.使用 AWS CloudFormation 创建 AWS Step Functions 状态机和 Auto Scaling 生命周期挂钩,以一次将一个实例转换为等待状态。使用 AWS Systems Manager Automation 将更新部署到每个实例,并使用心跳超时将它们添加回 Auto Scaling 组。 B. 使用 AWS CodeDeploy 和 Amazon EC2 Auto Scaling 设置与 CPU 利用率指标相关的警报。使用 CodeDeployDefault OneAtAtime 设置作为部署策略。在部署组中配置自动回滚,以便在超过警报阈值时回滚部署。 C. 使用 AWS Elastic Beanstalk 进行负载平衡和 AWS Auto Scaling。设置与 CPU 利用率指标相关的警报。配置一个批次大小固定为一个实例的滚动部署。启用增强健康功能来监控部署状态并根据先前创建的警报回滚。 D.使用 AWS Systems Manager 通过 Amazon EC2 Auto Scaling 执行蓝/绿部署。设置与 CPU 利用率指标相关的警报。一次部署一个更新。在 Auto Scaling 组内配置自动回滚,以便在超过警报阈值时回滚部署。 答案:B 解释: B 正确 - CodeDeployDefault OneAtAtime 配置(一次一个,而不是 AllAtATime) 15 / 20 15. No.167 一家公司使用 AWS Organizations 中的组织来管理其 AWS 账户。该公司的自动化账户包含一个用于创建和配置新 AWS 账户的 CI/CD 管道。 该公司拥有一组内部服务团队,为组织内部的账户提供服务。服务团队通过一组服务账户进行运作。当通过 CreateAccount API 调用创建新账户时,服务团队希望在其服务账户上接收 AWS CloudTrail 事件。 如何与服务账户共享此 CloudTrail 事件? A. 在您的自动化账户中创建一个 Amazon EventBridge 规则,以将账户创建事件发送到服务账户的默认事件总线。更新服务帐户的默认事件总线以允许来自自动化帐户的事件。 B. 在服务账户中创建自定义 Amazon EventBridge 事件总线。更新自定义事件总线以允许来自自动化帐户的事件。在您的服务账户中创建一个 EventBridge 规则,直接从您的自动化账户监听 CloudTrail 事件。 C. 在自动化账户和服务账户中创建自定义 Amazon EventBridge 事件总线。创建一个 EventBridge 规则和策略,连接自动化账户和服务账户中的自定义事件总线。 D. 在您的自动化账户中创建自定义 Amazon EventBridge 事件总线。创建 EventBridge 规则和策略,将自定义事件总线连接到服务账户的默认事件总线。 答案:A 解释: A 正确。您需要一个帐户创建事件,此选项正好提供了该事件 B:<在服务账户中创建一个直接监听 CloudTrail 事件的 EventBridge 规则>:这没有意义。要发送事件,您需要将规则应用到事件总线。 C 和 D:两个选项都发送所有事件,而不仅仅是帐户创建事件 16 / 20 No.177 一家公司在两个 AWS 区域部署了一个关键应用程序。该应用程序在两个区域中都使用应用程序负载均衡器 (ALB)。该公司拥有这两个 ALB 的 Amazon Route 53 别名 DNS 记录。 该公司使用 Amazon Route 53 应用程序恢复控制器来实现应用程序在两个区域之间的故障转移。 Route 53 ARC 配置包括两个区域的路由控制。该公司使用 Route 53 ARC 执行季度灾难恢复 (DR) 测试。 在最近的 DR 测试中,一位 DevOps 工程师意外关闭了两个路由控制。您的公司应确保至少一个路由控制始终处于打开状态。 16. 哪种解决方案可以满足这些要求? A. 在 Route 53 ARC 中,创建一个新的断言安全规则。将断言安全规则应用到两个路由控制。配置类型为 ATLEAST 且阈值为 1 的规则。 B. 在 Route 53 ARC 中,创建一个新的门控安全规则。将断言安全规则应用到两个路由控制。配置一条OR类型且阈值为1的规则。 C. 在 Route 53 ARC 中,创建一个新的资源集。使用 AWS::Route53::HealthCheck 资源类型配置资源集。将两个路由控制的 ARN 指定为目标资源。为一系列资源创建新的就绪情况检查。 D. 在 Route 53 ARC 中,创建一个新的资源集。使用 AWS::Route53RecoveryReadiness::DNSTargetResource 资源类型配置资源集。将两个 Route 53 别名 DNS 记录的域名添加为目标资源。为一系列资源创建新的就绪情况检查。 答案:A 解释: A 是正确答案。确保至少有一个门始终打开的断言规则。这些规则基本上都是用户不能做或者只能做的事情。 B:此门控规则本质上是 ARC 设置的开/关开关。如果您不想关闭任何控制器,请指定此规则。这条规则也许能帮助你达到你提问的目的。但是,您必须指定不应关闭的控制器的确切名称。另一方面,问题要求可以关闭任何控制器,但至少必须有一个控制器正在运行。所以这不是一个好的选择。 17 / 20 17. No.180 一家公司正在使用 AWS CodePipeline 部署应用程序。根据新指南,任何应用程序更改在部署到生产之前都必须经过公司安全团队的一名成员的批准。必须记录并保留批准。 哪些行动组合可以满足这些要求? (选择两个) A) 配置 CodePipeline 以将操作写入 Amazon CloudWatch Logs。 B. 配置 CodePipeline 在每个管道阶段结束时将操作写入 Amazon S3 存储桶。 C) 创建 AWS CloudTrail 跟踪以将日志传送到 Amazon S3。 D. 创建 CodePipeline 自定义操作以调用 AWS Lambda 函数进行批准。创建一项策略,授予您的安全团队管理 CodePipeline 自定义操作的访问权限。 E. 在部署步骤之前创建 CodePipeline 手动批准操作。创建一项策略,授予您的安全团队访问权限以批准手动批准阶段。 答案:CE 解释: 答案 C 和 E 正确: 答:Cloudwatch Logs 旨在存储来自 AWS 资源(例如 EC2)的日志,而不是 codepipeline 日志。 B:CodePipeline 操作不需要存储在 S3 中。 C:您需要监控用户活动,因此我们建议使用 CloudTrail 并将日志存储在 S3 中。 D:不要调用AWS Lambda进行授权 E:这是推荐的方法。 18 / 20 18. No.182 一家公司有多个开发小组,使用一个共享的 AWS 账户开展工作。当资源创建接近账户的服务限制时,该集团的高级经理希望通过第三方 API 调用收到警报。 哪种解决方案能够以最少的开发工作量实现这一目标? A. 创建一个定期运行并以 AWS Lambda 函数为目标的 Amazon EventBridge 规则。在您的 Lambda 函数中,评估您 AWS 环境的当前状态,并将部署的资源值与您账户的资源限制进行比较。如果您的帐户即将达到服务限额,请通知高级管理层。 B. 部署一个更新 AWS Trusted Advisor 检查的 AWS Lambda 函数,并配置一个 Amazon EventBridge 规则以定期运行 Lambda 函数。使用与 Trusted Advisor 事件和目标 Lambda 函数匹配的事件模式创建另一个 EventBridge 规则。在目标 Lambda 函数中,通知高级管理层。 C. 部署一个更新 AWS Health Dashboard 检查的 AWS Lambda 函数,并配置一个 Amazon EventBridge 规则以定期运行 Lambda 函数。创建另一个 EventBridge 规则,其事件模式与 Health Dashboard 事件和目标 Lambda 函数匹配。在目标 Lambda 函数中,通知高级管理层。 D. 添加定期运行的 AWS Config 自定义规则,以检查 AWS 服务的限制状态并将通知流式传输到 Amazon Simple Notification Service (Amazon SNS) 主题。部署一个通知高级管理层的 AWS Lambda 函数,并将 Lambda 函数订阅到 SNS 主题。 答案:B 解释: 了解您的服务限制(以及您距离达到这些限制还有多远)是管理您的 AWS 部署的重要部分。持续监控使您可以在达到限制之前请求增加限制或关闭资源。 最简单的方法之一是使用 AWS Trusted Advisor Service Limits Dashboard。该仪表板目前涵盖 10 项服务的 39 项限制。 https://aws.amazon.com/blogs/mt/monitoring-service-limits-with-trusted-advisor-and-amazon-cloudwatch/ 19 / 20 19. No.185 一家公司通过电子商务网络应用程序销售产品。该公司需要一个以饼图形式显示产品交易详情的仪表板。该公司希望将该仪表板与公司现有的 Amazon CloudWatch 仪表板集成。 哪种解决方案能够最有效地满足这些要求? A. 更新您的电子商务应用程序,以便为处理的每笔交易向 CloudWatch 日志组发送一个 JSON 对象。使用 CloudWatch Logs Insights 查询您的日志组并以饼图的形式可视化结果。将结果附加到您想要的 CloudWatch 仪表板。 B. 更新电子商务应用程序,以便为处理的每笔交易将 JSON 对象输出到 Amazon S3 存储桶。使用 Amazon Athena 查询 S3 存储桶并以饼图的形式可视化结果。从 Athena 导出结果。将结果附加到您想要的 CloudWatch 仪表板。 C. 更新电子商务应用程序以使用 AWS X-Ray 进行检测。创建一个新的 X-Ray 子段。为每个处理的交易添加注释。使用 X-Ray 跟踪查询数据并以饼图的形式可视化结果。将结果附加到您想要的 CloudWatch 仪表板。 D. 更新您的电子商务应用程序,以便将处理的每笔交易的 JSON 对象输出到 CloudWatch 日志组。创建一个 AWS Lambda 函数来聚合结果并将其写入 Amazon DynamoDB。为日志文件创建 Lambda 订阅过滤器。将结果附加到您想要的 CloudWatch 仪表板。 答案:A 解释: A 正确。 <产品交易详情饼图>表示需要收集应用程序日志,并对日志进行分析。推荐的方法是使用 CloudWatch Logs 和 CloudWatch Log Insights。 B:不要使用S3。您应该使用 CloudWatch Logs 轻松集成到现有的 CloudWatch 仪表板中。 C:X 射线用于短期故障排除,而不是长期应用程序监控 D: 不要使用 Lambda,也不要将结果写入 Dynamodb,后者主要用于存储会话数据 https://www.examtopics.com/exams/amazon/aws-certified-devops-engineer-professional-dop-c02/view/1/# 20 / 20 20. No.192 软件团队使用 AWS CodePipeline 来自动化 Java 应用程序的发布管道。管道由源阶段、构建阶段和部署阶段组成。每个阶段包含一个 runOrder 值为 1 的操作。 该团队希望将单元测试集成到他们现有的发布流程中。团队需要一个仅部署通过所有单元测试的代码更改的解决方案。 哪种解决方案可以满足这些要求? A.改变构建阶段。添加 runOrder 值为 1 的测试操作。使用 AWS CodeDeploy 作为操作提供程序运行您的单元测试。 B. 改变构建阶段。添加 runOrder 值为 2 的测试操作。使用 AWS CodeBuild 作为操作提供程序来运行单元测试。 C.改变部署阶段。添加 runOrder 值为 1 的测试操作。使用 AWS CodeDeploy 作为操作提供程序运行单元测试。 D.改变部署阶段。添加 runOrder 值为 2 的测试操作。使用 AWS CodeBuild 作为操作提供程序来运行您的单元测试。 答案:B 解释: B 是正确的。运行顺序值为 2 时,将在构建工件后运行单元测试。 答:单元测试与构建步骤并行运行,这是不正确的。仅构建完成后才可以运行测试。 C 和 D:部署步骤之前不运行单元测试。 Your score is 0% Restart quiz