기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
를 사용하여 Amazon S3로 로그 데이터 내보내기AWS CLI
다음 예제에서는 내보내기 작업을 사용하여 이름이 my-log-group인 CloudWatch Logs 로그 그룹의 모든 데이터를 이름이 amzn-s3-demo-bucket인 Amazon S3 버킷으로 내보낼 수 있습니다. 이 예제에서는 이름이 my-log-group인 로그 그룹을 이미 생성했다고 가정합니다.
로 암호화된 S3 버킷으로 로그 데이터 내보내기가 지원AWS KMS됩니다. DSSE-KMS로 암호화된 버킷으로의 내보내기는 지원되지 않습니다.
내보내기 설정 방법에 대한 세부 정보는 내보내려는 Amazon S3 버킷이 내보내는 로그와 동일한 계정에 있는지, 또는 다른 계정에 있는지에 따라 다릅니다.
동일 계정 내보내기(CLI)
Amazon S3 버킷이 내보내는 로그와 동일한 계정에 있는 경우 이 섹션의 지침을 사용합니다.
주제
S3 버킷 생성(CLI)
CloudWatch Logs를 위해 특별히 생성한 버킷을 사용하는 것이 좋습니다. 그러나 기존 버킷을 사용하려면이 절차를 건너뛸 수 있습니다.
참고
S3 버킷은 내보내는 로그 데이터와 동일한 리전에 있어야 합니다. CloudWatch Logs는 다른 리전에 있는 S3 버킷으로 데이터 내보내기를 지원하지 않습니다.
를 사용하여 S3 버킷을 생성하려면AWS CLI
명령 프롬프트에서 다음 create-bucket 명령을 입력합니다. 여기서 LocationConstraint는 로그 데이터를 내보내는 리전입니다.
aws s3api create-bucket --bucketamzn-s3-demo-bucket--create-bucket-configuration LocationConstraint=us-east-2
다음은 예제 출력입니다.
{ "Location": "/amzn-s3-demo-bucket" }
액세스 권한 설정(CLI)
나중에 내보내기 작업을 생성하려면 AmazonS3ReadOnlyAccess IAM 역할 및 다음 권한으로 로그인해야 합니다.
-
logs:CreateExportTask -
logs:CancelExportTask -
logs:DescribeExportTasks -
logs:DescribeLogStreams -
logs:DescribeLogGroups
액세스 권한을 제공하려면 사용자, 그룹 또는 역할에 권한을 추가하세요.
-
의 사용자 및 그룹AWS IAM Identity Center:
권한 세트를 생성합니다. AWS IAM Identity Center 사용자 안내서에서 권한 세트 생성의 지침을 따릅니다.
-
ID 제공업체를 통해 IAM에서 관리되는 사용자:
ID 페더레이션을 위한 역할을 생성합니다. IAM 사용자 설명서의 Create a role for a third-party identity provider (federation)의 지침을 따릅니다.
-
IAM 사용자:
-
사용자가 맡을 수 있는 역할을 생성합니다. IAM 사용자 설명서에서 Create a role for an IAM user의 지침을 따릅니다.
-
(권장되지 않음) 정책을 사용자에게 직접 연결하거나 사용자를 사용자 그룹에 추가합니다. IAM 사용 설명서에서 사용자(콘솔)에 권한 추가의 지침을 따릅니다.
-
S3 버킷에 대한 권한 설정(CLI)
기본적으로 모든 S3 버킷 및 객체는 비공개입니다. 리소스 소유자(버킷을 생성한 계정)만 해당 버킷과 버킷에 포함된 객체에 액세스할 수 있습니다. 그러나 리소스 소유자는 액세스 정책을 작성하여 다른 리소스 및 사용자에게 액세스 권한을 부여할 수 있습니다.
중요
S3 버킷을 더 안전하게 내보내려면 이제 로그 데이터를 S3 버킷으로 내보낼 수 있는 소스 계정 목록을 지정해야 합니다.
다음 예제에서 aws:SourceAccount 키의 계정 ID 목록은 사용자가 로그 데이터를 S3 버킷으로 내보낼 수 있는 계정입니다. aws:SourceArn 키는 작업이 수행되는 리소스가 됩니다. 이를 특정 로그 그룹으로 제한하거나 이 예와 같이 와일드카드를 사용할 수 있습니다.
동일한 계정 내에서 내보내기를 허용하려면 S3 버킷이 생성된 계정의 계정 ID도 포함하는 것이 좋습니다.
S3 버킷에 대한 권한을 설정하려면
-
이름이
policy.json인 파일을 생성하고 다음 액세스 정책을 추가합니다.amzn-s3-demo-bucket을 S3 버킷의 이름으로 변경하고Principal을 로그 데이터(예:us-east-1)를 내보내는 리전의 엔드포인트로 변경합니다. 텍스트 편집기를 사용하여 이 정책 파일을 생성합니다. IAM 콘솔을 사용하지 마세요. -
put-bucket-policy 명령을 사용하여 버킷에 액세스 정책으로 방금 추가한 정책을 설정합니다. 이 정책은 CloudWatch Logs가 S3 버킷으로 로그 데이터를 내보낼 수 있도록 합니다. 버킷 소유자는 내보낸 모든 개체에 대해 모든 권한을 갖게 됩니다.
aws s3api put-bucket-policy --bucket amzn-s3-demo-bucket --policy file://policy.json주의
기존 버킷에 이미 하나 이상의 정책이 연결된 경우 CloudWatch Logs 액세스용 명령문을 해당 정책이나 정책들에 추가합니다. 발생한 권한 집합이 버킷에 액세스하는 사용자에게 적절한지를 여부를 평가하는 것이 좋습니다.
(선택 사항) SSE-KMS(CLI)로 암호화된 대상 Amazon S3 버킷으로 내보내기
이 절차는 서버 측 암호화를 사용하는 S3 버킷으로 내보내는 경우에만 필요합니다AWS KMS keys. 이 암호화를 SSE-KMS라고 합니다.
SSE-KMS로 암호화된 버킷으로 내보내려면
-
텍스트 편집기를 사용하여 이름이
key_policy.json인 파일을 생성하고 다음 액세스 정책을 추가합니다. 정책을 추가할 때 다음과 같이 변경합니다.-
Region을 로그의 리전으로 바꿉니다. -
account-ARN을 KMS 키를 소유하는 계정의 ARN으로 바꿉니다.
-
-
다음 명령을 입력합니다.
aws kms create-key --policy file://key_policy.json다음은 이 명령의 출력 예시입니다.
{ "KeyMetadata": { "AWSAccountId": "account_id", "KeyId": "key_id", "Arn": "arn:aws:kms:us-east-2:account-ARN:key/key_id", "CreationDate": "time", "Enabled": true, "Description": "", "KeyUsage": "ENCRYPT_DECRYPT", "KeyState": "Enabled", "Origin": "AWS_KMS", "KeyManager": "CUSTOMER", "CustomerMasterKeySpec": "SYMMETRIC_DEFAULT", "KeySpec": "SYMMETRIC_DEFAULT", "EncryptionAlgorithms": [ "SYMMETRIC_DEFAULT" ], "MultiRegion": false } -
텍스트 편집기를 사용하여 다음 내용을 포함하는
bucketencryption.json이라는 파일을 생성합니다.{ "Rules": [ { "ApplyServerSideEncryptionByDefault": { "SSEAlgorithm": "aws:kms", "KMSMasterKeyID": "{KMS Key ARN}" }, "BucketKeyEnabled": true } ] } -
다음 명령을 입력하여
amzn-s3-demo-bucket을 로그를 내보내는 버킷의 이름으로 바꿉니다.aws s3api put-bucket-encryption --bucketamzn-s3-demo-bucket--server-side-encryption-configuration file://bucketencryption.json명령이 오류를 반환하지 않으면 프로세스가 성공한 것입니다.
내보내기 작업 생성(CLI)
다음 명령을 사용하여 내보내기 작업을 생성합니다. 생성하고 나면 내보낼 데이터의 크기에 따라 내보내기 작업에 몇 초부터 몇 시간까지 소요될 수 있습니다.
를 사용하여 Amazon S3로 데이터를 내보내려면AWS CLI
-
액세스 권한 설정(CLI)에 설명된 대로 충분한 권한으로 로그인합니다.
-
명령 프롬프트에서 다음 create-export-task 명령을 사용하여 내보내기 작업을 생성합니다.
aws logs create-export-task --profile CWLExportUser --task-name "my-log-group-09-10-2015" --log-group-name "my-log-group" --from1441490400000--to1441494000000--destination "amzn-s3-demo-bucket" --destination-prefix "export-task-output"다음은 예제 출력입니다.
{ "taskId": "cda45419-90ea-4db5-9833-aade86253e66" }
교차 계정 내보내기(CLI)
Amazon S3 버킷이 내보내는 로그와 다른 계정에 있는 경우 이 섹션의 지침을 사용합니다.
주제
교차 계정 내보내기를 위한 S3 버킷 생성(CLI)
CloudWatch Logs를 위해 특별히 생성한 버킷을 사용하는 것이 좋습니다. 그러나 기존 버킷을 사용하고 싶으면 2단계로 건너뛸 수 있습니다.
참고
S3 버킷은 내보내는 로그 데이터와 동일한 리전에 있어야 합니다. CloudWatch Logs는 다른 리전에 있는 S3 버킷으로 데이터 내보내기를 지원하지 않습니다.
를 사용하여 S3 버킷을 생성하려면AWS CLI
명령 프롬프트에서 다음 create-bucket 명령을 입력합니다. 여기서 LocationConstraint는 로그 데이터를 내보내는 리전입니다.
aws s3api create-bucket --bucketamzn-s3-demo-bucket--create-bucket-configuration LocationConstraint=us-east-2
다음은 예제 출력입니다.
{ "Location": "/amzn-s3-demo-bucket" }
교차 계정 내보내기(CLI)에 대한 액세스 권한 설정
먼저 CloudWatch Logs가 대상 계정에서 대상 Amazon S3 버킷에 대한 s3:PutObject 작업을 수행할 수 있도록 하려면 새 IAM 정책을 생성해야 합니다.
s3:PutObject 작업과 함께 정책에 포함된 추가 작업은 대상 버킷이 AWS KMS암호화를 사용하는지 아니면 S3 객체 소유권 설정을 사용하여 ACLs 활성화되어 있는지에 따라 달라집니다.
KMS 암호화를 사용하는 경우 키 리소스에 대한
kms:GenerateDataKey및kms:Decrypt작업을 추가합니다.버킷에서 ACL 활성화된 경우 버킷 리소스에 대한
s3:PutObjectAcl작업을 추가합니다.
다음 정책에서 대상 S3 버킷amzn-s3-demo-bucket의 이름으로를 변경합니다.
생성하는 정책은 대상 버킷의 AWS KMS 암호화 사용 여부에 따라 달라집니다. AWS KMS암호화를 사용하지 않는 경우 다음 내용이 포함된 정책을 생성합니다.
대상 버킷이 AWS KMS암호화를 사용하는 경우 다음 내용이 포함된 정책을 생성합니다.
대상 버킷에서 ACLs 활성화된 경우 위의 정책에서 s3:PutObjectAcl을 s3:PutObject 작업 블록에 추가합니다.
내보내기 작업을 생성하려면 AmazonS3ReadOnlyAccess 관리형 정책이 연결된 IAM 역할, 위에서 생성한 IAM 정책 및 다음 권한으로 로그인해야 합니다.
-
logs:CreateExportTask -
logs:CancelExportTask -
logs:DescribeExportTasks -
logs:DescribeLogStreams -
logs:DescribeLogGroups
액세스 권한을 제공하려면 사용자, 그룹 또는 역할에 권한을 추가하세요.
-
의 사용자 및 그룹AWS IAM Identity Center:
권한 세트를 생성합니다. AWS IAM Identity Center 사용자 안내서에서 권한 세트 생성의 지침을 따릅니다.
-
ID 제공업체를 통해 IAM에서 관리되는 사용자:
ID 페더레이션을 위한 역할을 생성합니다. IAM 사용자 설명서의 Create a role for a third-party identity provider (federation)의 지침을 따릅니다.
-
IAM 사용자:
-
사용자가 맡을 수 있는 역할을 생성합니다. IAM 사용자 설명서에서 Create a role for an IAM user의 지침을 따릅니다.
-
(권장되지 않음) 정책을 사용자에게 직접 연결하거나 사용자를 사용자 그룹에 추가합니다. IAM 사용 설명서에서 사용자(콘솔)에 권한 추가의 지침을 따릅니다.
-
교차 계정 내보내기(CLI)를 위한 S3 버킷에 대한 권한 설정
기본적으로 모든 S3 버킷 및 객체는 비공개입니다. 리소스 소유자(버킷을 생성한 계정)만 해당 버킷과 버킷에 포함된 객체에 액세스할 수 있습니다. 그러나 리소스 소유자는 액세스 정책을 작성하여 다른 리소스 및 사용자에게 액세스 권한을 부여할 수 있습니다.
중요
S3 버킷을 더 안전하게 내보내려면 이제 로그 데이터를 S3 버킷으로 내보낼 수 있는 소스 계정 목록을 지정해야 합니다.
다음 예제에서 aws:SourceAccount 키의 계정 ID 목록은 사용자가 로그 데이터를 S3 버킷으로 내보낼 수 있는 계정입니다. aws:SourceArn 키는 작업이 수행되는 리소스가 됩니다. 이를 특정 로그 그룹으로 제한하거나 이 예와 같이 와일드카드를 사용할 수 있습니다.
동일한 계정 내에서 내보내기를 허용하려면 S3 버킷이 생성된 계정의 계정 ID도 포함하는 것이 좋습니다.
S3 버킷에 대한 권한을 설정하려면
-
라는 파일을 생성하고 대상 S3 버킷의 이름으로 변경
amzn-s3-demo-bucket하여policy.json와 같은 로그 데이터를 내보내는 리전의Principal엔드포인트에 다음 액세스 정책을 추가합니다us-west-1. 텍스트 편집기를 사용하여 이 정책 파일을 생성합니다. IAM 콘솔을 사용하지 마세요. -
put-bucket-policy 명령을 사용하여 버킷에 액세스 정책으로 방금 추가한 정책을 설정합니다. 이 정책은 CloudWatch Logs가 S3 버킷으로 로그 데이터를 내보낼 수 있도록 합니다. 버킷 소유자는 내보낸 모든 개체에 대해 모든 권한을 갖게 됩니다.
aws s3api put-bucket-policy --bucket amzn-s3-demo-bucket --policy file://policy.json주의
기존 버킷에 이미 하나 이상의 정책이 연결된 경우 CloudWatch Logs 액세스용 명령문을 해당 정책이나 정책들에 추가합니다. 발생한 권한 집합이 버킷에 액세스하는 사용자에게 적절한지를 여부를 평가하는 것이 좋습니다.
(선택 사항) 교차 계정 내보내기(CLI)를 위해 SSE-KMS로 암호화된 대상 Amazon S3 버킷으로 내보내기
이 절차는 서버 측 암호화를 사용하는 S3 버킷으로 내보내는 경우에만 필요합니다AWS KMS keys. 이 암호화를 SSE-KMS라고 합니다.
SSE-KMS로 암호화된 버킷으로 내보내려면
-
텍스트 편집기를 사용하여 이름이
key_policy.json인 파일을 생성하고 다음 액세스 정책을 추가합니다. 정책을 추가할 때 다음과 같이 변경합니다.-
us-east-1을 로그의 리전으로 바꿉니다. -
account-ARN을 KMS 키를 소유하는 계정의 ARN으로 바꿉니다. -
123456789012을 KMS 키를 소유한 계정 번호로 바꿉니다. -
kms-key ID가 있는
key_id입니다. -
내보내기 작업을 생성하는 데 사용되는 역할이 포함된
role_name입니다.
-
-
다음 명령을 입력합니다.
aws kms create-key --policy file://key_policy.json다음은 이 명령의 출력 예시입니다.
{ "KeyMetadata": { "AWSAccountId": "account_id", "KeyId": "key_id", "Arn": "arn:aws:kms:us-east-1:123456789012:key/key_id", "CreationDate": "time", "Enabled": true, "Description": "", "KeyUsage": "ENCRYPT_DECRYPT", "KeyState": "Enabled", "Origin": "AWS_KMS", "KeyManager": "CUSTOMER", "CustomerMasterKeySpec": "SYMMETRIC_DEFAULT", "KeySpec": "SYMMETRIC_DEFAULT", "EncryptionAlgorithms": [ "SYMMETRIC_DEFAULT" ], "MultiRegion": false } -
텍스트 편집기를 사용하여 다음 내용을 포함하는
bucketencryption.json이라는 파일을 생성합니다.{ "Rules": [ { "ApplyServerSideEncryptionByDefault": { "SSEAlgorithm": "aws:kms", "KMSMasterKeyID": "{KMS Key ARN}" }, "BucketKeyEnabled": true } ] } -
다음 명령을 입력하여
amzn-s3-demo-bucket을 로그를 내보내는 버킷의 이름으로 바꿉니다.aws s3api put-bucket-encryption --bucketamzn-s3-demo-bucket--server-side-encryption-configuration file://bucketencryption.json명령이 오류를 반환하지 않으면 프로세스가 성공한 것입니다.
교차 계정 내보내기를 위한 내보내기 작업 생성(CLI)
다음 명령을 사용하여 내보내기 작업을 생성합니다. 생성하고 나면 내보낼 데이터의 크기에 따라 내보내기 작업에 몇 초부터 몇 시간까지 소요될 수 있습니다.
를 사용하여 Amazon S3로 데이터를 내보내려면AWS CLI
-
액세스 권한 설정(CLI)에 설명된 대로 충분한 권한으로 로그인합니다.
-
명령 프롬프트에서 다음 create-export-task 명령을 사용하여 내보내기 작업을 생성합니다.
aws logs create-export-task --profile CWLExportUser --task-name "my-log-group-09-10-2015" --log-group-name "my-log-group" --from1441490400000--to1441494000000--destination "amzn-s3-demo-bucket" --destination-prefix "export-task-output"다음은 예제 출력입니다.
{ "taskId": "cda45419-90ea-4db5-9833-aade86253e66" }