

# 교차 계정 전송에 대한 IAM 역할
<a name="firehose-cross-account-delivery"></a>

Amazon Data Firehose에 게시할 때 모니터링할 리소스와 동일한 계정(소스 계정) 또는 상이한 계정(대상 계정)에 있는 전송 스트림을 선택할 수 있습니다. Amazon Data Firehose에 대한 흐름 로그의 교차 계정 전송을 활성화하려면 소스 계정에서 IAM 역할을 생성하고 대상 계정에서 IAM 역할을 생성해야 합니다.

**Topics**
+ [소스 계정 역할](#firehose-source-account-role)
+ [대상 계정 역할](#firehose-destination-account-role)

## 소스 계정 역할
<a name="firehose-source-account-role"></a>

소스 계정에서 다음과 같은 권한을 부여하는 역할을 생성합니다. 이 예시에서는 역할 이름이 `mySourceRole`이지만, 이 역할에 대해 다른 이름을 선택할 수 있습니다. 마지막 명령문에서는 대상 계정의 역할에 이 역할 수임을 허용합니다. 조건문에서는 지정된 리소스를 모니터링할 때만 이 역할이 로그 전송 서비스에만 전달되도록 합니다. 정책을 생성할 때 모니터링 중인 VPC, 네트워크 인터페이스 또는 서브넷을 조건 키(`iam:AssociatedResourceARN`)로 지정합니다.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "iam:PassRole",
            "Resource": "arn:aws:iam::{{123456789012}}:role/{{mySourceRole}}",
            "Condition": {
                "StringEquals": {
                    "iam:PassedToService": "delivery.logs.amazonaws.com"
                },
                "StringLike": {
                    "iam:AssociatedResourceARN": [
                        "arn:aws:ec2:{{us-east-1}}:{{123456789012}}:vpc/{{vpc-00112233344556677}}"
                    ]
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": [
                "logs:CreateLogDelivery",
                "logs:DeleteLogDelivery",
                "logs:ListLogDeliveries",
                "logs:GetLogDelivery"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": "sts:AssumeRole",
            "Resource": "arn:aws:iam::{{111122223333}}:role/AWSLogDeliveryFirehoseCrossAccountRole"
        }
    ]
}
```

------

로그 전송 서비스에서 역할을 수임할 수 있는 다음과 같은 신뢰 정책이 이 역할에 있는지 확인하세요.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": "delivery.logs.amazonaws.com"
      },
      "Action": "sts:AssumeRole"
    }
  ]
}
```

------

소스 계정에서 다음과 같은 절차를 사용하여 역할을 생성합니다.

**소스 계정 역할을 생성하는 방법**

1. [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)에서 IAM 콘솔을 엽니다.

1. 탐색 창에서 **Policies**를 선택합니다.

1. [**정책 생성**]을 선택합니다.

1. **정책 생성** 페이지에서 다음을 수행합니다.

   1. **JSON**을 선택합니다.

   1. 이 창의 내용을 이 섹션의 시작 부분에 있는 권한 정책으로 대체합니다.

   1. **다음**을 선택합니다.

   1. 정책의 이름과 설명(선택 사항) 및 태그를 입력한 다음에 **정책 생성**을 선택합니다.

1. 탐색 창에서 **Roles**를 선택합니다.

1. **역할 생성(Create role)**을 선택합니다.

1. **신뢰할 수 있는 엔터티 유형(Trusted entity type)**에서 **사용자 지정 정책(Custom trust policy)**을 선택합니다. **Custom trust policy**(사용자 지정 신뢰 정책)에서 로그 전송 서비스를 지정하는 다음으로 `"Principal": {},`을 대체합니다. **다음**을 선택합니다.

   ```
   "Principal": {
      "Service": "delivery.logs.amazonaws.com"
   },
   ```

1. **권한 추가** 페이지에서 이 절차의 앞부분에서 생성한 정책의 확인란을 선택한 후 **다음**을 선택합니다.

1. 역할 이름을 입력하고 선택적으로 설명을 제공합니다.

1. **역할 생성(Create role)**을 선택합니다.

## 대상 계정 역할
<a name="firehose-destination-account-role"></a>

대상 계정에서 **AWSLogDeliveryFirehoseCrossAccountRole**로 시작하는 이름으로 역할을 생성합니다. 이 역할에서는 다음과 같은 권한을 부여해야 합니다.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
          "iam:CreateServiceLinkedRole",
          "firehose:TagDeliveryStream"
      ],
      "Resource": "*"
    }
  ]
}
```

------

이 역할을 수임할 수 있도록 소스 계정에서 생성한 역할이 허용되는 다음과 같은 신뢰 정책이 이 역할에 있는지 확인하세요.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::{{111122223333}}:role/{{mySourceRole}}"
            },
            "Action": "sts:AssumeRole"
        }
    ]
}
```

------

대상 계정에서 다음과 같은 절차를 사용하여 역할을 생성합니다.

**대상 계정 역할을 생성하는 방법**

1. [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)에서 IAM 콘솔을 엽니다.

1. 탐색 창에서 **Policies**를 선택합니다.

1. [**정책 생성**]을 선택합니다.

1. **정책 생성** 페이지에서 다음을 수행합니다.

   1. **JSON**을 선택합니다.

   1. 이 창의 내용을 이 섹션의 시작 부분에 있는 권한 정책으로 대체합니다.

   1. **다음**을 선택합니다.

   1. **AWSLogDeliveryFirehoseCrossAccountRole**로 시작하는 정책 이름을 입력한 다음에 **정책 생성**을 선택합니다.

1. 탐색 창에서 **Roles**를 선택합니다.

1. **역할 생성(Create role)**을 선택합니다.

1. **신뢰할 수 있는 엔터티 유형(Trusted entity type)**에서 **사용자 지정 정책(Custom trust policy)**을 선택합니다. **Custom trust policy**(사용자 지정 신뢰 정책)에서 소스 계정 역할을 지정하는 다음으로 `"Principal": {},`을 대체합니다. **다음**을 선택합니다.

   ```
   "Principal": {
      "AWS": "arn:aws:iam::{{source-account}}:role/{{mySourceRole}}"
   },
   ```

1. **권한 추가** 페이지에서 이 절차의 앞부분에서 생성한 정책의 확인란을 선택한 후 **다음**을 선택합니다.

1. 역할 이름을 입력하고 선택적으로 설명을 제공합니다.

1. **역할 생성(Create role)**을 선택합니다.