CloudWatch Logs로 Automation 작업 출력 로깅 - AWS Systems Manager

CloudWatch Logs로 Automation 작업 출력 로깅

AWS Systems Manager의 기능인 Automation이 Amazon CloudWatch Logs와 통합됩니다. 실행서에 있는 aws:executeScript 작업의 출력을 지정하는 로그 그룹으로 전송할 수 있습니다. Systems Manager는 aws:executeScript 작업을 사용하지 않는 문서에 대한 로그 그룹이나 로그 스트림을 생성하지 않습니다. 문서에서 aws:executeScript를 사용하는 경우 CloudWatch Logs로 전송되는 출력은 해당 작업에만 적용됩니다. 디버깅 및 문제 해결을 위해 CloudWatch Logs 로그 그룹에 저장된 aws:executeScript 작업 출력을 사용할 수 있습니다. 암호화된 로그 그룹을 선택하면 aws:executeScript 작업 출력도 암호화됩니다. aws:executeScript 작업의 로깅 출력은 계정 수준 설정입니다.

작업 출력을 Amazon 소유 런북에 대한 CloudWatch Logs로 전송하려면 자동화를 실행하는 사용자 또는 역할에 다음 작업에 대한 권한이 부여되어 있어야 합니다.

  • logs:CreateLogGroup

  • logs:CreateLogStream

  • logs:DescribeLogGroups

  • logs:DescribeLogStreams

  • logs:PutLogEvents

자신이 소유한 런북의 경우, 런북을 실행하는 데 사용하는 IAM 서비스 역할(또는 AssumeRole)에 동일한 권한을 추가해야 합니다.

작업 출력을 CloudWatch Logs로 전송하려면(콘솔)
  1. AWS Systems Manager 콘솔(https://console.aws.amazon.com/systems-manager/)을 엽니다.

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

  3. 기본 설정 탭을 선택하고 편집을 선택합니다.

  4. [Send output to CloudWatch Logs(CloudWatch Logs로 출력 전송)] 옆에 있는 확인란을 선택합니다.

  5. (권장) [로그 데이터 암호화(Encrypt log data)] 옆에 있는 확인란을 선택합니다. 이 옵션을 설명하면 로그 데이터가 로그 그룹에 지정된 서버 측 암호화 키를 사용하여 암호화됩니다. CloudWatch Logs로 전송되는 로그 데이터를 암호화하지 않으려면 확인란을 선택 취소합니다. 로그 그룹에서 암호화가 허용되지 않는 경우에도 확인란의 선택을 취소합니다.

  6. [CloudWatch Logs 로그 그룹(CloudWatch Logs log group)]에 대해 작업 출력을 전송할 AWS 계정의 기존 CloudWatch Logs 로그 그룹을 지정하려면 다음 중 하나를 선택합니다.

    • [기본 로그 그룹으로 출력 전송(Send output to the default log group)] - 기본 로그 그룹이 존재하지 않는 경우(/aws/ssm/automation/executeScript) Automation에서 자동으로 생성합니다.

    • [로그 그룹 목록에서 선택(Choose from a list of log groups)]: 작업 출력을 저장할 계정에 이미 생성된 로그 그룹을 선택합니다.

    • [로그 그룹 이름 입력(Enter a log group name)]: 작업 출력을 저장하기 위해 계정에 이미 생성된 로그 그룹의 이름을 텍스트 상자에 입력합니다.

  7. Save(저장)를 선택합니다.

작업 출력을 CloudWatch Logs로 전송하려면(명령줄)
  1. 원하는 명령줄 도구를 열고 다음 명령을 실행하여 작업 출력 대상을 업데이트합니다.

    Linux & macOS
    aws ssm update-service-setting \ --setting-id arn:aws:ssm:region:account-id:servicesetting/ssm/automation/customer-script-log-destination \ --setting-value CloudWatch
    Windows
    aws ssm update-service-setting ^ --setting-id arn:aws:ssm:region:account-id:servicesetting/ssm/automation/customer-script-log-destination ^ --setting-value CloudWatch
    PowerShell
    Update-SSMServiceSetting ` -SettingId "arn:aws:ssm:region:account-id:servicesetting/ssm/automation/customer-script-log-destination" ` -SettingValue "CloudWatch"

    명령이 성공해도 출력은 없습니다.

  2. 다음 명령을 실행하여 작업 출력을 전송할 로그 그룹을 지정합니다.

    Linux & macOS
    aws ssm update-service-setting \ --setting-id arn:aws:ssm:region:account-id:servicesetting/ssm/automation/customer-script-log-group-name \ --setting-value my-log-group
    Windows
    aws ssm update-service-setting ^ --setting-id arn:aws:ssm:region:account-id:servicesetting/ssm/automation/customer-script-log-group-name ^ --setting-value my-log-group
    PowerShell
    Update-SSMServiceSetting ` -SettingId "arn:aws:ssm:region:account-id:servicesetting/ssm/automation/customer-script-log-group-name" ` -SettingValue "my-log-group"

    명령이 성공해도 출력은 없습니다.

  3. 다음 명령을 실행하여 현재 AWS 계정 및 AWS 리전의 Automation 작업 로깅 기본 설정에 대한 현재 서비스 설정을 확인합니다.

    Linux & macOS
    aws ssm get-service-setting \ --setting-id arn:aws:ssm:region:account-id:servicesetting/ssm/automation/customer-script-log-destination
    Windows
    aws ssm get-service-setting ^ --setting-id arn:aws:ssm:region:account-id:servicesetting/ssm/automation/customer-script-log-destination
    PowerShell
    Get-SSMServiceSetting ` -SettingId "arn:aws:ssm:region:account-id:servicesetting/ssm/automation/customer-script-log-destination"

    명령은 다음과 같은 정보를 반환합니다.

    {
        "ServiceSetting": {
            "Status": "Customized",
            "LastModifiedDate": 1613758617.036,
            "SettingId": "/ssm/automation/customer-script-log-destination",
            "LastModifiedUser": "arn:aws:sts::123456789012:assumed-role/Administrator/User_1",
            "SettingValue": "CloudWatch",
            "ARN": "arn:aws:ssm:us-east-2:123456789012:servicesetting/ssm/automation/customer-script-log-destination"
        }
    }