티스토리 뷰

반응형

AWS CloudTrail 보안

이 자료는 CloudTrail 사용 시 책임 분담 모델을 적용하는 방법을 이해하는데 도움을 주기 위한 자료이다. 다음 항목에서 보안 및 규정 준수 목표를 충족하기 위해 CloudTrail을 구성하는 방법을 보여준다. 또한 CloudTrail Resource를 모니터링하고 보호하는데 도움이 되는 다른 AWS Service 사용법에 대해서도 소개한다.

 

AWS CloudTrail 데이터 보호

AWS는 데이터 보호를 위해 AWS 계정의 자격 증명을 보호하고, AWS IAM을 사용해 개별 IAM 사용자 계정에 직무에 필요한 권한만을 부여하는 것이 좋다. 또한 다음과 같은 방법으로 데이터를 보호하는 것이 좋다.

  • 각 IAM 사용자에 멀티 팩터 인증(MFA)를 사용한다.
  • SSL/TLS를 사용해 AWS Resource와 통신한다.
  • AWS CloudTrail에서 API와 사용자 활동을 Logging하기 위한 Trail을 생성한다.
  • AWS Service 내의 기본적인 모든 보안 제어와 함께 AWS 암호화 솔루션을 사용한다.
  • Amazon S3에 저장된 개인 데이터를 검색하고 보호하는데 도움이 되는 Amazon Macie와 같은 고급 관리형 보안 서비스를 사용한다.

 

이름 필드와 같은 자유 형식 필드에 고객 계정 번호와 같은 중요한 식별정도를 입력하면 안된다. 여기에는 CloudTrail 또는 기타 AWS Service에서 AWS Management Console, API, AWS CLI, AWS SDK를 사용하여 작업하는 경우가 포함된다.

 

또한 외부서버에 URL(Console에 접속하기 위한)을 제공할 때 해당 서버에 대한 요청을 검증하기 위해 자격 증명 정보를 URL에 포함시키지 마세요.

 

기본적으로 CloudTrail 이벤트 Log 파일은 Amazon S3 SSE(서버측 암호화)를 사용하여 암호화 한다. 선택에 따라서 AWS Key Management Service(AWS KMS) 키를 통해 Log 파일을 암호화할 수도 있다. 그리고 Amazon S3 Bucket에 원하는 기간동안만 저장하도록 할 수 있고, 수명 주기 규칙을 통해 Log 파일을 자동으로 보관하거나 삭제할 수 있다.

 

나중에 소개할 모범사례에서 다루는 CloudTrail 데이터 보호이다.

  • AWS KMS 관리형 키(SSE-KMS)로 CloudTrail Log 파일 암호화
  • CloudTrail에 대한 Amazon S3 Bucket 정책 생성
  • CloudTrail Log 파일에 대한 무결성 검증 활성화 
  • AWS 계정 간 CloudTrail Log 파일 공유

 

CloudTrail Log 파일은 하나 이상의 Amazon S3 Bucket에 저장되기 때문에 개발자 가이드의 데이터 보호정보도 반드시 검토해야 한다.

 

 


AWS CloudTrail에 대한 ID 및 Access 관리

관리자는 AWS Resource에 대한 접근을 안전하게 제어하기 위해 AWS IAM을 사용할 수 있다. AWS IAM을 관리하는 관리자는 CloudTrail Resource를 사용하기 위해 인증(Login)할 수 있거나 권한을 부여할 수 있거나 해당 권한을 보유한 사람을 제어한다.

 

대상

CloudTrail 서비스 사용자

CloudTrail 서비스를 사용해 작업을 수행하는 경우 필요한 자격 증명과 권한을 관리자로부터 제공받아야 한다.

 

CloudTrail  서비스 관리자

CloudTrail Resource를 책임지고 있는 경우 CloudTrail에 대한 전체 접근 권한을 가지고 있다. 관리자는 직원이 접근해야 하는 CloudTrail 기능과 Resource를 결정하고 그를 위한 최소권한을 IAM 사용자에게 부여한다.

 

IAM 서비스 관리자

IAM 서비스 관리자는 CloudTrail에 대한 접근 권한을 관리할 수 있는 정책을 작성하는 방법에 대해서 작성해야하는 상황이 존재할 수 있다.

 

자격 증명을 통한 인증

Amazon Management Console(이메일, IAM 사용자 이름, 비밀번호 사용) or IAM 사용자 Access Key와 Secret Key를 사용 프로그래밍 방식으로 AWS에 접근할 수 있다.(AWS CLI, AWS SDK) 또한 사용하는 자격증명 인증 외에도 추가적인 보안 정보를 제공해야 할 수 있다. 예를 들면 멀티팩터 인증(MFA)를 사용해 계정의 보안을 강화하는 것을 권장한다.

 

AWS 계정 루트 사용자

AWS 계정을 최초 생성시 해당 계정의 모든 AWS 서비스 및 Resource에 대한 접근 권한이 있는 SSO ID로 시작한다. 이러한 자격증명을 AWS 계정 루트 사용자라고 하며, 이메일과 패스워드를 통해 로그인한다.

일상적인 작업은 물론 관리 작업을 수행할때도 루트 사용자를 사용하지 않는 것이 좋다.
(IAM 사용자를 처음 생성할 때만 루트 사용자를 사용하는 것이 모범사례)

 

IAM 사용자 및 그룹

IAM 사용자는 단일 사용자이거나 특정 권한을 가지고 있는 AWS 계정내의 ID이다. IAM 사용자에게는 사용자 이름, 암호(혹은 Access Key 세트)와 같은 장기 자격증명이 있을 수 있다.

Access Key 세트를 생성한 경우 Key Pair를 안전하게 저장해야만 한다. (복구할 수 없다)

IAM 그룹은 IAM 사용자들을 모아 놓은 컬렉션을 지정하는 ID이다. IAM 그룹만으로 로그인할 수 없다. IAM 그룹을 사용해 여러 사용자에게 권한을 한 번에 지정할 수 있다. 이를 통해 대규모 IAM 사용자 권한을 더 쉽게 관리할 수 있다.

 

IAM 역할

IAM 역할은 특정 권한을 가지고 있는 AWS 계정 내의 ID이다. 이러한 역할은 IAM 사용자와 비슷하지만 특정 개인에게 연결되있는 형태가 아니다. 해당 역할이 필요한 IAM 사용자라면 누구에게나 역할을 수임할 수 있다. 그에 따라 해당 IAM 사용자에게 임시 자격증명이 부여된다.

1. 임시 IAM 사용자 권한 부여
 → IAM 사용자는 IAM 역할을 수임하여 특정 작업에 대한 다른 권한을 임시로 받을 수 있다.

2. 연합된 사용자 접근
 → IAM 사용자를 생성하는 대신 AWS Directory Service의 기존 ID, 엔터프라이즈 사용자 디렉터리 또는 웹 ID 공급자를 사용할 수 있다. (이러한 사용자가 연합된 사용자) AWS에서는 ID 공급자를 통한 액세스가 요청되면 연합된 사용자에게 IAM 역할을 할당한다.

3. 교차 계정 접근
 → IAM 역할을 사용해 다른 AWS 계정의 사용자가 내 AWS 계정의 Resource에 액세스할 수 있도록 할 수 있다. 이때 다른 AWS 계정의 사용자는 신뢰할 수 있는 보안 주체여야 한다.

4. AWS 서비스 접근
 → 서비스 역할은 서비스가 IAM 사용자 계정을 대신해 작업을 수행하기 위해 가정하는 IAM 역할이다. 일부 AWS 서비스 환경을 설정할 때는 서비스 역할을 정의해야 한다. 이 서비스 역할에는 서비스가 AWS Resource에 액세스 하는 데 필요한 모든 권한이 포함되어야 한다.
 서비스 역할은 해당 AWS 계정 내의 액세스 권한만을 제공한다.

5. Amazon EC2에서 실행중인 Application
 → IAM 역할을 통해 Amazon EC2 인스턴스에서 실행되고 AWS CLI 또는 AWS API 요청을 하는 응용 프로그램의 임시 자격증명을 관리할 수 있다. 이는 Amazon EC2 인스턴스 내에 Access Key 세트를 저장할 때 권장되는 방법이다.

 

 

정책을 사용하여 액세스 관리

자격증명 기반 정책은 IAM 사용자, 역할 또는 그룹과 같은 자격증명을 연결할 수 있는 JSON 권한 정책 문서이다. 이러한 정책은 자격증명이 수행할 수 있는 작업, 대상 Resource 및 이에 관한 조건을 제어한다.

 

자격증명 기반 정책은 인라인 정책과 관리형 정책으로 분류할 수 있다. 인라인 정책은 단일 사용자, 그룹, 역할에 직접 포함된다. 관리형 정책은 AWS 계정에 속한 다수의 사용자, 그룹, 역할에 독립적으로 추가할 수 있는 정책이다.

 

리소스 기반 정책

Resource 기반 정책은 Amazon S3 Bucekt과 같은 Resource에 연결하는 JSON 정책 문서이다. 서비스 관리자는 이러한 정책을 사용해 지정된 보안 주체(계정 멤버, 사용자 또는 역할)가 해당 Resource에 대해 수행할 수 있는 작업과 어떤 조건에서 수행할 수 있는지를 정의하게 된다.

Resource 기반 정책은 오직 인라인 정책으로만 추가가 가능하다.

 

ACL(액세스 제어 목록)

ACL(Access Control List)는 Resource에 접근할 수 있는 권한을 가진 보안 주체를 제어하는 정책의 유형이다. ACL은 Resource 기반 정책과 유사하지만 JSON 정책 문서 형식이 아니다. Amazon S3 Bucekt, AWS WAF 및 Amazon VPC는 ACL을 지원하는 서비스의 예이다. (모든 서비스에 존재하는 것은 아니다.)

 

기타 정책 유형

AWS는 비교적 일반적이지 않은 추가 정책 유형을 제공한다.

권한 경계
서비스 제어정책(SCP)
세션 정책

 

 


AWS CloudTrail에서 IAM을 사용하는 방식

AWS IAM을 사용해 CloudTrail에 대한 액세스를 관리하려면 우선 어떤 IAM 기능을 CloudTrail에 사용할 수 있는지 이해해야한다.  CloudTrail은 IAM 자격증명 기반 정책을 사용하고, Resource 기반 정책을 사용하지 않는다.

 

자격증명 기반 정책 및 리소스 기반 정책

 

Identity-based policies and resource-based policies - AWS Identity and Access Management

Identity-based policies and resource-based policies A policy is an object in AWS that, when associated with an identity or resource, defines their permissions. When you create a permissions policy to restrict access to a resource, you can choose an identit

docs.aws.amazon.com

 

CloudTrail 자격증명 기반 정책

IAM 자격증명 기반 정책을 사용하면 허용되거나 거부되는 작업, Resource뿐만 아니라 허용되거나 거부되는데 조건까지 지정할 수 있다.

 

Actions

IAM 자격증명 기반 정책의 Action 요소는 정책에 따라 허용되거나 거부되는 특정 작업에 대해 설명하는 요소이다.  일반적으로 정책 작업의 이름은 연결된 AWS API 작업의 이름과 동일하다. 이 작업은 연결된 작업을 수행할 수 있는 권한을 부여하기 위한 정책에서 사용된다.

 

한마디로 그냥 여기에 적힌 API 작업들에 대한 적책임을 나타내는 것이다.

 

CloudTrail의 정책 작업은 작업 앞에 cloudtrail: 접두사를 사용한다. 

"Action": [
	"cloudtrail:AddTags",
    "cloudtrail:ListTags",
    "cloudtrail:RemoveTags"
]

"Action": "cloudtrail:Get*" // 와일드 카드 * 사용해 여러 작업을 지정

 

Resource

Resource의 요소는 작업(Action)이 적용되는 대상을 지정한다. ARN을 사용하거나 Statement가 모든 Resource에 적용됨을 표시하는 와일드 카드를 사용하여 Resource를 지정할 수 있다.

 

CloudTrail의 기본 Resource는 Trail이다. 각 Resource에는 고유의 ARN이 연결되어 있다. 정책에서 ARN을 사용해 정책이 적용되는 Resource를 사용하게 된다.

arn:${Partition}:cloudtrail:${Region}:${Account]:trail/{TrailName}

 

Resource는 아래와 같은 예시 정책과 같이 지정할 수 있다.

"Resource": "arn:aws:cloudtrail:us-east-2:123456789012:trail/My-Trail"

"Resource": "arn:aws:cloudtrail:us-east-2:123456789012:trail/*"

"Resource": "*"

"Resource": [
      "resource1",
      "resource2"
]

 

대부분의 CloudTrail API 작업에는 여러 Resource가 관련된다. 예를 들어, CreateTrail에는 Log 파일을 저장하기 위한 Amazon S3 Bucket이 필요하기 때문에 IAM 사용자는 Bucket에 쓸 수 있는 권한을 보유하고 있어야 한다.

 

Condition Keys

Condition 요소 또는 블록을 사용하면 정책이 발효되는 조건을 지정할 수 있다. (Condition 요소는 선택 사항이다. 없어도 된다는 말이다.) 조건 연산자를 사용해 정책의 조건을 요청의 값에 대입해 조건식을 생성할 수 있다.

 

또한 AND, OR 작업을 사용해 조건식을 구성할 수 있다.

 

예를 들어, IAM 사용자에게 IAM 사용자 이름으로 태그가 지정된 경우에만 Resource에 액세스할 수 있는 권한을 부여할 수 있다. CloudTrail에 지원되는 Condition Keys 목록을 확인하려면 아래 페이지를 보자.

 

Condition Keys for AWS CloudTrail

 

Actions, resources, and condition keys for AWS CloudTrail - AWS Identity and Access Management

For policies that control access to CloudTrail actions, the Resource element is always set to "*". For information about using resource ARNs in an IAM policy, see Granting Custom Permissions in the AWS CloudTrail User Guide.

docs.aws.amazon.com

 

CloudTrail 태그 기반 권한 부여

Tag를 CloudTrail Resource에 연결할 수 있지만, CloudTrail은 태그 기반 액세스 제어를 지원하지는 않는다.

 

CloudTrail IAM 역할

CloudTrail에서 임시 자격증명 사용

임시 자격증명을 사용해 페더레이션(?)을 통해 로그인하거나, IAM 역할을 수임하거나, 교차 계정 역할을 수임할 수 있다. AssumeRole 또는 GetFederationToken과 같은 AWS STS API를 호출해 임시 보안 자격증명을 가져온다.

 

서비스 연결 역할

서비스 연결 역할을 사용하면 AWS 제품이 다른 서비스의 Resource에 액세스하여 사용자 대신 작업을 완료할 수 있다. 서비스 연결 역할은 IAM 계정에 나타나고, 서비스가 소유한다. IAM 관리자는 서비스 연결 역할의 권한을 볼 수 있지만 편집할 수는 없다.

 

CloudTrail은 AWS Organizations를 통해 서비스 연결 역할을 지원한다. 이 역할은 한 조직의 모든 AWS 계정에 대한 이벤트를 Logging하는 Trail인 조직 Trail의 생성에 필요하다.

 

서비스 역할

이 기능을 사용하면 서비스가 사용자를 대신해 서비스 역할을 맡을 수 있다. 또 서비스는 다른 서비스의 Resource에 액세스해 사용자를 대신해 작업을 완료할 수 있다. 서비스 역할은 IAM 계정에 나타나고 해당 계정이 소유한다. 즉, IAM 관리자는 이 역할에 대한 권한을 변경할 수 없다.

 

 


자격증명 기반 정책 예제

기본적으로 IAM 사용자 및 역할은 CloudTrail Resource를 생성하거나 수정할 수 있는 권한이 없다. IAM 관리자는 지정된 Resource에 특정 API 작업을 수행할 수 있는 권한을 IAM 사용자와 역할에게 부여하는 IAM 정책을 생성해 연결해야 한다.

 

정책 모범 사례

자격증명 기반 정책은 매우 강력한 방법이다. 이 정책은 계정에서 사용자가 CloudTrail Resource를 생성,. 액세스, 삭제할 수 있는지 여부를 결정한다.

 

자격증명 기반 정책을 생성하거나 편집할 떄는 다음 권장사항을 따라야 한다.

  • AWS 관리형 정책을 사용하여 시작하기
    CloudTrail 사용을 빠르게 시작하려면 AWS 관리형 정책을 사용하여 필요한 권한을 부여할 수 있다.
    (관리형 정책은 이미 계정에서 사용할 수 있도록 AWS에 의해 제공/관리된다.)
  • 최소 권한 부여
    사용자 지정 정책을 생성할 때는 작업을 수행하는데 필요한 최소한의 권한만 부여해야 한다.
    (최소 권한 부여 참조 페이지)
  • 중요한 작업에 대해 MFA 활성화
    보안을 강화하기 위해 IAM 사용자가 중요한 Resource 또는 API 작업에 액세스하려면 멀티팩터 인증(MFA)를 사용하도록 설정해야 한다.
  • 보안 강화를 위해 정책 조건 사용
    자격증명 기반 정책이 Resource에 대한 액세스를 허용하는 조건을 정의한다. 예를 들어 요청을 할 수 있는 IP주소의 범위를 지정하도록 조건을 작성할 수 있다. 지정된 날짜 또는 시간 범위 내에서만 요청을 허용하거나, SSL 또는 MFA를 사용해야 하는 조건을 작성할수도 있다.

 

예제: 지정된 Trail에 대한 작업 허용 및 거부

이 정책이 있는 IAM 사용자가 Trail의 상태와 구성을 보고 My-First-Trail이라는 추적에 대한 로깅을 시작 및 중지하도록 허용하는 정책을 보여준다. 이 Trail은 ID가 123456789012인 AWS 계정의 미국 동부리전에서 생성되었다.

{
  "Version": "2012-10-17",
  "Statement": [
      {
          "Effect": "Allow",
          "Action": [
              "cloudtrail:StartLogging",
              "cloudtrail:StopLogging",
              "cloudtrail:GetTrail",
              "cloudtrail:GetTrailStatus",
              "cloudtrail:GetEventSelectors"
          ],
          "Resource": [
              "arn:aws:cloudtrail:us-east-2:123456789012:trail/My-First-Trail"
          ]
      }
  ]
}

 

다음 예제는 이름이 My-First-Trail이 아닌 모든 추적에 대한 CloudTrail 작업을 명시적으로 거부하는 정책을 보여준다.

{
  "Version": "2012-10-17",
  "Statement": [
      {
          "Effect": "Deny",
          "Action": [
              "cloudtrail:*"
          ],
          "NotResource": [
              "arn:aws:cloudtrail:us-east-2:123456789012:trail/My-First-Trail"
          ]
      }
  ]
}

 

 

예제: 특정 Trail 작업에 대한 정책 생성 및 적용

권한과 정책을 사용하여 CloudTrail Trail에서 사용자가 특정 작업을 수행하는 기능을 제어할 수 있다.

 

예를 들어 회사 개발자 그룹에 소속된 사용자는 특정 Trail에 대한 Logging을 시작하거나 중지해서는 안 되지만 Trail에서 DescribeTrails 및 GetTrailStatus 작업을 수행할 권한을 부여할 필요가 있다.

 

첫 번째 정책에서 지정한 Trail ARN에 대한 StartLogging 및 StopLogging 작업을 Deny한다. 

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "Stmt1446057698000",
            "Effect": "Deny",
            "Action": [
                "cloudtrail:StartLogging",
                "cloudtrail:StopLogging"
            ],
            "Resource": [
                "arn:aws:cloudtrail:us-east-2:123456789012:trail/Example-Trail"
            ]
        }
    ]
}

 

두 번째 정책에서 DescribeTrails 및 GetTrailStatus 작업은 모든 CloudTrail Resource에서 허용된다.

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "Stmt1446072643000",
            "Effect": "Allow",
            "Action": [
                "cloudtrail:DescribeTrails",
                "cloudtrail:GetTrail",
                "cloudtrail:GetTrailStatus"
            ],
            "Resource": [
                "*"
            ]
        }
    ]
}

 

 

CloudTrail AWS Management Console을 사용해 권한 부여

CloudTrail 관리에 대한 권한 부여

사용자가 CloudTrail에서 Trail을 관리할 수 있게 하려면 IAM 사용자가 CloudTrail 작업과 연관된 작업을 수행하도록 명시적 권한을 허용해야 한다. 대부분 시나리오에서 사전 정의된 AWS 관리형 정책을 사용할 수 있다.

 

CloudTrail 관리 작업을 수행하기 위해 IAM 사용자에게 권한을 부여하는 것은 Log 파일을 Amazon S3 Bucket으로 전달하거나 Amazon SNS 주제로 알림을 보내기 위해 CloudTrail 자체에서 필요한 권한과 다르다.

Amazon CloudWatch Logs와 통합을 구성하는 경우 CloudTrail에는 Amazon CloudWatch Logs 로그 그룹에 이벤트를 전달하기 위해 수임할 수 있는 역할도 필요하다. 이렇게 하려면 역할을 생성하기 위한 추가 권한뿐 아니라 역할 자체도 필요하다.

 

일반적인 접근 방법은 적합한 권한이 있는 IAM 그룹을 만든 후 개별 IAM 사용자를 그룹에 추가하는 것이다. 늘 이야기 나오는 것이 IAM 사용자에 직접 정책을 부여하는게 아니라 IAM 그룹, 역할에 부여해라.

 

CloudTrail 접근을 위한 IAM 그룹과 사용자 생성하는 법

1. IAM Console을 연다.

2. Groups를 선택해서 Create New Group을 선택한다.

3. 이름을 입력한 후 Next Step을 선택한다.

4. 정책 연결 페이지에서 CloudTrail에 대한 다음 정책을 찾아서 그 중 하나를 선택한다.

  - AWSCloudTrailFullAccess

  - AWSCloudTrailReadOnlyAccess

5. Next Step을 선택한다.

6. 생성하려는 그룹의 정보를 검토한다.

7. Create Group을 선택한다.

8. 생성한 그룹 이름을 선택하고 Group Actions를 선택한 후 Add Users to Group을 선택한다.

9. 그룹에 사용자 추가 페이지에서 기존의 IAM 사용자를 선택한 후 사용자 추가를 선택한다.

10. 새 사용자를 선택한 후 탐색창에서 Users를 선택하고 각 사용자에 대해 다음 과정을 완료한다.

  a) 사용자를 선택한다.

  b) 사용자가 콘솔을 사용하여 CloudTrail을 관리한다면 Security Credentials 탭에서

     Manage Password를 선택한 후 사용자 암호를 생성한다.

  c) 사용자가 AWS CLI, API를 사용해 CloudTrail을 관리한다면 Access Key 페어를 아직 생성

     하지 않았다면 Security Credentials탭에서 Manage Access Keys를 선택한 후 생성한다.

  d) 각 사용자에게 해당 자격 증명을 제공한다.

 

 

사용자가 자신이 권한을 볼 수 있도록 허용

이 예제는 IAM 사용자가 자신의 사용자 자격증명이 연결된 인라인 정책 또는 관리형 정책을 볼 수 있도록 허용하는 정책을 생성하는 방법을 보여준다.

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "ViewOwnUserInfo",
            "Effect": "Allow",
            "Action": [
                "iam:GetUserPolicy",
                "iam:ListGroupsForUser",
                "iam:ListAttachedUserPolicies",
                "iam:ListUserPolicies",
                "iam:GetUser"
            ],
            "Resource": ["arn:aws:iam::*:user/${aws:username}"]
        },
        {
            "Sid": "NavigateInConsole",
            "Effect": "Allow",
            "Action": [
                "iam:GetGroupPolicy",
                "iam:GetPolicyVersion",
                "iam:GetPolicy",
                "iam:ListAttachedGroupPolicies",
                "iam:ListGroupPolicies",
                "iam:ListPolicyVersions",
                "iam:ListPolicies",
                "iam:ListUsers"
            ],
            "Resource": "*"
        }
    ]
}

 

CloudTrail 사용자에 대한 사용자 지정 권한 부여

사용자에게 다른 권한을 허용해야 하는 경우 CloudTrail 정책을 IAM 그룹이나 사용자에게 연결할 수 있다. 특정 권한을 포함하거나 제외하도록 정책을 편집할 수 있다. 또한 사용자 고유의 사용자 지정 정책을 만들수도 있다.

 

읽기 전용 액세스

다음 예제는 CloudTrail Trail에 대한 읽기 전용 액세스를 허용하는 정책이다. 이 정책은 관리형 정책인 AWSCloudTrailReadOnlyAccess와 동일하다.

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "s3:GetObject",
        "s3:GetBucketLocation"
      ],
      "Resource": "*"
    },
    {
      "Effect": "Allow",
      "Action": [
        "cloudtrail:DescribeTrails",
        "cloudtrail:GetTrail",
        "cloudtrail:GetTrailStatus",
        "cloudtrail:LookupEvents",
        "cloudtrail:ListPublicKeys",
        "cloudtrail:ListTags",
        "s3:ListAllMyBuckets",
        "kms:ListAliases",
        "lambda:ListFunctions"
      ],
      "Resource": "*"
    }
  ]
}

 

모든 액세스

다음 예제는 CloudTrail에 대한 모든 액세스를 허용하는 정책이다. 이 정책은 관리형 정책인 AWSCloudTrailFullAccess와 동일하다.

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "sns:AddPermission",
        "sns:CreateTopic",
        "sns:DeleteTopic",
        "sns:ListTopics",
        "sns:SetTopicAttributes",
        "sns:GetTopicAttributes"
      ],
      "Resource": "*"
    },
    {
      "Effect": "Allow",
      "Action": [
        "s3:CreateBucket",
        "s3:DeleteBucket",
        "s3:ListAllMyBuckets",
        "s3:PutBucketPolicy",
        "s3:ListBucket",
        "s3:GetObject",
        "s3:GetBucketLocation",
        "s3:GetBucketPolicy"
      ],
      "Resource": "*"
    },
    {
      "Effect": "Allow",
      "Action": "cloudtrail:*",
      "Resource": "*"
    },
    {
      "Effect": "Allow",
      "Action": [
        "logs:CreateLogGroup"
      ],
      "Resource": "*"
    },
    {
      "Effect": "Allow",
      "Action": [
        "iam:ListRoles",
        "iam:GetRolePolicy",
        "iam:GetUser"
      ],
      "Resource": "*"
    },
    {
      "Effect": "Allow",
      "Action": [
        "iam:PassRole"
      ],
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "iam:PassedToService": "cloudtrail.amazonaws.com"
        }
      }
    },
    {
      "Effect": "Allow",
      "Action": [
        "kms:ListKeys",
        "kms:ListAliases"
      ],
      "Resource": "*"
    },
    {
      "Effect": "Allow",
      "Action": [
        "lambda:ListFunctions"
      ],
      "Resource": "*"
    }
  ]
}

 

CloudTrail Console에서 AWS Config 정볼를 볼 수 있는 권한 부여

이벤트와 관련된 Resource를 포함한 이벤트 정보를 CloudTrail Console에서 볼 수 있다. 이러한 Resource에서 AWS Config 아이콘을 선택해 AWS Config Console의 해당 Resource에 대한 타임라인을 볼 수 있다.

{
    "Version": "2012-10-17",
    "Statement": [{
        "Effect": "Allow",
        "Action": [
            "config:Get*",
            "config:Describe*",
            "config:List*"
        ],
        "Resource": "*"
    }]
}

 

Amazon CloudWatch Logs Console에서 CloudTrail 정보를 보고 구성할 수 있는 권한 부여

충분한 권한이 있는 경우 CloudTrail Console에서 CloudWatch Logs에 대한 이벤트 전송을 보고 구성할 수 있다. 이러한 권한은 CloudTrail 관리자에게 부여되는 권한을 벗어날 수 있다. CloudWatch Logs와 CloudTrail 통합을 구성하고 관리하는 관리자에게 이 정책을 연결한다.

{
    "Version": "2012-10-17",
    "Statement": [{
        "Effect": "Allow",
        "Action": [
            "iam:CreateRole"
            "iam:PutRolePolicy"
            "iam:ListRoles"
            "iam:GetRolePolicy"
            "iam:GetUser"
        ],
        "Resource": "*"
    }]
}

 

반응형
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함