Amazon ML 리소스에 대한 액세스 제어 - IAM 사용 - Amazon Machine Learning

더 이상 Amazon Machine Learning 서비스를 업데이트하거나 새 사용자를 받지 않습니다. 이 설명서는 기존 사용자에 제공되지만 더 이상 업데이트되지 않습니다. 자세한 내용은 Amazon Machine Learning이란? 단원을 참조하세요.

Amazon ML 리소스에 대한 액세스 제어 - IAM 사용

AWS Identity and Access Management(IAM)를 사용하면 사용자의 서비스 및 리소스에 대한 액세스를 안전하게 제어할 수 있습니다. IAM을 사용하면 사용자, 그룹 및 역할을 생성 및 관리하고 권한을 사용하여 리소스에 대한 액세스를 허용 및 거부할 수 있습니다. IAM과 Amazon Machine Learning(Amazon ML)을 함께 사용하면 조직 내 사용자별로 특정 리소스의 사용 권한을 제어할 수 있습니다.

IAM을 사용하여 다음을 수행할 수 있습니다.

  • 계정의 사용자와 그룹 생성

  • 계정 사용자 각각에 고유한 보안 인증 할당

  • 작업 수행 시 각 사용자의 리소스 사용 권한 제어

  • 계정의 사용자 간에 리소스를 쉽게 공유

  • 계정에 적용할 규칙 생성 및 이들 역할을 수임할 수 있는 사용자나 서비스를 규정하기 위해 이들 역할에 대한 권한 관리

  • IAM에서 역할을 생성하고 권한을 관리하여 역할을 맡는 엔티티 또는 서비스가 수행할 수 있는 작업을 제어할 수 있습니다. 어떤 개체가 해당 역할을 맡도록 허용된 개체를 정의할 수도 있습니다.

조직에 이미 IAM 자격 증명이 있으면 이를 사용해 리소스를 사용하는 작업 권한을 부여할 수 있습니다.

IAM에 대한 자세한 내용은 IAM 사용 설명서를 참조하세요.

IAM 정책 구문

IAM 정책은 하나 이상의 구문으로 구성된 JSON 문서입니다. 각 구문의 구조는 다음과 같습니다.

{ "Statement":[{ "Effect":"effect", "Action":"action", "Resource":"arn", "Condition":{ "condition operator":{ "key":"value" } } }] }

정책 구문은 다음 요소로 구성됩니다.

  • 효과: 명령문의 뒷부분에서 지정할 리소스 및 API 작업 사용 권한을 제어합니다. 유효한 값은 AllowDeny입니다. 기본적으로 IAM 사용자에게는 리소스 및 API 작업을 사용할 권한이 없으므로 모든 요청이 거부됩니다. 명시적 Allow은 기본 설정 보다 우선합니다. 명시적 Deny은 어떤 Allows 보다 우선합니다.

  • 작업: 권한을 부여하거나 거부할 특정 API 작업입니다.

  • 리소스: 작업의 영향을 받는 리소스입니다. 구문에서 리소스를 지정하려면 Amazon 리소스 이름(ARN)을 사용합니다.

  • 조건(선택 사항): 정책이 적용되는 시기를 제어합니다.

IAM 정책을 간단하게 생성하고 관리하려면 IAM 정책 생성기 및 IAM 정책 시뮬레이터를 사용합니다.

Amazon MLAmazon ML에 대한 IAM 정책 작업 지정

IAM 정책 구문에서 IAM을 지원하는 모든 서비스의 API 작업을 지정할 수 있습니다. Amazon ML API 작업에 대한 정책 구문을 생성할 때는 다음 예와 같이 API 작업의 이름 앞에 machinelearning:을 추가하세요.

  • machinelearning:CreateDataSourceFromS3

  • machinelearning:DescribeDataSources

  • machinelearning:DeleteDataSource

  • machinelearning:GetDataSource

단일 구문에서 여러 작업을 지정하려면 다음과 같이 쉼표로 구분합니다.

"Action": ["machinelearning:action1", "machinelearning:action2"]

와일드카드를 사용하여 여러 작업을 지정할 수도 있습니다. 예를 들어 다음과 같이 이름이 "Get"으로 시작되는 모든 작업을 지정할 수 있습니다.

"Action": "machinelearning:Get*"

모든 Amazon ML 작업을 지정하려면 다음과 같이 * 와일드카드를 사용합니다.

"Action": "machinelearning:*"

Amazon ML API 작업의 전체 목록은 Amazon Machine Learning API 참조 단원을 참조하세요.

IAM 정책에서 Amazon ML 리소스용 ARN 지정

IAM 정책 구문은 하나 이상의 리소스에 적용됩니다. ARN으로 정책 리소스를 지정합니다.

Amazon ML 리소스의 ARN을 지정하려면 다음 형식을 사용합니다.

최대 1GB"리소스": arn:aws:machinelearning:region:account:resource-type/identifier

다음 예제에서는 공통 ARN을 지정하는 방법을 보여줍니다.

데이터 소스 ID: my-s3-datasource-id

"Resource": arn:aws:machinelearning:<region>:<your-account-id>:datasource/my-s3-datasource-id

ML 모델 ID: my-ml-model-id

"Resource": arn:aws:machinelearning:<region>:<your-account-id>:mlmodel/my-ml-model-id

배치 예측 ID: my-batchprediction-id

"Resource": arn:aws:machinelearning:<region>:<your-account-id>:batchprediction/my-batchprediction-id

평가 ID: my-evaluation-id

"Resource": arn:aws:machinelearning:<region>:<your-account-id>:evaluation/my-evaluation-id

Amazon SNS에 대한 정책 예제

예제 1: 사용자가 기계 학습 리소스의 메타데이터를 읽을 수 있도록 허용

다음 정책은 사용자나 그룹이 지정된 리소스에서 DescribeDataSources, DescribeMLModels, DescribeBatchPredictions, DescribeEvaluations, GetDataSource, GetMLModel, GetBatchPredictionGetEvaluation 작업을 수행하여 데이터 소스, ML 모델, 배치 예측 및 평가의 메타데이터를 읽을 수 있도록 허용합니다. Describe * 작업 권한은 특정 리소스로 제한할 수 없습니다.

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": [ "machinelearning:Get*" ], "Resource": [ "arn:aws:machinelearning:<region>:<your-account-id>:datasource/S3-DS-ID1", "arn:aws:machinelearning:<region>:<your-account-id>:datasource/REDSHIFT-DS-ID1", "arn:aws:machinelearning:<region>:<your-account-id>:mlmodel/ML-MODEL-ID1", "arn:aws:machinelearning:<region>:<your-account-id>:batchprediction/BP-ID1", "arn:aws:machinelearning:<region>:<your-account-id>:evaluation/EV-ID1" ] }, { "Effect": "Allow", "Action": [ "machinelearning:Describe*" ], "Resource": [ "*" ] }] }

예제 2: 사용자가 기계 학습 리소스를 만들 수 있도록 허용

다음 정책은 사용자나 그룹이 CreateDataSourceFromS3, CreateDataSourceFromRedshift, CreateDataSourceFromRDS, CreateMLModel, CreateBatchPredictionCreateEvaluation 작업을 수행하여 기계 학습 데이터 소스, ML 모델, 배치 예측 및 평가를 생성할 수 있도록 허용합니다. 이들 작업의 권한을 특정 리소스로 제한할 수 없습니다.

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": [ "machinelearning:CreateDataSourceFrom*", "machinelearning:CreateMLModel", "machinelearning:CreateBatchPrediction", "machinelearning:CreateEvaluation" ], "Resource": [ "*" ] }] }

예제 3: 사용자가 실시간 엔드포인트를 생성 및 삭제하고 ML 모델에서 실시간 예측을 수행하도록 허용

다음 정책은 사용자나 그룹이 실시간 엔드포인트를 생성 및 삭제하고, 해당 모델에서 CreateRealtimeEndpoint, DeleteRealtimeEndpointPredict 작업을 수행하여 특정 ML 모델에 대한 실시간 예측을 수행할 수 있도록 허용합니다.

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": [ "machinelearning:CreateRealtimeEndpoint", "machinelearning:DeleteRealtimeEndpoint", "machinelearning:Predict" ], "Resource": [ "arn:aws:machinelearning:<region>:<your-account-id>:mlmodel/ML-MODEL" ] }] }

예제 4: 사용자가 특정 리소스를 업데이트하고 삭제하도록 허용

다음 정책은 사용자나 그룹이 계정의 해당 리소스에서 UpdateDataSource, UpdateMLModel, UpdateBatchPrediction, UpdateEvaluation, DeleteDataSource, DeleteMLModel, DeleteBatchPredictionDeleteEvaluation 작업을 수행할 권한을 부여하여 계정의 특정 리소스를 업데이트하고 삭제할 수 있도록 허용합니다.

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": [ "machinelearning:Update*", "machinelearning:DeleteDataSource", "machinelearning:DeleteMLModel", "machinelearning:DeleteBatchPrediction", "machinelearning:DeleteEvaluation" ], "Resource": [ "arn:aws:machinelearning:<region>:<your-account-id>:datasource/S3-DS-ID1", "arn:aws:machinelearning:<region>:<your-account-id>:datasource/REDSHIFT-DS-ID1", "arn:aws:machinelearning:<region>:<your-account-id>:mlmodel/ML-MODEL-ID1", "arn:aws:machinelearning:<region>:<your-account-id>:batchprediction/BP-ID1", "arn:aws:machinelearning:<region>:<your-account-id>:evaluation/EV-ID1" ] }] }

예제 5: 모든 Amazon ML 작업 허용

다음 정책은 사용자나 그룹이 모든 Amazon ML 작업을 사용할 수 있도록 허용합니다. 이 정책은 모든 기계 학습 리스소에 대한 전체 액세스 권한을 부여하므로 관리자로만 제한해야 합니다.

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