4단계: 노트북 서버용 IAM 정책 생성 - AWS Glue

문서의 영문과 번역 사이에 충돌이 있는 경우에는 영문 버전을 따릅니다. 번역 버전은 기계 번역을 사용하여 제공합니다.

4단계: 노트북 서버용 IAM 정책 생성

개발 엔드포인트로 노트북을 사용하고자 한다면 노트북 서버를 생성할 때 권한을 지정해야 합니다. AWS Identity and Access Management(IAM)를 사용하여 권한을 제공합니다.

이 정책은 몇 가지 Amazon S3 작업에 대한 권한을 부여하여 이 정책에 따른 역할을 AWS Glue에서 맡을 때 필요한 계정 내 리소스를 관리할 수 있도록 합니다. 이 정책에 지정된 몇 가지 리소스는 Amazon S3 버킷, Amazon S3 ETL 스크립트, Amazon EC2 리소스에 대해 AWS Glue에서 사용하는 기본 이름을 참조합니다. 간소화를 위해 AWS Glue는 기본적으로 접두사가 aws-glue-*인 계정에서 몇 가지 Amazon S3 객체를 버킷에 작성합니다.

참고

AWS 관리 정책 AWSGlueServiceNotebookRole(AWS Glue 서비스 노트북 역할)을 사용하면 이번 단계를 생략해도 좋습니다.

이 단계에서는AWSGlueServiceNotebookRole과 비슷한 정책을 만듭니다. IAM 콘솔에서 AWSGlueServiceNotebookRole의 최신 버전을 확인할 수 있습니다.

노트북 IAM 정책을 생성하려면

  1. AWS Management 콘솔에 로그인한 다음 https://console.aws.amazon.com/iam/에서 IAM 콘솔을 엽니다.

  2. 왼쪽 탐색 창에서 [Policies]를 선택합니다.

  3. 정책 생성을 선택합니다.

  4. [Create Policy(정책 생성)] 화면에서 탭으로 이동하여 JSON을 편집합니다. 다음 JSON 설명으로 정책 문서를 만든 다음 [Review policy(정책 보기)]를 선택합니다.

    { "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "glue:CreateDatabase", "glue:CreatePartition", "glue:CreateTable", "glue:DeleteDatabase", "glue:DeletePartition", "glue:DeleteTable", "glue:GetDatabase", "glue:GetDatabases", "glue:GetPartition", "glue:GetPartitions", "glue:GetTable", "glue:GetTableVersions", "glue:GetTables", "glue:UpdateDatabase", "glue:UpdatePartition", "glue:UpdateTable", "glue:CreateBookmark", "glue:GetBookmark", "glue:UpdateBookmark", "glue:GetMetric", "glue:PutMetric", "glue:CreateConnection", "glue:CreateJob", "glue:DeleteConnection", "glue:DeleteJob", "glue:GetConnection", "glue:GetConnections", "glue:GetDevEndpoint", "glue:GetDevEndpoints", "glue:GetJob", "glue:GetJobs", "glue:UpdateJob", "glue:BatchDeleteConnection", "glue:UpdateConnection", "glue:GetUserDefinedFunction", "glue:UpdateUserDefinedFunction", "glue:GetUserDefinedFunctions", "glue:DeleteUserDefinedFunction", "glue:CreateUserDefinedFunction", "glue:BatchGetPartition", "glue:BatchDeletePartition", "glue:BatchCreatePartition", "glue:BatchDeleteTable", "glue:UpdateDevEndpoint", "s3:GetBucketLocation", "s3:ListBucket", "s3:ListAllMyBuckets", "s3:GetBucketAcl" ], "Resource":[ "*" ] }, { "Effect":"Allow", "Action":[ "s3:GetObject" ], "Resource":[ "arn:aws:s3:::crawler-public*", "arn:aws:s3:::aws-glue*" ] }, { "Effect":"Allow", "Action":[ "s3:PutObject", "s3:DeleteObject" ], "Resource":[ "arn:aws:s3:::aws-glue*" ] }, { "Effect":"Allow", "Action":[ "ec2:CreateTags", "ec2:DeleteTags" ], "Condition":{ "ForAllValues:StringEquals":{ "aws:TagKeys":[ "aws-glue-service-resource" ] } }, "Resource":[ "arn:aws:ec2:*:*:network-interface/*", "arn:aws:ec2:*:*:security-group/*", "arn:aws:ec2:*:*:instance/*" ] } ] }

    다음 테이블은 이 정책이 보장하는 권한을 설명합니다.

    작업 리소스 설명

    "glue:*"

    "*"

    모든 AWS Glue API 작업을 실행할 수 있는 권한을 부여합니다.

    "s3:GetBucketLocation", "s3:ListBucket", "s3:ListAllMyBuckets", "s3:GetBucketAcl"

    "*"

    노트북 서버의 Amazon S3 버킷 목록을 허용합니다.

    "s3:GetObject"

    "arn:aws:s3:::crawler-public*", "arn:aws:s3:::aws-glue-*"

    노트북의 예제 및 자습서가 사용한 Amazon S3 객체 얻기를 허용합니다.

    이름 전환: crawler-publicaws-glue-로 시작하는 Amazon S3 버킷 이름

    "s3:PutObject", "s3:DeleteObject"

    "arn:aws:s3:::aws-glue*"

    노트북의 계정으로 Amazon S3 객체를 넣고 삭제하는 것을 허용합니다.

    이름 전환: aws-glue-라는 Amazon S3 폴더를 사용합니다.

    "ec2:CreateTags", "ec2:DeleteTags"

    "arn:aws:ec2:*:*:network-interface/*", "arn:aws:ec2:*:*:security-group/*", "arn:aws:ec2:*:*:instance/*"

    노트북 서버를 생성하는 Amazon EC2 리소스 태깅을 허용합니다.

    이름 전환: AWS Glue는 Amazon EC2 인스턴스를 aws-glue-service-resource에 태그 지정합니다.

  5. 정책 검토 화면에서 정책 이름을 입력합니다(예: GlueServiceNotebookPolicyDefault). 조건부 설명을 입력하고 정책에 만족하면 정책 생성을 선택합니다.