

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

# Amazon S3로 전송된 로그
<a name="AWS-logs-infrastructure-V2-S3"></a>

**사용자 권한**

Amazon S3로 로그를 전송하려면 다음 권한으로 로그인해야 합니다.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "ReadWriteAccessForLogDeliveryActions",
            "Effect": "Allow",
            "Action": [
                "logs:GetDelivery",
                "logs:GetDeliverySource",
                "logs:PutDeliveryDestination",
                "logs:GetDeliveryDestinationPolicy",
                "logs:DeleteDeliverySource",
                "logs:PutDeliveryDestinationPolicy",
                "logs:CreateDelivery",
                "logs:GetDeliveryDestination",
                "logs:PutDeliverySource",
                "logs:DeleteDeliveryDestination",
                "logs:DeleteDeliveryDestinationPolicy",
                "logs:DeleteDelivery",
                "logs:UpdateDeliveryConfiguration"
            ],
            "Resource": [
            "arn:aws:logs:{{us-east-1}}:{{111122223333}}:delivery:*",
    "arn:aws:logs:{{us-east-1}}:{{111122223333}}:delivery-source:*",
    "arn:aws:logs:{{us-east-1}}:{{111122223333}}:delivery-destination:*"
            ]
        },
        {
            "Sid": "ListAccessForLogDeliveryActions",
            "Effect": "Allow",
            "Action": [
                "logs:DescribeDeliveryDestinations",
                "logs:DescribeDeliverySources",
                "logs:DescribeDeliveries",
                "logs:DescribeConfigurationTemplates"
            ],
            "Resource": "*"
        },
        {
            "Sid": "AllowUpdatesToResourcePolicyS3",
            "Effect": "Allow",
            "Action": [
                "s3:PutBucketPolicy",
                "s3:GetBucketPolicy"
            ],
            "Resource": "arn:aws:s3:::bucket-name"
        }
    ]
}
```

------

로그가 전송되는 S3 버킷에는 특정 권한을 포함하는 리소스 정책이 있어야 합니다. 버킷에 현재 리소스 정책이 없고 로깅을 설정하는 사용자에게 해당 버킷에 대한 `S3:GetBucketPolicy` 및 `S3:PutBucketPolicy` 권한이 있는 경우 AWS 에서는 로그를 Amazon S3로 전송하기 시작할 때 자동으로 다음 정책을 생성합니다.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Id": "AWSLogDeliveryWrite20150319",
    "Statement": [
        {
            "Sid": "AWSLogDeliveryWrite",
            "Effect": "Allow",
            "Principal": {
                "Service": "delivery.logs.amazonaws.com"
            },
            "Action": "s3:PutObject",
            "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/AWSLogs/account-ID/*",
            "Condition": {
                "StringEquals": {
                    "s3:x-amz-acl": "bucket-owner-full-control",
                    "aws:SourceAccount": [
                        "0123456789"
                    ]
                },
                "ArnLike": {
                    "aws:SourceArn": [
                        "arn:aws:logs:us-east-1:{{111122223333}}:delivery-source:*"
                    ]
                }
            }
        }
    ]
}
```

------

이전 정책에서 `aws:SourceAccount`에 대해 이 버킷으로 로그를 전달할 계정 IDS의 목록을 지정합니다. `aws:SourceArn`에 대해 로그를 생성하는 리소스의 ARN 목록을 `arn:aws:logs:{{source-region}}:{{source-account-id}}:*` 형식으로 지정합니다.

버킷에 리소스 정책이 있지만 해당 정책에 이전 정책에 표시된 명령문이 포함되어 있지 않고 로깅을 설정하는 사용자에게 버킷에 대한 `S3:GetBucketPolicy` 및 `S3:PutBucketPolicy` 권한이 있는 경우 해당 명령문이 로그 그룹의 리소스 정책에 추가됩니다.

**참고**  
경우에 따라에 `s3:ListBucket` 권한이 부여되지 않은 AWS CloudTrail 경우에 `AccessDenied` 오류가 표시될 수 있습니다`delivery.logs.amazonaws.com`. CloudTrail 로그에서 이러한 오류를 방지하려면 `delivery.logs.amazonaws.com`에 `s3:ListBucket` 권한을 부여하고 앞의 버킷 정책에서 설정한 `s3:GetBucketAcl` 권한과 함께 표시된 `Condition` 파라미터를 포함해야 합니다. 이 작업을 더 간단하게 하려면 새 `Statement`을 생성하는 대신 `AWSLogDeliveryAclCheck`을 `“Action”: [“s3:GetBucketAcl”, “s3:ListBucket”]`로 직접 업데이트할 수 있습니다.

## Amazon S3 버킷 서버 측 암호화
<a name="AWS-logs-SSE-KMS-S3-V2"></a>

Amazon S3 S3-managed 키를 사용한 서버 측 암호화(SSE-S3) 또는에 저장된 AWS KMS 키를 사용한 서버 측 암호화 AWS Key Management Service (SSE-KMS)를 활성화하여 Amazon S3 버킷의 데이터를 보호할 수 있습니다. 자세한 내용은 [서버 측 암호화를 사용하여 데이터 보호](https://docs.aws.amazon.com/AmazonS3/latest/userguide/serv-side-encryption.html)를 참조하세요.

SSE-S3를 선택하면 추가 구성이 필요하지 않습니다. Amazon S3는 암호화 키를 처리합니다.

**주의**  
이 시나리오에서는 관리형 키 사용이 지원되지 않으므로 SSE-KMS를 선택하는 경우 고객 AWS 관리형 키를 사용해야 합니다. AWS 관리형 키를 사용하여 암호화를 설정하면 로그가 읽을 수 없는 형식으로 전송됩니다.

고객 관리형 AWS KMS 키를 사용하는 경우 버킷 암호화를 활성화할 때 고객 관리형 키의 Amazon 리소스 이름(ARN)을 지정할 수 있습니다. 로그 전달 계정이 S3 버킷에 쓸 수 있으려면 다음 사항을 S3 버킷의 버킷 정책이 아니라 고객 관리형 키의 키 정책에 추가해야 합니다.

SSE-KMS를 선택하면 해당 시나리오에서는 AWS 관리형 키가 지원되지 않기 때문에 고객 관리형 키를 사용해야 합니다. 고객 관리형 AWS KMS 키를 사용하는 경우 버킷 암호화를 활성화할 때 고객 관리형 키의 Amazon 리소스 이름(ARN)을 지정할 수 있습니다. 로그 전달 계정이 S3 버킷에 쓸 수 있으려면 다음 사항을 S3 버킷의 버킷 정책이 아니라 고객 관리형 키의 키 정책에 추가해야 합니다.

```
{
    "Sid": "Allow Logs Delivery to use the key", 
    "Effect": "Allow", 
    "Principal": {
        "Service": [ "delivery.logs.amazonaws.com" ] 
    }, 
    "Action": [ 
        "kms:Encrypt",
        "kms:Decrypt",
        "kms:ReEncrypt*",
        "kms:GenerateDataKey*",
        "kms:DescribeKey"
    ],
    "Resource": "*",
    "Condition": {
        "StringEquals": {
            "aws:SourceAccount": ["{{0123456789}}"]
        },
        "ArnLike": {
            "aws:SourceArn": ["arn:aws:logs:{{us-east-1}}:{{0123456789}}:delivery-source:*"]
        }
        }
}
```

`aws:SourceAccount`에 대해 이 버킷으로 로그를 전달할 계정 IDS의 목록을 지정합니다. `aws:SourceArn`에 로그를 생성하는 리소스의 ARN 목록을 `arn:aws:logs:{{source-region}}:{{source-account-id}}:*` 형식으로 지정합니다.