기본 콘텐츠로 건너뛰기 보완적인 콘텐츠로 건너뛰기

EC2 인스턴스 프로필

Qlik 관리형 EC2 인스턴스에 대한 IAM 역할을 정의합니다. 이 역할은 AWS 레이크하우스 환경에서 실행되는 인스턴스에서 사용됩니다.

EC2 인스턴스 프로필은 EC2 인스턴스에 할당할 수 있는 IAM 역할에 대한 컨테이너입니다. 이를 통해 인스턴스에 AWS 자격 증명을 저장할 필요 없이 인스턴스가 AWS 서비스에 안전하게 액세스할 수 있습니다.

인스턴스 프로필을 사용하여 인스턴스를 시작하면 연관된 IAM 역할의 임시 자격 증명이 인스턴스 메타데이터 서비스를 통해 인스턴스에서 시작되는 응용 프로그램에 자동으로 제공됩니다. 이를 통해 인스턴스는 Amazon S3, DynamoDB 또는 CloudWatch와 같은 AWS 서비스에 대한 권한 부여된 API 요청을 할 수 있습니다.

인스턴스 프로필을 사용하면 다음과 같은 방법으로 보안이 강화되고 자격 증명 관리가 간소화됩니다.

  • 응용 프로그램 코드나 구성 파일에서 하드코딩된 자격 증명을 제거합니다.

  • 자격 증명을 자동으로 순환합니다.

  • 역할에 연결된 세분화된 IAM 정책을 통해 최소 권한을 적용합니다.

인스턴스 프로필은 EC2 인스턴스가 다른 AWS 리소스와 안전하고 프로그래밍 방식으로 상호 작용해야 하는 시나리오에서 일반적으로 사용됩니다.

전제 조건

Qlik 오픈 레이크하우스를 호스팅하기 위해 VPC와 서브넷, 가용성 영역을 만들었는지 확인하고 다음 세부 정보가 있는지 확인합니다.

  • Qlik의 내부 메타데이터 파일을 저장하기 위한 S3 버킷의 URL.

  • 클러스터의 인스턴스를 관리하기 위한 Qlik의 Kinesis 스트림 이름.

인스턴스 프로필 만들기

관리 역할을 만들려면 다음을 수행합니다.

  1. AWS 콘솔에서 IAM으로 이동합니다.

  2. 역할에서 역할 만들기를 클릭하고 다음과 같이 구성합니다.

    • 신뢰할 수 있는 엔터티 유형: 옵션에서 AWS 서비스를 선택합니다.

    • 서비스 또는 사용 사례: EC2를 선택합니다.

    • 사용 사례: EC2를 선택합니다.

  3. 역할을 만듭니다. 역할 페이지로 돌아가서 만든 역할을 클릭합니다.

  4. 인스턴스 프로필 ARN 이름 옆에 있는 복사 아이콘을 클릭하고 이 값을 저장합니다.

  5. 권한 추가를 클릭하고 인라인 정책 만들기를 선택합니다.

  6. 정책 편집기: JSON을 선택합니다. 다음 텍스트를 붙여넣고, 다음을 확인합니다.    

    • <INTERNAL_STREAM_NAME> 매개 변수를 Kinesis 스트림로 변경합니다.

    • <INTERNAL_BUCKET_NAME> 매개 변수를 S3 버킷로 변경합니다.


			{
			"Version": "2012-10-17",
			"Statement": [
			{
			"Effect": "Allow",
			"Resource": [
			"*"
			],
			"Action": [
			"ec2:AttachVolume",
			"ec2:DetachVolume",
			"autoscaling:SetInstanceHealth"
			],
			"Condition": {
			"Null": {
			"aws:ResourceTag/qlik_cluster": "false"
			}
			}
			},
			{
			"Effect": "Allow",
			"Resource": [
			"*"
			],
			"Action": [
			"cloudwatch:PutMetricData"
			]
			},
			{
			"Effect": "Allow",
			"Resource": [
			"arn:aws:kinesis:*:*:stream/<STREAM_NAME>"
				],
				"Action": [
				"kinesis:PutRecord",
				"kinesis:DescribeStreamSummary",
				"kinesis:ListShards",
				"kinesis:PutRecords",
				"kinesis:GetShardIterator",
				"kinesis:GetRecords",
				"kinesis:DescribeStream",
				"kinesis:ListStreamConsumers"
				]
				},
				{
				"Effect": "Allow",
				"Resource": [
				"arn:aws:s3:::<BUCKET_NAME>",
					"arn:aws:s3:::<BUCKET_NAME>/*"
						],
						"Action": [
						"s3:PutObject",
						"s3:GetObject",
						"s3:AbortMultipartUpload",
						"s3:DeleteObjectVersion",
						"s3:ListBucket",
						"s3:DeleteObject",
						"s3:GetObjectVersion"
						]
						},
						{
						"Effect": "Allow",
						"Resource": [
						"arn:aws:ssm:*:*:parameter/qlik/*"
						],
						"Action": [
						"ssm:GetParameter",
						"ssm:PutParameter"
						]
						},
						{
						"Effect": "Allow",
						"Resource": [
						"<SYMMETRIC_KMS_KEY>"
							],
							"Action": [
							"kms:*"
							]
							},
							{
							"Effect": "Allow",
							"Resource": [
							"*"
							],
							"Action": [
							"sts:AssumeRole"
							],
							"Condition": {
							"StringEquals": {
							"sts:ExternalId": "6b69f9c3c8f502f2ddfc8434d443f172ebe4c032f4ef1a3c51215d27a58ca799"
							}
							}
							}
							]
							}
		

요구 사항 허가 정당성

다음 표에서는 EC2 인스턴스에 부여된 각 권한을 설명합니다.

정책 권한 설명
볼륨 정책 첨부

{

"Version": "2012-10-17",

"Effect": "Allow",

"Resource": [

"*"

],

"Action": [

"ec2:AttachVolume",

"ec2:DetachVolume",

"autoscaling:SetInstanceHealth"

],

"Condition": {

"Null": {

"aws:ResourceTag/qlik_cluster": "false"

}

}

}

]

}


                                    
이 정책은 EC2 인스턴스에 Qlik에서 만들어진 영구 EBS 볼륨을 연결할 수 있는 권한을 부여합니다. 이를 통해 Gateway 컴퓨터 업그레이드 간에도 데이터가 유지됩니다.
CloudWatch

{

"Version": "2012-10-17",

"Effect": "Allow",

"Resource": [

"*"

],

"Action": [

"cloudwatch:PutMetricData"

}

]

}


                                    

이 정책을 사용하면 EC2 인스턴스가 사용자 지정 메트릭을 CloudWatch로 푸시할 수 있으며, 이는 소프트웨어 성능에 따라 Qlik 클러스터를 자동으로 확장하는 데 사용됩니다.

내부 스트림

{

"Version": "2012-10-17",

"Effect": "Allow",

"Resource": [

"arn:aws:kinesis:*:*:stream/<STREAM_NAME>"

],

"Action": [

"kinesis:PutRecord",

"kinesis:DescribeStreamSummary",

"kinesis:ListShards",

"kinesis:PutRecords",

"kinesis:GetShardIterator",

"kinesis:GetRecords",

"kinesis:DescribeStream",

"kinesis:ListStreamConsumers"

]

}

]

}


                                    
이 정책은 EC2 인스턴스에 키-값 저장소 및 분산 잠금과 같은 클러스터 동기화 서비스에서 사용하는 Kinesis 스트림과 상호 작용할 수 있는 권한을 부여합니다. <INTERNAL_STREAM_NAME>은 사용자가 구성한 값입니다.
내부 버킷

{

"Version": "2012-10-17",

"Effect": "Allow",

"Resource": [

"arn:aws:s3:::<BUCKET_NAME>",

"arn:aws:s3:::<BUCKET_NAME>/*"

],

"Action": [

"s3:PutObject",

"s3:GetObject",

"s3:AbortMultipartUpload",

"s3:DeleteObjectVersion",

"s3:ListBucket",

"s3:DeleteObject",

"s3:GetObjectVersion"

]

}

]

}


                                    
이 정책은 EC2 인스턴스에 내부 데이터를 저장하고, 읽고, 삭제할 수 있는 권한을 부여합니다. 내부 데이터에는 처리를 위해 중간 저장소에 저장소되는 실제 사용자 데이터가 포함되어 있습니다. <INTERNAL_BUCKET_NAME>은 사용자가 구성한 값입니다.

이 페이지가 도움이 되었습니까?

이 페이지 또는 해당 콘텐츠에서 오타, 누락된 단계 또는 기술적 오류와 같은 문제를 발견하면 알려 주십시오!