AWS OpsWorks Stacks가 사용자를 대신하여 작동하도록 허용 - AWS OpsWorks

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

AWS OpsWorks Stacks가 사용자를 대신하여 작동하도록 허용

중요

이 AWS OpsWorks Stacks 서비스는 2024년 5월 26일에 수명이 종료되었으며 신규 및 기존 고객 모두 사용할 수 없습니다. 고객은 가능한 한 빨리 워크로드를 다른 솔루션으로 마이그레이션할 것을 강력히 권장합니다. 마이그레이션에 대해 궁금한 점이 있으면 AWS re:Post 또는 Premium AWS Support를 통해 AWS Support 팀에 문의하세요.

AWS OpsWorks Stacks는 사용자를 대신하여 다양한 AWS 서비스와 상호 작용해야 합니다. 예를 들어 AWS OpsWorks Stacks는 Amazon EC2와 상호 작용하여 인스턴스를 생성하고 Amazon과 상호 작용하여 모니터링 통계를 CloudWatch 얻습니다. 스택을 생성할 때 스택에 적절한 권한을 부여하는 AWS OpsWorks IAM 역할 (일반적으로 서비스 역할이라고 함) 을 지정합니다.

스택 추가 페이지의 IAM 역할 목록.

새 스택의 서비스 역할을 지정할 때 다음 중 하나를 수행할 수 있습니다.

  • 앞서 생성한 표준 서비스 역할을 지정합니다.

    첫 번째 스택을 만들 때 표준 서비스 역할을 생성한 후 이후 모든 스택에 대해 해당 역할을 사용하는 것이 일반적입니다.

  • IAM 콘솔 또는 API를 사용하여 생성한 사용자 지정 서비스 역할을 지정합니다.

    이 접근 방식은 AWS OpsWorks 스택에 표준 서비스 역할보다 더 제한된 권한을 부여하려는 경우에 유용합니다.

참고

첫 번째 스택을 생성하려면 IAM AdministratorAccess정책 템플릿에 정의된 권한이 있어야 합니다. 앞서 설명한 것처럼 이러한 권한을 통해 AWS OpsWorks Stacks에서 새 IAM 서비스 역할을 생성하고 사용자를 가져올 수 있습니다. 이후 모든 스택에 대해 사용자가 첫 번째 스택에 대해 생성된 서비스 역할을 선택할 수 있습니다. 스택을 생성하는 데 전체 관리 권한이 필요한 것은 아닙니다.

표준 서비스 역할이 부여하는 권한은 다음과 같습니다.

  • 모든 Amazon EC2 작업(ec2:*)을 수행합니다.

  • CloudWatch 통계 가져오기 (cloudwatch:GetMetricStatistics).

  • Elastic Load Balancing을 사용하여 서버에 트래픽을 분산합니다(elasticloadbalancing:*).

  • Amazon RDS 인스턴스를 데이터베이스 서버로 사용합니다(rds:*).

  • IAM 역할 (iam:PassRole) 을 사용하면 AWS OpsWorks 스택과 Amazon EC2 인스턴스 간에 보안 통신을 제공할 수 있습니다.

사용자 지정 서비스 역할을 생성하는 경우 스택이 AWS OpsWorks 스택을 관리하는 데 필요한 모든 권한을 부여하는지 확인해야 합니다. 다음 JSON 샘플은 표준 서비스 역할에 대한 정책 문입니다. 사용자 지정 서비스 역할은 최소한 다음 권한을 정책 문에 포함해야 합니다.

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "ec2:*", "iam:PassRole", "cloudwatch:GetMetricStatistics", "cloudwatch:DescribeAlarms", "ecs:*", "elasticloadbalancing:*", "rds:*" ], "Effect": "Allow", "Resource": [ "*" ], "Condition": { "StringEquals": { "iam:PassedToService": "ec2.amazonaws.com" } } } ] }

서비스 역할에는 신뢰 관계도 있습니다. AWS OpsWorks Stacks에서 생성한 서비스 역할에는 다음과 같은 신뢰 관계가 있습니다.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "StsAssumeRole", "Effect": "Allow", "Principal": { "Service": "opsworks.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }

AWS OpsWorks Stacks가 사용자를 대신하여 작동하려면 서비스 역할에 이러한 신뢰 관계가 있어야 합니다. 기본 서비스 역할을 사용하는 경우, 신뢰 관계를 수정하지 마십시오. 사용자 지정 서비스 역할을 생성하는 경우, 다음과 같이 신뢰 관계를 지정합니다.

  • IAM 콘솔에서 역할 생성 마법사를 사용하는 경우 사용 사례 선택에서 Opsworks를 선택합니다. 역할에 적절한 신뢰 관계가 있지만 암시적으로 연결된 정책은 없습니다. AWS OpsWorks Stacks에 사용자 대신 작업을 수행할 권한을 부여하려면 다음을 포함하는 고객 관리형 정책을 생성하여 새 역할에 연결하세요.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "cloudwatch:DescribeAlarms", "cloudwatch:GetMetricStatistics", "ec2:*", "ecs:*", "elasticloadbalancing:*", "iam:GetRolePolicy", "iam:ListInstanceProfiles", "iam:ListRoles", "iam:ListUsers", "rds:*" ], "Resource": [ "*" ] }, { "Effect": "Allow", "Action": [ "iam:PassRole" ], "Resource": "*", "Condition": { "StringEquals": { "iam:PassedToService": "ec2.amazonaws.com" } } } ] }
  • 템플릿을 사용하는 경우 AWS CloudFormation 템플릿의 리소스 섹션에 다음과 같은 내용을 추가할 수 있습니다.

    "Resources": { "OpsWorksServiceRole": { "Type": "AWS::IAM::Role", "Properties": { "AssumeRolePolicyDocument": { "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "opsworks.amazonaws.com" ] }, "Action": [ "sts:AssumeRole" ] } ] }, "Path": "/", "Policies": [ { "PolicyName": "opsworks-service", "PolicyDocument": { ... } ] } }, } }