

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

# AWS CloudTrail 리소스 기반 정책 예제
<a name="security_iam_resource-based-policy-examples"></a>

이 섹션에서는 CloudTrail Lake 대시보드, 이벤트 데이터 스토어 및 채널에 대한 리소스 기반 정책의 예를 제공합니다.

CloudTrail은 다음과 같은 유형의 리소스 기반 정책을 지원합니다.
+ CloudTrail Lake와 외부 이벤트 소스의 통합에 사용되는 채널에 대한 리소스 기반 정책입니다 AWS. 채널의 리소스 기반 정책은 이벤트를 대상 이벤트 데이터 스토어에 전달하기 위해 채널에서 `PutAuditEvents`를 호출할 수 있는 보안 주체 엔터티(계정, 사용자, 역할 및 페더레이션 사용자)를 정의합니다. CloudTrail Lake와의 통합 생성에 대한 자세한 내용은 [외부의 이벤트 소스와 통합 생성 AWS](query-event-data-store-integration.md)의 내용을 참조하세요.
+ 이벤트 데이터 스토어에서 작업을 수행할 수 있는 위탁자를 제어할 수 있는 리소스 기반 정책. 리소스 기반 정책을 사용하여 이벤트 데이터 스토어에 대한 교차 계정 액세스를 제공할 수 있습니다.
+ 대시보드에 대한 새로 고침 일정을 설정할 때 CloudTrail이 정의한 간격으로 CloudTrail Lake 대시보드를 새로 고칠 수 있도록 허용하는 대시보드의 리소스 기반 정책입니다. 자세한 내용은 [CloudTrail 콘솔을 사용하여 사용자 지정 대시보드의 새로 고침 일정 설정](lake-dashboard-refresh.md) 단원을 참조하십시오.

**Topics**
+ [채널용 리소스 기반 정책 예제](#security_iam_resource-based-policy-examples-channels)
+ [이벤트 데이터 스토어의 리소스 기반 정책 예시](#security_iam_resource-based-policy-examples-eds)
+ [대시보드용 리소스 기반 정책 예시](#security_iam_resource-based-policy-examples-dashboards)

## 채널용 리소스 기반 정책 예제
<a name="security_iam_resource-based-policy-examples-channels"></a>

채널의 리소스 기반 정책은 이벤트를 대상 이벤트 데이터 스토어에 전달하기 위해 채널에서 `PutAuditEvents`를 호출할 수 있는 보안 주체 엔터티(계정, 사용자, 역할 및 페더레이션 사용자)를 정의합니다.

정책에 필요한 정보는 통합 유형에 따라 결정됩니다.
+ 직접 통합의 경우 CloudTrail은 파트너의 AWS 계정 ID를 정책에 포함하도록 요구하고, 파트너가 제공한 고유한 외부 ID를 입력하도록 요구합니다. CloudTrail 콘솔을 사용하여 통합을 생성할 때 CloudTrail은 리소스 정책에 파트너의 AWS 계정 IDs를 자동으로 추가합니다. 정책에 필요한 AWS 계정 번호를 가져오는 방법을 알아보려면 [파트너의 설명서를](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/query-event-data-store-integration.html#cloudtrail-lake-partner-information#lake-integration-partner-documentation) 참조하세요.
+ 솔루션 통합의 경우 하나 이상의 AWS 계정 ID를 보안 주체로 지정해야 하며 선택적으로 외부 ID를 입력하여 혼동된 대리자를 방지할 수 있습니다.

다음은 리소스 기반 정책에 대한 요구 사항입니다.
+  정책에는 하나 이상의 정책 문이 포함됩니다. 정책은 최대 20개의 문을 보유할 수 있습니다.
+  각 문에는 하나 이상의 보안 주체가 포함됩니다. 위탁자는 계정, 사용자, 역할 또는 페더레이션 사용자일 수 있습니다. 문에는 최대 50개의 보안 주체가 있을 수 있습니다.
+ 정책에 정의된 리소스 ARN은 정책이 연결된 채널 ARN과 일치해야 합니다.
+  정책에는 `cloudtrail-data:PutAuditEvents`의 한 가지 작업만 포함됩니다.

정책에서 소유자의 리소스 액세스를 거부하지 않는 한 채널 소유자는 채널에서 `PutAuditEvents` API를 호출할 수 있습니다.

**Topics**
+ [예: 보안 주체에 채널 액세스 제공](#security_iam_resource-based-policy-examples-principals)
+ [예제: 외부 ID를 사용하여 혼동된 대리자 문제 방지](#security_iam_resource-based-policy-examples-externalID)

### 예: 보안 주체에 채널 액세스 제공
<a name="security_iam_resource-based-policy-examples-principals"></a>

다음 예제에서는 ARN `arn:aws:iam::111122223333:root`, `arn:aws:iam::444455556666:root` 및 `arn:aws:iam::123456789012:root`에 ARN `arn:aws:cloudtrail:us-east-1:777788889999:channel/EXAMPLE-80b5-40a7-ae65-6e099392355b`를 사용하여 CloudTrail 채널에서 [PutAuditEvents](https://docs.aws.amazon.com/awscloudtraildata/latest/APIReference/API_PutAuditEvents.html) API를 호출하는 권한을 부여합니다.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement":
    [
        {
            "Sid": "ChannelPolicy",
            "Effect": "Allow",
            "Principal":
            {
                "AWS":
                [
                    "arn:aws:iam::{{111122223333}}:root",
                    "arn:aws:iam::444455556666:root",
                    "arn:aws:iam::123456789012:root"
                ]
            },
            "Action": "cloudtrail-data:PutAuditEvents",
            "Resource": "arn:aws:cloudtrail:us-east-1:777788889999:channel/EXAMPLE-80b5-40a7-ae65-6e099392355b"
        }
    ]
}
```

------

### 예제: 외부 ID를 사용하여 혼동된 대리자 문제 방지
<a name="security_iam_resource-based-policy-examples-externalID"></a>

다음 예제에서는 외부 ID를 사용하여 [혼동된 대리자](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cross-service-confused-deputy-prevention.html) 문제를 방지합니다. 혼동된 대리자 문제는 작업을 수행할 권한이 없는 엔터티가 권한이 더 많은 엔터티에게 작업을 수행하도록 강요할 수 있는 보안 문제입니다.

통합 파트너는 정책에서 사용할 외부 ID를 생성합니다. 그리고 통합 생성의 일부로 외부 ID를 제공합니다. 이 값은 암호 또는 계정 번호와 같은 어떤 고유한 문자열도 가능합니다.

예제에서는 ARN `arn:aws:iam::111122223333:root`, `arn:aws:iam::444455556666:root` 및 `arn:aws:iam::123456789012:root`를 사용하는 보안 주체에 `PutAuditEvents` API 호출에 정책에 포함된 외부 ID 값이 포함된 경우 CloudTrail 채널 리소스에 [PutAuditEvents](https://docs.aws.amazon.com/awscloudtraildata/latest/APIReference/API_PutAuditEvents.html) API를 호출하는 권한을 부여합니다.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement":
    [
        {
            "Sid": "ChannelPolicy",
            "Effect": "Allow",
            "Principal":
            {
                "AWS":
                [
                    "arn:aws:iam::{{111122223333}}:root",
                    "arn:aws:iam::444455556666:root",
                    "arn:aws:iam::123456789012:root"
                ]
            },
            "Action": "cloudtrail-data:PutAuditEvents",
            "Resource": "arn:aws:cloudtrail:us-east-1:777788889999:channel/EXAMPLE-80b5-40a7-ae65-6e099392355b"
        }
    ]
}
```

------

## 이벤트 데이터 스토어의 리소스 기반 정책 예시
<a name="security_iam_resource-based-policy-examples-eds"></a>

리소스 기반 정책을 사용하면 이벤트 데이터 스토어에서 작업을 수행할 수 있는 위탁자를 제어할 수 있습니다.

리소스 기반 정책을 사용하여 교차 계정 액세스를 제공하면 선택한 위탁자가 이벤트 데이터 스토어를 쿼리하고, 쿼리를 나열 및 취소하고, 쿼리 결과를 확인하도록 할 수 있습니다.

CloudTrail Lake 대시보드의 경우 리소스 기반 정책을 사용하여 대시보드를 새로 고칠 때 CloudTrail가 쿼리를 실행하여 대시보드 위젯의 데이터를 채우도록 허용할 수 있습니다. CloudTrail Lake는 CloudTrail 콘솔에서 [사용자 지정 대시보드를 생성](lake-dashboard-custom.md)하거나 [Highlights 대시보드를 활성화](lake-dashboard-highlights.md)할 때 이벤트 데이터 스토어에 기본 리소스 기반 정책을 연결하는 옵션을 제공합니다.

이벤트 데이터 스토어의 리소스 기반 정책에서 지원되는 작업은 다음과 같습니다.
+  `cloudtrail:StartQuery` 
+  `cloudtrail:CancelQuery` 
+  `cloudtrail:ListQueries` 
+  `cloudtrail:DescribeQuery` 
+  `cloudtrail:GetQueryResults` 
+  `cloudtrail:GenerateQuery` 
+  `cloudtrail:GenerateQueryResultsSummary` 
+  `cloudtrail:GetEventDataStore` 

CloudTrail 콘솔에서 이벤트 데이터 스토어를 [생성](query-event-data-store-cloudtrail.md#query-event-data-store-cloudtrail-procedure) 또는 [업데이트](query-event-data-store-update.md)하거나 대시보드를 관리할 때 이벤트 데이터 스토어에 리소스 기반 정책을 추가할 수 있는 옵션이 제공됩니다. [put-resource-policy](https://docs.aws.amazon.com/cli/latest/reference/cloudtrail/put-resource-policy.html) 명령을 실행하여 리소스 기반 정책을 이벤트 데이터 스토어에 연결할 수도 있습니다.

리소스 기반 정책에는 하나 이상의 문이 포함됩니다. 예를 들어 CloudTrail이 대시보드에 대한 이벤트 데이터 스토어를 쿼리하도록 허용하는 문 하나와 이벤트 데이터 스토어를 쿼리하기 위해 교차 계정 액세스를 허용하는 다른 문 하나를 포함할 수 있습니다. CloudTrail 콘솔의 이벤트 데이터 스토어 세부 정보 페이지에서 기존 이벤트 데이터 스토어의 리소스 기반 정책을 [업데이트](query-event-data-store-update.md)할 수 있습니다.

[조직 이벤트 데이터 스토어](cloudtrail-lake-organizations.md)의 경우 CloudTrail은 위임된 관리자 계정이 조직 이벤트 데이터 스토어에서 수행할 수 있는 작업을 나열하는 [기본 리소스 기반 정책](cloudtrail-lake-organizations.md#cloudtrail-lake-organizations-eds-rbp)을 생성합니다. 이 정책의 권한은 AWS Organizations의 위임된 관리자 권한에서 파생됩니다. 이 정책은 조직의 이벤트 데이터 스토어 또는 조직이 변경되면(예: CloudTrail의 위임된 관리자 계정이 등록 또는 제거됨) 자동으로 업데이트됩니다.

**Topics**
+ [예시: CloudTrail이 쿼리를 실행하여 대시보드를 새로 고치도록 허용](#security_iam_resource-based-policy-examples-eds-dashboard)
+ [예: 다른 계정이 이벤트 데이터 스토어를 쿼리하고 쿼리 결과를 볼 수 있도록 허용](#security_iam_resource-based-policy-examples-eds-query)

### 예시: CloudTrail이 쿼리를 실행하여 대시보드를 새로 고치도록 허용
<a name="security_iam_resource-based-policy-examples-eds-dashboard"></a>

새로 고침 중에 CloudTrail Lake 대시보드에 데이터를 채우려면 CloudTrail이 사용자를 대신하여 쿼리를 실행하도록 허용해야 합니다. 이렇게 하려면 CloudTrail이 위젯의 데이터를 채우는 `StartQuery` 작업을 수행할 수 있는 문이 포함된 대시보드 위젯과 연결된 각 이벤트 데이터 스토어에 리소스 기반 정책을 연결합니다.

다음은 해당 문에 대한 기본 요구 사항입니다.
+ 유일한 `Principal`은 `cloudtrail.amazonaws.com`입니다.
+ 허용되는 유일한 `Action`은 `cloudtrail:StartQuery`입니다.
+ 에는 대시보드 ARN(들)과 AWS 계정 ID`Condition`만 포함됩니다. `AWS:SourceArn`의 경우 대시보드 ARN 배열을 제공할 수 있습니다.

다음 예제 정책에는 CloudTrail이 `example-dashboard1` 및 `example-dashboard2`라는 사용자 지정 대시보드 2개와 계정 `123456789012`의 `AWSCloudTrail-Highlights`라는 Highlights 대시보드에 대한 이벤트 데이터 스토어에서 쿼리를 실행할 수 있도록 허용하는 문이 포함되어 있습니다.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement":
    [
        {
            "Effect": "Allow",
            "Principal":
            {
                "Service": "cloudtrail.amazonaws.com"
            },
            "Action":
            [
                "cloudtrail:StartQuery"
            ],
            "Resource": "arn:aws:cloudtrail:{{us-east-1}}:{{123456789012}}:dashboard/*",
            "Condition": {
               "StringLike": {
                  "AWS:SourceArn": [
                     "arn:aws:cloudtrail:us-east-1:123456789012:dashboard/example-dashboard1",
                     "arn:aws:cloudtrail:us-east-1:123456789012:dashboard/example-dashboard2",
                     "arn:aws:cloudtrail:us-east-1:123456789012:dashboard/AWSCloudTrail-Highlights"
                  ],
                  "AWS:SourceAccount": "123456789012"
               }
            }
        }
    ]
}
```

------

### 예: 다른 계정이 이벤트 데이터 스토어를 쿼리하고 쿼리 결과를 볼 수 있도록 허용
<a name="security_iam_resource-based-policy-examples-eds-query"></a>

리소스 기반 정책을 사용하여 이벤트 데이터 스토어에 대한 교차 계정 액세스를 제공하여 다른 계정이 이벤트 데이터 스토어에서 쿼리를 실행할 수 있도록 할 수 있습니다.

다음 예제 정책에는 계정 `111122223333`, `777777777777`, `999999999999`, `111111111111`의 루트 사용자가 계정 ID `555555555555`가 소유한 이벤트 데이터 스토어에서 쿼리를 실행하고 쿼리 결과를 가져올 수 있도록 허용하는 문이 포함되어 있습니다.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "policy1",
      "Effect": "Allow",
      "Principal": {
        "AWS": [
            "arn:aws:iam::{{111122223333}}:root",
            "arn:aws:iam::777777777777:root",
            "arn:aws:iam::999999999999:root",
            "arn:aws:iam::111111111111:root"
        ]
      },
      "Action": [
        "cloudtrail:StartQuery",
        "cloudtrail:GetEventDataStore",
        "cloudtrail:GetQueryResults"
      ],
      "Resource": "arn:aws:cloudtrail:us-east-1:555555555555:eventdatastore/example80-699f-4045-a7d2-730dbf313ccf"
    }
  ]
}
```

------

## 대시보드용 리소스 기반 정책 예시
<a name="security_iam_resource-based-policy-examples-dashboards"></a>

CloudTrail Lake 대시보드에 대한 새로 고침 일정을 설정할 수 있습니다. 그러면 새로 고침 일정을 설정할 때 정의한 간격으로 CloudTrail이 사용자를 대신하여 대시보드를 새로 고칠 수 있습니다. 이렇게 하려면 CloudTrail이 대시보드에서 `StartDashboardRefresh` 작업을 수행할 수 있도록 리소스 기반 정책을 대시보드에 연결해야 합니다.

다음은 리소스 기반 정책에 대한 요구 사항입니다.
+ 유일한 `Principal`은 `cloudtrail.amazonaws.com`입니다.
+ 정책에서 허용되는 유일한 `Action`은 `cloudtrail:StartDashboardRefresh`입니다.
+ 에는 대시보드 ARN 및 AWS 계정 ID`Condition`만 포함됩니다.

다음 예제 정책은 CloudTrail이 계정 `123456789012`에 대해 `exampleDash`라는 대시보드를 새로 고치도록 허용합니다.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement":
    [
        {
            "Effect": "Allow",
            "Principal":
            {
                "Service": "cloudtrail.amazonaws.com"
            },
            "Action":
            [
                "cloudtrail:StartDashboardRefresh"
            ],
            "Resource": "arn:aws:cloudtrail:{{us-east-1}}:{{123456789012}}:dashboard/*",
            "Condition": {
                "StringEquals": {
                    "AWS:SourceArn": "arn:aws:cloudtrail:us-east-1:123456789012:dashboard/exampleDash",
                    "AWS:SourceAccount":"123456789012"
                }
            }
        }
    ]
}
```

------