1단계: AWS Glue 서비스를 위한 IAM 정책 생성 - AWS Glue

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

1단계: AWS Glue 서비스를 위한 IAM 정책 생성

Amazon S3 객체에 액세스하는 것처럼 다른 AWS 리소스의 데이터에 액세스하는 작업의 경우, 사용자를 대신하여 리소스에 액세스할 수 있는 권한이 AWS Glue에 있어야 합니다. AWS Identity and Access Management(IAM)을 사용하여 그러한 권한을 제공합니다.

참고

AWS 관리형 정책 AWSGlueServiceRole을 사용하면 이 단계를 생략해도 좋습니다.

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

AWS Glue를 위한 IAM 정책을 생성하려면

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

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

  2. 왼쪽 탐색 창에서 정책을 선택합니다.

  3. 정책 생성(Create Policy)을 선택합니다.

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

    참고

    Amazon S3 리소스에 필요한 모든 액세스를 추가합니다. 필요한 리소스만의 액세스 정책에 대한 리소스 섹션의 범위를 정하고자 할 수 있습니다.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "glue:*", "s3:GetBucketLocation", "s3:ListBucket", "s3:ListAllMyBuckets", "s3:GetBucketAcl", "ec2:DescribeVpcEndpoints", "ec2:DescribeRouteTables", "ec2:CreateNetworkInterface", "ec2:DeleteNetworkInterface", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcAttribute", "iam:ListRolePolicies", "iam:GetRole", "iam:GetRolePolicy", "cloudwatch:PutMetricData" ], "Resource": [ "*" ] }, { "Effect": "Allow", "Action": [ "s3:CreateBucket", "s3:PutBucketPublicAccessBlock" ], "Resource": [ "arn:aws:s3:::aws-glue-*" ] }, { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:PutObject", "s3:DeleteObject" ], "Resource": [ "arn:aws:s3:::aws-glue-*/*", "arn:aws:s3:::*/*aws-glue-*/*" ] }, { "Effect": "Allow", "Action": [ "s3:GetObject" ], "Resource": [ "arn:aws:s3:::crawler-public*", "arn:aws:s3:::aws-glue-*" ] }, { "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents", "logs:AssociateKmsKey" ], "Resource": [ "arn:aws:logs:*:*:log-group:/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 버킷 목록을 허용합니다.

    "ec2:DescribeVpcEndpoints", "ec2:DescribeRouteTables", "ec2:CreateNetworkInterface", "ec2:DeleteNetworkInterface", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcAttribute",

    "*"

    작업, 크롤러 및 개발 엔드포인트를 실행할 때 Virtual Private Cloud(VPC)와 같은 Amazon EC2 네트워크 항목을 설정할 수 있도록 허용합니다.

    "iam:ListRolePolicies", "iam:GetRole", "iam:GetRolePolicy"

    "*"

    크롤러, 작업, 개발 엔드포인트 및 노트북 서버의 IAM 역할 목록을 허용합니다.

    "cloudwatch:PutMetricData"

    "*"

    작업에 대한 CloudWatch 지표 작성을 허용합니다.

    "s3:CreateBucket", "s3:PutBucketPublicAccessBlock"

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

    작업과 노트북 서버로부터 계정의 Amazon S3 버킷 생성을 허용합니다.

    명명 규칙: aws-glue-라는 Amazon S3 폴더를 사용합니다.

    AWS Glue를 사용하여 퍼블릭 액세스를 차단하는 버킷을 생성합니다.

    "s3:GetObject", "s3:PutObject", "s3:DeleteObject"

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

    ETL 스크립트 및 노트북 서버 위치와 같은 객체를 저장할 때 Amazon S3 객체를 계정에서 얻고 넣고 삭제하는 것을 허용합니다.

    명명 규칙: 이름이 aws-glue-로 시작하는 Amazon S3 버킷 또는 폴더에 권한을 부여합니다.

    "s3:GetObject"

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

    크롤러 및 작업의 예제 및 튜토리얼이 사용한 Amazon S3 객체 얻기를 허용합니다.

    명명 규칙: Amazon S3 버킷 이름은 crawler-publicaws-glue-로 시작합니다.

    "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents"

    "arn:aws:logs:*:*:log-group:/aws-glue/*"

    CloudWatch Logs에 로그를 쓸 수 있습니다.

    이름 전환: AWS Glue는 aws-glue로 시작하는 로그 투 로그 그룹 이름을 작성합니다.

    "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. 정책 검토 화면에서 정책 이름을 입력합니다(예: GlueServiceRolePolicy). 조건부 설명을 입력하고 정책에 만족하면 정책 생성을 선택합니다.