案例3
要完成上述任务,可以按照以下步骤进行操作:
- 连接到 EC2 实例
- 从输出页面复制
CommandHostSessionUrl值。 - 打开新的浏览器选项卡,将其粘贴到地址栏并按
ENTER,等待 EC2 实例的命令行加载。若SessionManager不起作用,也可使用输出部分中的 IP 地址直接通过 SSH 连接到 EC2 实例。连接后运行cd~命令进入主目录。
- 从输出页面复制
- 探索 Amazon Web Services 管理控制台
- 登录 Amazon Web Services 控制台。
- 依次查看
CodePipeline、CodeBuild、Step Functions和Amazon SageMaker等服务的配置页面,检查每个服务所关联的 IAM 角色。重点关注是否存在网络安全团队删除权限后导致非功能性的角色。
- 确定每个服务所需的 IAM 操作
- CodePipeline:
- 需要对
CodeCommit存储库的读取权限(例如codecommit:Get*等操作),以便监控存储库中的更改。 - 对
CodeBuild的调用权限(如codebuild:StartBuild等),用于触发构建过程。 - 对其他相关资源(如 S3 等)的访问权限,以便存储和检索构建产物等。
- 需要对
- CodeBuild:
- 访问 Amazon ECR 存储库的权限(如
ecr:GetAuthorizationToken、ecr:BatchCheckLayerAvailability、ecr:CompleteLayerUpload、ecr:UploadLayerPart、ecr:BatchPutImage等),用于构建和推送 ECR 镜像。 - 读取
CodeCommit存储库中模型代码的权限。 - 对 S3 存储桶的读写权限,以便存储和读取构建过程中的中间文件和最终产物。
- 访问 Amazon ECR 存储库的权限(如
- Step Functions:
- 对用于模型训练的 Step Functions 状态机的执行权限(如
states:StartExecution等)。 - 访问 Amazon SageMaker 的权限(如
sagemaker:CreateTrainingJob、sagemaker:DescribeTrainingJob等),以便与 SageMaker 交互进行模型训练。 - 对 S3 存储桶的访问权限,用于存储和检索训练数据和模型。
- 对用于模型训练的 Step Functions 状态机的执行权限(如
- Amazon SageMaker:
- 访问 S3 存储桶的权限,用于读取训练数据和写入训练好的模型。
- 对相关 IAM 角色的权限,以便 SageMaker 可以使用这些角色来执行训练任务(如
iam:PassRole等)。
- CodePipeline:
- 找到满足要求的 IAM 角色
- 在 IAM 控制台中,查看已有的 IAM 角色列表。
- 根据每个服务所需的 IAM 操作,筛选出具有相应权限的 IAM 角色。可以通过查看角色的策略来确认其权限。
- 如果没有合适的角色,可以创建新的 IAM 角色,并为其附加所需的策略。策略可以是 AWS 预定义的策略(如
AmazonS3FullAccess、AmazonEC2FullAccess等),也可以是自定义策略,根据具体需求定义权限。
- 更新服务以使用正确的 IAM 角色
- CodePipeline:进入
CodePipeline的编辑页面,找到与角色相关的配置选项,将其更新为满足要求的 IAM 角色。 - CodeBuild:在
CodeBuild项目的设置中,指定正确的 IAM 角色。 - Step Functions:在状态机的配置中,确保使用具有正确权限的 IAM 角色来执行状态机。
- Amazon SageMaker:在创建训练任务或其他相关操作时,指定正确的 IAM 角色,以便 SageMaker 可以使用该角色来访问所需的资源。
- CodePipeline:进入
- 测试服务
- 完成上述更新后,尝试重新运行
CodePipeline,触发整个机器学习管道的运行。 - 监控各个服务的运行状态,查看是否有错误信息。如果出现错误,根据错误提示进一步检查和调整 IAM 角色和权限配置,直到服务能够无错误地运行。
- 完成上述更新后,尝试重新运行
通过以上步骤,应该能够识别并解决由于 IAM 角色权限问题导致的服务非功能性问题,使机器学习管道能够正常运行。

浙公网安备 33010602011771号