AWS RoboMaker에 대한 인증 및 액세스 제어 - AWS RoboMaker

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

AWS RoboMaker에 대한 인증 및 액세스 제어

AWS Identity and Access Management(IAM)는 관리자가 AWS RoboMaker 리소스에 대한 액세스를 안전하게 제어할 수 있도록 지원하는 AWS 서비스입니다. 관리자는 IAM을 사용하여 AWS RoboMaker 리소스를 사용할 수 있는 인증(로그인) 및 권한(권한 있음)을 가진 사용자를 제어합니다. IAM은 추가 비용 없이 AWS 계정에 제공되는 기능입니다.

중요

빠르게 시작하려면 이 페이지에 나와 있는 기본 정보를 검토한 다음 IAM 시작하기정책이란 무엇입니까? 섹션을 살펴보세요.

주제

권한 부여 및 액세스 제어 소개

AWS RoboMaker은 AWS Identity and Access Management(IAM)과 통합되어 다음과 같은 다양한 기능을 제공합니다.

  • AWS 계정에서 사용자 및 그룹을 생성합니다.

  • AWS 계정의 사용자 간에 AWS 리소스를 쉽게 공유합니다.

  • 각 사용자에게 고유한 보안 자격 증명을 할당합니다.

  • 서비스 및 리소스에 대한 각 사용자의 액세스 권한을 제어합니다.

  • AWS 계정에서 모든 사용자에 대해 단일 청구서를 받습니다.

IAM에 대한 자세한 내용은 다음을 참조하세요.

필요한 권한

AWS RoboMaker를 사용하거나 자신 또는 다른 사람에 대한 권한 부여 및 액세스 제어를 관리하려면 올바른 권한이 있어야 합니다.

AWS RoboMaker 콘솔 사용에 필요한 권한

AWS RoboMaker 콘솔에 액세스하려면 AWS 계정의 AWS RoboMaker 리소스에 대한 세부 정보를 나열하고 볼 수 있는 최소 권한이 있어야 합니다. 최소 필수 권한보다 더 제한적인 자격 증명 기반 권한 정책을 만들면 콘솔이 해당 정책에 연결된 엔터티에 대해 의도대로 작동하지 않습니다.

AWS RoboMaker 콘솔에 대한 모든 읽기 전용 액세스 권한을 부여하려면 AWSRoboMakerReadOnlyAccess 정책을 사용합니다.

IAM 사용자가 시뮬레이션 작업을 생성하려는 경우 해당 사용자에게 iam:PassRole 권한을 부여해야 합니다. 역할 전달에 대한 자세한 내용은 사용자에게 AWS 서비스에 역할을 전달할 수 있는 권한 부여를 참조하세요.

예를 들어 다음 정책을 사용자에게 연결할 수 있습니다. 이 정책은 시뮬레이션 작업을 생성할 수 있는 권한을 제공합니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iam:PassRole", "Resource": "arn:aws:iam::123456789012:role/S3AndCloudWatchAccess" } ] }

AWS CLI 또는 AWS API만 호출하는 사용자에게 최소 콘솔 권한을 허용할 필요가 없습니다. 대신 수행하려는 API 작업을 일치시키는 권한만 있으면 됩니다.

콘솔에서 AWS RoboMaker의 월드를 보는 데 필요한 권한

사용자에게 다음 정책을 연결하여 AWS RoboMaker 콘솔에서 AWS RoboMaker 월드를 보는 데 필요한 권한을 부여할 수 있습니다.

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "robomaker: DescribeWorld" ], "Resource": "*", "Effect": "Allow" } ] }

AWS RoboMaker 시뮬레이션 도구 사용에 필요한 권한

시뮬레이션을 만드는 데 사용되는 IAM 사용자 또는 역할은 시뮬레이션 도구에 액세스할 수 있는 권한을 자동으로 갖게 됩니다. 다른 사용자 또는 역할인 경우, robomaker:CreateSimulationJob 권한이 있어야 합니다.

인증 관리에 필요한 권한

자신의 자격 증명(예: 암호, 액세스 키 및 멀티 팩터 인증(MFA) 디바이스)을 관리하려면 관리자가 필요한 권한을 부여해야 합니다. 이러한 권한이 포함된 정책을 보려면 사용자가 자신의 자격 증명을 스스로 관리하도록 허용 단원을 참조하세요.

IAM에서 사용자, 그룹, 역할 및 정책을 생성해 관리할 수 있도록 AWS 관리자에게는 IAM에 대한 모든 액세스 권한이 필요합니다. 모든 AWS에 대한 전체 액세스 권한이 포함된 AdministratorAccess AWS 관리형 정책을 사용해야 합니다. 이 정책은 AWS Billing and Cost Management 콘솔에 대한 액세스 권한을 제공하지 않거나 루트 사용자 보안 인증을 필요로 하는 작업은 허용하지 않습니다. 자세한 내용은 AWS 일반 참조AWS 계정 루트 사용자 보안 인증이 필요한 AWS 작업을 참조하세요.

주의

관리자 사용자만 AWS에 대한 모든 액세스 권한을 가져야 합니다. 이 정책이 적용된 사용자는 누구나 AWS의 모든 리소스를 수정할 수 있는 권한 이외에 인증 및 액세스 제어를 완전히 관리할 수 있는 권한을 가지고 있습니다. 이 사용자를 생성하는 방법에 대한 자세한 내용은 IAM Admin 사용자 생성 단원을 참조하세요.

액세스 제어에 필요한 권한

관리자가 IAM 사용자 보안 인증을 제공한 경우 여러분이 액세스할 수 있는 리소스를 제어할 수 있도록 IAM 사용자에게 정책을 연결합니다. AWS Management Console에서 사용자에게 연결된 정책을 보려면 다음 권한이 있어야 합니다.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ViewOwnUserInfo", "Effect": "Allow", "Action": [ "iam:GetUserPolicy", "iam:ListGroupsForUser", "iam:ListAttachedUserPolicies", "iam:ListUserPolicies", "iam:GetUser" ], "Resource": [ "arn:aws:iam::*:user/${aws:username}" ] }, { "Sid": "ListUsersViewGroupsAndPolicies", "Effect": "Allow", "Action": [ "iam:GetGroupPolicy", "iam:GetPolicyVersion", "iam:GetPolicy", "iam:ListAttachedGroupPolicies", "iam:ListGroupPolicies", "iam:ListPolicyVersions", "iam:ListPolicies", "iam:ListUsers" ], "Resource": "*" } ] }

추가 권한이 필요한 경우 관리자에게 필요한 작업에 액세스할 수 있도록 정책을 업데이트해 달라고 요청하세요.

시뮬레이션 작업에 필요한 권한

시뮬레이션 작업을 생성할 때는 아래 권한을 가진 IAM 역할을 부여해야 합니다.

  • my-input-bucket을 로봇 및 시뮬레이션 애플리케이션 번들이 포함된 버킷의 이름으로 바꿉니다.

  • my-output-bucket을 AWS RoboMaker에서 출력 파일을 쓰는 버킷으로 가리키도록 바꿉니다.

  • account#를 계정 번호로 바꿉니다.

퍼블릭 ECR 작업에는 ecr-public:GetAuthorizationToken, sts:GetServiceBearerToken 및 최종 구현에 필요한 기타 권한과 같은 별도의 권한이 필요합니다. 자세한 내용을 알아보려면 Amazon ECR 사용 설명서퍼블릭 리포지토리 정책을 참조하세요.

Jobs with Private ECR images
{ "Version": "2012-10-17", "Statement": [ { "Action": "s3:ListBucket", "Resource": [ "arn:aws:s3:::my-input-bucket" ], "Effect": "Allow" }, { "Action": [ "s3:Get*", "s3:List*" ], "Resource": [ "arn:aws:s3:::my-input-bucket/*" ], "Effect": "Allow" }, { "Action": "s3:Put*", "Resource": [ "arn:aws:s3:::my-output-bucket/*" ], "Effect": "Allow" }, { "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents", "logs:DescribeLogStreams" ], "Resource": [ "arn:aws:logs:*:account#:log-group:/aws/robomaker/SimulationJobs*" ], "Effect": "Allow" }, { "Action": [ "ecr:BatchGetImage", "ecr:GetAuthorizationToken", "ecr:BatchCheckLayerAvailability", "ecr:GetDownloadUrlForLayer" ], "Resource": "arn:partition:ecr:region:account#:repository/repository_name", "Effect": "Allow" } ] }
Jobs with Public ECR images
{ "Version": "2012-10-17", "Statement": [ { "Action": "s3:ListBucket", "Resource": [ "arn:aws:s3:::my-input-bucket" ], "Effect": "Allow" }, { "Action": [ "s3:Get*", "s3:List*" ], "Resource": [ "arn:aws:s3:::my-input-bucket/*" ], "Effect": "Allow" }, { "Action": "s3:Put*", "Resource": [ "arn:aws:s3:::my-output-bucket/*" ], "Effect": "Allow" }, { "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents", "logs:DescribeLogStreams" ], "Resource": [ "arn:aws:logs:*:account#:log-group:/aws/robomaker/SimulationJobs*" ], "Effect": "Allow" }, { "Action": [ "ecr-public:GetAuthorizationToken", "sts:GetServiceBearerToken" ], "Resource": "*", "Effect": "Allow" } ] }

정책은 다음 신뢰 정책을 통해 역할에 연결되어야 합니다.

{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Principal": { "Service": "robomaker.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "account#" // Account where the simulation job resource is created }, "StringEquals": { "aws:SourceArn": "arn:aws:robomaker:region:account#:simulation-job/*" } } } }

조건 키를 사용하여 AWS 서비스가 서비스간 트랜잭션 중에 혼동된 대리자로 사용되는 것을 방지합니다. 조건 키에 대한 추가 정보는 SourceAccountSourceARN을 참조하세요.

ROS 애플리케이션 또는 ROS 명령줄에서 태그를 사용하는 데 필요한 권한

ROS 명령줄 또는 ROS 애플리케이션이 실행되는 동안 시뮬레이션 작업의 태그에 태그를 지정하고 태그를 해제하고 나열할 수 있습니다. 아래 권한이 있는 IAM 역할이 있어야 합니다. account#를 계정 번호로 바꿉니다.

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "robomaker:TagResource", "robomaker:UntagResource", "robomaker:ListTagsForResource", ], "Resource": [ "arn:aws:robomaker:*:account#:simulation-job*" ], "Effect": "Allow" } ] }

정책은 다음 신뢰 정책을 통해 역할에 연결되어야 합니다.

{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Principal": { "Service": "robomaker.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "account#" // Account where the simulation job resource is created }, "StringEquals": { "aws:SourceArn": "arn:aws:robomaker:region:account#:simulation-job/*" } } } }

조건 키를 사용하여 AWS 서비스가 서비스간 트랜잭션 중에 혼동된 대리자로 사용되는 것을 방지합니다. 조건 키에 대한 추가 정보는 SourceAccountSourceARN을 참조하세요.

AWS RoboMaker에서 IAM을 사용하는 방식 이해

서비스는 다음과 같은 여러 가지 방식으로 IAM을 사용할 수 있습니다.

  • 작업 – AWS RoboMaker은 정책에서 작업 사용을 지원합니다. 따라서 관리자가 AWS RoboMaker에서 엔터티가 작업을 완료할 수 있는지 제어할 수 있습니다. 예를 들어, GetPolicy AWS API 작업을 수행해 엔터티가 정책을 보도록 하려면 관리자는 iam:GetPolicy 작업을 허용하는 정책을 연결해야 합니다.

  • 리소스 수준 권한 – AWS RoboMaker은 리소스 수준 권한을 지원하지 않습니다. 리소스 수준 권한이 있으면 ARN을 사용하여 정책에서 개별 리소스를 지정할 수 있습니다. AWS RoboMaker에서 이 기능을 지원하지 않으므로 정책 시각적 편집기에서 모든 리소스를 선택해야 합니다. JSON 정책 문서의 * 요소에서 Resource를 사용해야 합니다.

  • 태그 기반 권한 부여 – AWS RoboMaker에서는 태그 기반 권한 부여를 지원합니다. 이 기능을 사용하면 정책 조건에서 리소스 태그를 사용할 수 있습니다.

  • 임시 보안 인증 – AWS RoboMaker에서는 임시 보안 인증을 지원합니다. 이 기능을 사용하면 페더레이션을 사용해 로그인하거나, IAM 역할을 맡거나, 교차 계정 역할을 맡을 수 있습니다. AssumeRole 또는 GetFederationToken 같은 AWS STS API 태스크를 호출하여 임시 보안 자격 증명을 가져옵니다.

  • 서비스 연결 역할 – AWS RoboMaker에서는 서비스 역할을 지원합니다. 이 기능을 사용하면 서비스가 사용자를 대신하여 서비스 연결 역할을 맡을 수 있습니다. 이 역할을 사용하면 서비스가 다른 서비스의 리소스에 액세스해 사용자를 대신해 태스크를 완료할 수 있습니다. 서비스 연결 역할은 IAM 계정에 표시되고, 서비스가 소유합니다. IAM 관리자는 서비스 연결 역할의 권한을 볼 수 있지만 편집은 할 수 없습니다.

  • 서비스 역할 – AWS RoboMaker에서는 서비스 역할을 지원합니다. 이 기능을 사용하면 서비스가 사용자를 대신하여 서비스 역할을 수임할 수 있습니다. 이 역할을 사용하면 서비스가 다른 서비스의 리소스에 액세스해 사용자를 대신해 태스크를 완료할 수 있습니다. 서비스 역할은 IAM 계정에 나타나고, 해당 계정이 소유합니다. 즉, IAM 관리자가 이 역할에 대한 권한을 변경할 수 있습니다. 그러나 권한을 변경하면 서비스의 기능이 손상될 수 있습니다.

인증 및 액세스 제어 문제 해결

다음 정보를 사용하여 IAM에서 발생할 수 있는 공통적인 문제를 진단하고 수정할 수 있습니다.

AWS RoboMaker에서 작업을 수행할 권한이 없음

AWS Management Console에서 작업을 수행할 권한이 없다는 오류가 표시되면 사용자 이름 및 암호를 제공한 관리자에게 연락해야 합니다.

다음 오류 예시는 my-user-name이라는 IAM 사용자가 콘솔을 사용해 CreateRobotApplication 작업을 수행하려고 하는데 권한이 없음을 보여줍니다.

User: arn:aws:iam::123456789012:user/my-user-name is not authorized to perform: aws-robomaker:CreateRobotApplication on resource: my-example-robot-application

이 예시에서는 aws-robomaker:CreateRobotApplication 작업을 사용해 my-example-robot-application 리소스에 액세스할 수 있도록 정책을 업데이트 해달라고 관리자에게 요청합니다.

관리자인데, 다른 사용자가 AWS RoboMaker에 액세스할 수 있게 허용하려고 합니다

다른 사용자가 AWS RoboMaker에 액세스하도록 허용하려면 액세스 권한이 필요한 사용자나 애플리케이션에 대한 IAM 엔터티(사용자 또는 역할)를 생성해야 합니다. 다른 사용자들은 해당 엔터티에 대한 자격 증명을 사용해 AWS에 액세스합니다. 그런 다음 AWS RoboMaker에 대한 올바른 권한을 부여하는 정책을 엔터티에 연결해야 합니다.

바로 시작하려면 IAM 시작하기 단원을 참조하세요.