[AWS] Step Functions에서 CloudWatch Logs로 로그를 출력할 때 권한 확인[Step Functions]
15802 단어 stepfunctionsAWS
입문
Step Functions State Machine은 State Machine 자체의 로그(AWS 관리 콘솔의 Execution event history)를 CloudWatch Logs로 출력할 수 있습니다.
이 CloudWatch Logs로 출력할 IAM Entity (CloudWatch Logs에 기록된 주체) 가 약간 특수하기 때문에 정보를 요약했습니다.
본 보도는 아래 보도의 파생이다.
[AWS] SAM에서 Step Functions 레코드를 사용하여 CloudWatch Logs로 출력할 때,sam deploy에서 오류가 발생할 수 있습니다[SAM]
TL;DR
컨텐츠 확인
항목 확인
검증된 환경
검증 단계 개요
검증 결과 세부 정보
1. 정상 시 동작 확인
1-1. 모든 CloudWatch Logs 리소스 기반 정책 삭제
모든 CloudWatch Logs 리소스 기반 정책을 삭제하고 컨텐츠가 설정되지 않았는지 확인합니다.
CloudWatch Logs의 리소스 기반 정책 삭제
$ aws logs delete-resource-policy --policy-name AWSLogDeliveryWrite20150319
CloudWatch Logs 리소스 기반 정책에 설정된 내용이 없음 확인$ aws logs describe-resource-policies
{
"resourcePolicies": []
}
1-2. AWS Management Console을 사용하여 새 State Machine을 정의하고 CloudWatch Logs의 리소스 기반 정책을 확인합니다.
HellowWolrd 템플릿을 기반으로 State Machine을 새로 만듭니다.각 설정은 "검증된 환경"과 같습니다.
1-3. CloudWatch Logs의 리소스 인프라 확인
AWS CLI에서 CloudWatch Logs의 리소스 기반 정책을 확인하면 위에서 만든 State Machine에 해당하는 정책이 추가됩니다.
aws logs describe-resource-policies
$ aws logs describe-resource-policies
{
"resourcePolicies": [
{
"policyName": "AWSLogDeliveryWrite20150319",
"policyDocument": "{\"Version\":\"2012-10-17\",\"Statement\":[{\"Sid\":\"AWSLogDeliveryWrite\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":\"delivery.logs.amazonaws.com\"},\"Action\":[\"logs:CreateLogStream\",\"logs:PutLogEvents\"],\"Resource\":\"arn:aws:logs:us-west-2:************:log-group:/aws/vendedlogs/states/LookingIntoLogging-Logs:log-stream:*\"}]}",
"lastUpdatedTime": 1609216388365
}
]
}
자원 인프라 AWSlogDeliveryWrite20150319의 내용$ aws logs describe-resource-policies | jq ".resourcePolicies[0].policyDocument | fromjson"0
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AWSLogDeliveryWrite",
"Effect": "Allow",
"Principal": {
"Service": "delivery.logs.amazonaws.com"
},
"Action": [
"logs:CreateLogStream",
"logs:PutLogEvents"
],
"Resource": "arn:aws:logs:us-west-2:************:log-group:/aws/vendedlogs/states/LookingIntoLogging-Logs:log-stream:*"
}
]
}
1-4. State Machine 실행, CloudWatch Logs 출력 로그 확인
방금 만든 State Machine를 실행하면 CloudWatch Logs에 로그 출력이 완전하게 있는지 확인할 수 있습니다.
2. CloudWatch Logs 리소스 기반 정책 삭제 시 동작 확인
2-1. CloudWatch Logs의 리소스 기반 정책 삭제
CloudWatch Logs의 리소스 기반 정책을 AWS CLI에서 제거합니다.
aws logs delete-resource-policies
$ aws logs delete-resource-policies --policy-name AWSLogDeliveryWrite20150319
$aws logs describe-resource-policies 명령에서 CloudWatch Logs의 자원 기반 정책을 삭제했는지 확인합니다.aws logs describe-resource-policies
$ aws logs describe-resource-policies
{
"resourcePolicies": []
}
2-2. 관리자 액세스 정책을 State Machine에 부여하는 IAM Role
State Machine의 IAM Role에 대한 관리자 액세스 권한을 부여합니다.
2-3. State Machine을 실행하여 CloudWatch Logs에서 로그가 출력되지 않음을 확인합니다.
AWS Management Console에서 방금 State Machine을 실행합니다.
실행 후 로그를 CloudWatch Logs로 내보내지 않을 수 있습니다.
3. 자원 기초 정책을 다시 부여할 때의 행위 확인
3-1. CloudWatch Logs에 리소스 기반 정책 부여
AWS Management Console과 자동으로 생성된 동일한 리소스 인프라를 다시 부여합니다.
cloudwatch-logs-resource-based-policy.json
$ vi cloudwatch-logs-resource-based-policy.json
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AWSLogDeliveryWrite",
"Effect": "Allow",
"Principal": {
"Service": "delivery.logs.amazonaws.com"
},
"Action": [
"logs:CreateLogStream",
"logs:PutLogEvents"
],
"Resource": "arn:aws:logs:us-west-2:************:log-group:/aws/vendedlogs/states/LookingIntoLogging-Logs:log-stream:*"
}
]
}
aws logs put-resource-policy$ aws logs put-resource-policy --policy-name AWSLogDeliveryWrite20150319 --policy-document file://cloudwatch-logs-resource-based-policy.json
{
"resourcePolicy": {
"policyName": "AWSLogDeliveryWrite20150319",
"policyDocument": "{\n \"Version\": \"2012-10-17\",\n \"Statement\": [\n {\n \"Sid\": \"AWSLogDeliveryWrite\",\n \"Effect\": \"Allow\",\n \"Principal\": {\n \"Service\": \"delivery.logs.amazonaws.com\"\n },\n \"Action\": [\n \"logs:CreateLogStream\",\n \"logs:PutLogEvents\"\n ],\n \"Resource\": \"arn:aws:logs:us-west-2:************:log-group:/aws/vendedlogs/states/LookingIntoLogging-Logs:log-stream:*\"\n }\n ]\n}\n\n",
"lastUpdatedTime": 1609217733590
}
}
3-2. State Machine 실행 및 CloudWatch 로그 출력 여부 확인
이전과 같은 State Machine를 실행할 때 CloudWatch Logs가 로그를 출력했는지 확인할 수 있습니다.
끝내다
Step Functions뿐만 아니라 비즈니스 시스템 등에서 AWS를 사용할 때 로그가 중요합니다.
로그를 잘 얻을 수 있는지, 필요한 권한 제어를 할 수 있는지 확인해 보세요.
Reference
이 문제에 관하여([AWS] Step Functions에서 CloudWatch Logs로 로그를 출력할 때 권한 확인[Step Functions]), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/tmiki/items/519d517fe6e9edc5353b
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여([AWS] Step Functions에서 CloudWatch Logs로 로그를 출력할 때 권한 확인[Step Functions]), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/tmiki/items/519d517fe6e9edc5353b텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)