콘솔을 사용하여 유지 관리 기간에 대한 액세스 제어 - AWS Systems Manager

콘솔을 사용하여 유지 관리 기간에 대한 액세스 제어

다음 절차에서는 AWS Systems Manager 콘솔을 사용하여 유지 관리 기간에 필요한 권한 및 역할을 생성하는 방법에 대해 설명합니다.

태스크 1: 콘솔을 사용하여 유지 관리 기간 서비스 역할에 대한 사용자 지정 정책 생성

유지 관리 기간 작업에는 대상 리소스에서 실행하는 데 필요한 권한을 제공하기 위해 IAM 역할이 필요합니다. 권한은 역할에 연결된 IAM 정책을 통해 제공됩니다. 실행하는 작업 유형 및 기타 운영 요구 사항에 따라 이 정책의 내용이 결정됩니다. 필요에 따라 조정할 수 있는 기본 정책을 제공합니다. 유지 관리 기간이 실행되는 작업 및 작업 유형에 따라 이 정책의 일부 권한이 필요하지 않을 수 있으며, 추가 사용 권한을 포함해야 할 수도 있습니다. 이후 태스크 2: 콘솔을 사용하여 유지 관리 기간에 대한 사용자 지정 서비스 역할 생성에서 이 정책을 해당 역할에 연결합니다.

콘솔을 사용하여 사용자 지정 정책을 생성하려면
  1. https://console.aws.amazon.com/iam/에서 IAM 콘솔을 엽니다.

  2. 탐색 창에서 정책을 선택한 후 정책 생성을 선택합니다.

  3. 정책 편집기 영역에서 JSON을 선택합니다.

  4. 기본 콘텐츠를 다음으로 바꿉니다.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ssm:SendCommand", "ssm:CancelCommand", "ssm:ListCommands", "ssm:ListCommandInvocations", "ssm:GetCommandInvocation", "ssm:GetAutomationExecution", "ssm:StartAutomationExecution", "ssm:ListTagsForResource", "ssm:GetParameters" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "states:DescribeExecution", "states:StartExecution" ], "Resource": [ "arn:aws:states:*:*:execution:*:*", "arn:aws:states:*:*:stateMachine:*" ] }, { "Effect": "Allow", "Action": [ "lambda:InvokeFunction" ], "Resource": [ "arn:aws:lambda:*:*:function:*" ] }, { "Effect": "Allow", "Action": [ "resource-groups:ListGroups", "resource-groups:ListGroupResources" ], "Resource": [ "*" ] }, { "Effect": "Allow", "Action": [ "tag:GetResources" ], "Resource": [ "*" ] }, { "Effect": "Allow", "Action": "iam:PassRole", "Resource": "*", "Condition": { "StringEquals": { "iam:PassedToService": [ "ssm.amazonaws.com" ] } } } ] }
  5. 계정에서 실행하는 유지 관리 작업에 필요한 경우 JSON 콘텐츠를 수정합니다. 변경 사항은 계획된 작업에 따라 다릅니다.

    예:

    • 와일드카드(*) 한정자를 사용하는 대신 특정 함수 및 상태 머신에 Amazon 리소스 이름(ARN)을 제공할 수 있습니다.

    • AWS Step Functions 작업을 실행할 계획이 없는 경우 states 권한 및 ARN을 제거할 수 있습니다.

    • AWS Lambda 작업을 실행할 계획이 없는 경우 lambda 권한 및 ARN을 제거할 수 있습니다.

    • Automation 작업을 실행할 계획이 없는 경우 ssm:GetAutomationExecutionssm:StartAutomationExecution 권한을 제거할 수 있습니다.

    • 작업을 실행하는 데 필요할 수 있는 권한을 추가합니다. 예를 들어 일부 자동화 작업은 AWS CloudFormation 스택과 함께 작동합니다. 따라서 cloudformation:CreateStack, cloudformation:DescribeStackscloudformation:DeleteStack 권한이 필요합니다.

      다른 예를 들어 Automation 실행서 AWS-CopySnapshot의 경우 Amazon Elastic Block Store(Amazon EBS) 스냅샷을 생성할 수 있는 권한이 필요합니다. 따라서 서비스 역할에 ec2:CreateSnapshot 권한이 필요합니다.

      Automation 실행서에 필요한 역할 권한에 대한 자세한 내용은 AWS Systems Manager Automation 실행서 참조의 실행서 설명을 참조하세요.

  6. 정책 수정을 완료한 후 다음을 선택합니다.

  7. 정책 이름에 만드는 서비스 역할에 연결된 정책임을 식별할 수 있는 이름을 입력합니다. 예: my-maintenance-window-role-policy.

  8. (선택 사항) 태그 추가 영역에서 하나 이상의 태그-키 값 페어를 추가하여 이 정책에 대한 액세스를 구성, 추적 또는 제어합니다.

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

    정책에 지정한 이름을 기록해 둡니다. 다음 절차인 태스크 2: 콘솔을 사용하여 유지 관리 기간에 대한 사용자 지정 서비스 역할 생성에서 이를 참조합니다.

태스크 2: 콘솔을 사용하여 유지 관리 기간에 대한 사용자 지정 서비스 역할 생성

이전 태스크에서 만든 정책이 이 태스크에서 만드는 유지 관리 기간 서비스 역할에 첨부됩니다. 사용자가 유지 관리 기간 태스크를 등록할 때 해당 IAM 역할을 작업 구성의 일부로 지정합니다. 이 역할의 권한을 통해 Systems Manager가 사용자 대신 유지 관리 기간에서 작업을 실행할 수 있습니다.

중요

이전에는 Systems Manager 콘솔에서 작업에 대한 유지 관리 역할로 사용하도록 AWS에서 관리하는 IAM 서비스 연결 역할인 AWSServiceRoleForAmazonSSM을 선택할 수 있었습니다. 유지 관리 기간에 이 역할 및 관련 정책인 AmazonSSMServiceRolePolicy를 사용하는 것은 더 이상 권장되지 않습니다. 현재 유지 관리 기간 작업에 이 역할을 사용하는 경우 사용을 중지하는 것이 좋습니다. 대신, 유지 관리 기간 작업 실행 시 Systems Manager와 다른 AWS 서비스 간에 통신을 가능하게 하는 IAM 역할을 생성하세요.

다음 절차를 사용하여 Systems Manager가 사용자 대신 Maintenance Windows 태스크를 실행할 수 있도록 Maintenance Windows에 대한 사용자 지정 서비스 역할을 생성합니다. 이전 태스크에서 생성한 정책을 생성한 사용자 지정 서비스 역할에 연결합니다.

콘솔을 사용하여 유지 관리 기간에 대한 사용자 지정 서비스 역할을 생성하려면
  1. https://console.aws.amazon.com/iam/에서 IAM 콘솔을 엽니다.

  2. 탐색 창에서 역할(Roles)을 선택한 후 역할 생성(Create role)을 선택합니다.

  3. 신뢰할 수 있는 엔터티 선택(Select trusted entity)에서 다음을 선택합니다.

    1. 신뢰할 수 있는 엔터티 유형에서 AWS 서비스를 선택합니다.

    2. 사용 사례에서 Systems Manager를 선택합니다.

    3. Systems Manager를 선택합니다.

      다음 이미지에서는 Systems Manager 옵션의 위치를 강조 표시합니다.

      Systems Manager는 사용 사례의 옵션 중 하나입니다.
  4. Next(다음)를 선택합니다.

  5. 권한 정책 영역의 검색 상자에 태스크 1: 콘솔을 사용하여 유지 관리 기간 서비스 역할에 대한 사용자 지정 정책 생성에서 생성한 정책의 이름을 입력하고 이름 옆의 상자를 선택한 후 다음을 선택합니다.

  6. 역할 이름(Role name)에 이 역할을 Maintenance Windows 역할로 식별하는 이름을 입력합니다. 예: my-maintenance-window-role.

  7. (선택 사항) 이 역할의 용도를 나타내도록 기본 역할 설명을 변경합니다. 예: Performs maintenance window tasks on your behalf.

  8. 1단계: 신뢰할 수 있는 엔터티 선택의 경우 신뢰 정책 상자에 다음 정책이 표시되는지 확인합니다.

    { "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "ssm.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
  9. 2단계: 권한 추가의 경우 태스크 1: 콘솔을 사용하여 유지 관리 기간 서비스 역할에 대한 사용자 지정 정책 생성에서 생성한 정책이 존재하는지 확인합니다.

  10. (선택 사항) 3단계: 태그 추가에서 이 역할에 대한 액세스를 구성, 추적 또는 제어할 태그-키 값 페어를 하나 이상 추가합니다.

  11. 역할 생성(Create role)을 선택합니다. 그러면 역할 페이지로 돌아갑니다.

  12. 방금 생성한 IAM 역할의 이름을 선택합니다.

  13. 요약(Summary) 영역에서 역할 이름과 ARN 값을 적어둡니다. 계정의 사용자는 유지 관리 기간을 생성할 때 이 정보를 지정합니다.

태스크 3: 콘솔을 사용하여 유지 관리 기간 태스크를 등록할 수 있는 권한을 지정된 사용자에게 부여

유지 관리 기간에 대한 사용자 지정 서비스 역할에 액세스할 수 있는 권한을 사용자에게 제공하면 유지 관리 기간 태스크에서 해당 역할을 사용할 수 있습니다. 이는 Maintenance Windows 기능에 대한 Systems Manager API 명령에 사용할 수 있도록 이미 부여한 권한에 추가됩니다. IAM 역할은 유지 관리 기간 태스크를 실행하는 데 필요한 권한을 전달합니다. 따라서 사용자에게 이러한 IAM 권한을 전달할 수 있는 기능이 없으면 사용자 지정 서비스 역할을 사용하여 유지 관리 기간에 태스크를 등록할 수 없습니다.

유지 관리 기간에 태스크를 등록할 때 실제 태스크 운영을 실행할 서비스 역할을 지정합니다. 이것은 서비스가 사용자를 대신하여 태스크를 실행할 때 수임하는 역할입니다. 그 전에 태스크 자체를 등록하려면 IAM 엔터티(예: 사용자 또는 그룹)에 IAM PassRole 정책을 할당하세요. 이를 통해 IAM 엔터티는 유지 관리 기간에 해당 태스크를 등록하는 과정에서 태스크를 실행할 때 사용해야 하는 역할을 지정할 수 있습니다. 자세한 내용은 IAM 사용 설명서에서 AWS 서비스에 역할을 전달할 사용자 권한 부여를 참조하세요.

사용자가 유지 관리 기간 태스크를 등록할 수 있도록 권한을 구성하려면

IAM 엔터티(사용자, 역할 또는 그룹)가 관리자 권한으로 설정된 경우 IAM 사용자 또는 역할은 Maintenance Windows에 액세스할 수 있습니다. 관리자 권한이 없는 IAM 엔터티의 경우 관리자가 IAM 엔터티에 다음 권한을 부여해야 합니다. 다음은 유지 관리 기간에 태스크를 등록하는 데 필요한 최소 권한입니다.

  • AmazonSSMFullAccess 관리형 정책 또는 유사한 권한을 제공하는 정책.

  • 다음 iam:PassRoleiam:ListRoles 권한.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iam:PassRole", "Resource": "arn:aws:iam::account-id:role/my-maintenance-window-role" }, { "Effect": "Allow", "Action": "iam:ListRoles", "Resource": "arn:aws:iam::account-id:role/" }, { "Effect": "Allow", "Action": "iam:ListRoles", "Resource": "arn:aws:iam::account-id:role/aws-service-role/ssm.amazonaws.com/" } ] }

    my-maintenance-window-role은 앞에서 생성한 사용자 지정 유지 관리 기간 서비스 역할의 이름을 나타냅니다.

    account-id는 AWS 계정의 ID를 나타냅니다. 리소스 arn:aws:iam::account-id:role/에 대해 이 권한을 추가하면 사용자가 유지 관리 기간 작업을 생성할 때 콘솔에서 고객 역할을 보고 선택할 수 있습니다. arn:aws:iam::account-id:role/aws-service-role/ssm.amazonaws.com/에 대해 이 권한을 추가하면 사용자가 유지 관리 기간 태스크를 생성할 때 콘솔에서 Systems Manager 서비스 연결 역할을 선택할 수 있습니다.

    액세스 권한을 제공하려면 사용자, 그룹 또는 역할에 권한을 추가하세요:

    • AWS IAM Identity Center의 사용자 및 그룹:

      권한 세트를 생성합니다. AWS IAM Identity Center 사용 설명서권한 세트 생성의 지침을 따릅니다.

    • 보안 인증 공급자를 통해 IAM에서 관리되는 사용자:

      ID 페더레이션을 위한 역할을 생성합니다. IAM 사용 설명서서드 파티 자격 증명 공급자의 역할 만들기(페더레이션)의 지침을 따릅니다.

    • IAM 사용자:

      • 사용자가 맡을 수 있는 역할을 생성합니다. IAM 사용 설명서에서 IAM 사용자의 역할 생성의 지침을 따릅니다.

      • (권장되지 않음)정책을 사용자에게 직접 연결하거나 사용자를 사용자 그룹에 추가합니다. IAM 사용 설명서에서 사용자(콘솔)에 권한 추가의 지침을 따르십시오.

콘솔을 사용하여 유지 관리 기간 태스크를 등록할 수 있는 그룹에 대한 권한을 구성하려면
  1. https://console.aws.amazon.com/iam/에서 IAM 콘솔을 엽니다.

  2. 탐색 창에서 사용자 그룹을 선택합니다.

  3. 그룹 목록에서 iam:PassRole 권한을 할당할 그룹의 이름을 선택하거나 필요한 경우 먼저 새 그룹을 생성합니다.

  4. 권한(Permissions) 탭에서 권한 추가, 인라인 정책 생성(Add permissions, Create inline policy)을 선택합니다.

  5. 정책 편집기 영역에서 JSON을 선택하고 상자의 기본 콘텐츠를 다음과 같이 바꿉니다.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iam:PassRole", "Resource": "arn:aws:iam::account-id:role/my-maintenance-window-role" }, { "Effect": "Allow", "Action": "iam:ListRoles", "Resource": "arn:aws:iam::account-id:role/" }, { "Effect": "Allow", "Action": "iam:ListRoles", "Resource": "arn:aws:iam::account-id:role/aws-service-role/ssm.amazonaws.com/" } ] }

    my-maintenance-window-role은 앞에서 생성한 사용자 지정 유지 관리 기간 역할의 이름을 나타냅니다.

    account-id는 AWS 계정의 ID를 나타냅니다. 리소스 arn:aws:iam::account-id:role/에 대해 이 권한을 추가하면 사용자가 유지 관리 기간 작업을 생성할 때 콘솔에서 고객 역할을 보고 선택할 수 있습니다. arn:aws:iam::account-id:role/aws-service-role/ssm.amazonaws.com/에 대해 이 권한을 추가하면 사용자가 유지 관리 기간 태스크를 생성할 때 콘솔에서 Systems Manager 서비스 연결 역할을 선택할 수 있습니다.

  6. Next(다음)를 선택합니다.

  7. 검토 및 생성 페이지에서 정책 이름 상자에 PassRole 정책을 식별할 수 있는 이름(예: my-group-iam-passrole-policy)을 입력한 다음 정책 생성을 선택합니다.

태스크 4: 지정된 사용자가 콘솔을 사용하여 유지 관리 기간 태스크를 등록하지 못하도록 방지

유지 관리 기간에 작업을 등록하지 않으려는 AWS 계정의 사용자에 대한 ssm:RegisterTaskWithMaintenanceWindow 권한을 거부할 수 있습니다. 이렇게 하면 유지 관리 기간 작업을 등록하지 않아야 하는 사용자에게 추가적인 예방 계층이 제공됩니다.

콘솔을 사용하여 유지 관리 기간 태스크를 등록할 수 없는 그룹에 대한 권한을 구성하려면
  1. https://console.aws.amazon.com/iam/에서 IAM 콘솔을 엽니다.

  2. 탐색 창에서 사용자 그룹을 선택합니다.

  3. 그룹 목록에서 ssm:RegisterTaskWithMaintenanceWindow 권한을 거부할 그룹의 이름을 선택하거나 필요한 경우 먼저 새 그룹을 생성합니다.

  4. 권한(Permissions) 탭에서 권한 추가, 인라인 정책 생성(Add permissions, Create inline policy)을 선택합니다.

  5. 정책 편집기 영역에서 JSON을 선택한 다음 상자의 기본 콘텐츠를 다음과 같이 바꿉니다.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": "ssm:RegisterTaskWithMaintenanceWindow", "Resource": "*" } ] }
  6. Next(다음)를 선택합니다.

  7. 검토 및 생성 페이지의 정책 이름에 이 정책을 식별할 수 있는 이름(예: my-groups-deny-mw-tasks-policy)을 입력한 다음 정책 생성을 선택합니다.