AWS CloudHSM의 Identity and Access Management(IAM)
AWS는 보안 자격 증명을 사용하여 사용자를 식별하고 AWS 리소스에 대한 액세스 권한을 부여합니다. AWS Identity and Access Management(IAM)의 기능을 사용하면 다른 사용자, 서비스 및 애플리케이션이 AWS 리소스를 완전히 또는 제한된 방식으로 사용하도록 허용할 수 있습니다. 이를 위해 보안 자격 증명을 공유하지 않아도 됩니다.
기본적으로 IAM 사용자는 AWS 리소스를 생성, 확인 또는 수정할 수 있는 권한이 없습니다. IAM 사용자가 로드 밸런서와 같은 리소스에 액세스하여 작업을 수행하도록 허용하려면 다음을 수행하십시오.
-
IAM 사용자에게 필요한 API 작업 및 특정 리소스를 사용할 권한을 부여하는 IAM 정책을 생성합니다.
-
정책을 IAM 사용자 또는 IAM 사용자가 속한 그룹에 연결합니다.
사용자 또는 사용자 그룹에 정책을 연결하면 지정된 리소스에 대해 지정된 작업을 수행할 권한이 허용되거나 거부됩니다.
예를 들어 IAM을 사용하여 AWS 계정 아래에 사용자 및 그룹을 생성할 수 있습니다. IAM 사용자는 사용자, 시스템 또는 애플리케이션입니다. 그런 다음 IAM 정책을 사용하여 지정된 리소스에 대한 특정 작업을 수행할 수 있도록 사용자 및 그룹에 권한을 부여합니다.
IAM 정책을 사용하여 권한 부여
사용자 또는 사용자 그룹에 정책을 연결하면 지정된 리소스에 대해 지정된 작업을 수행할 권한이 허용되거나 거부됩니다.
IAM 정책은 하나 이상의 문으로 구성된 JSON 문서입니다. 각 문은 다음 예와 같이 구성됩니다.
{ "Version": "2012-10-17", "Statement":[{ "Effect": "
effect
", "Action": "action
", "Resource": "resource-arn
", "Condition": { "condition
": { "key
":"value
" } } }] }
-
Effect - effect는
Allow
또는Deny
일 수 있습니다. 기본적으로 IAM 사용자에게는 리소스 및 API 작업을 사용할 권한이 없으므로 모든 요청이 거부됩니다. 명시적 허용은 기본 설정을 무시합니다. 명시적 거부는 모든 허용을 무시합니다. -
작업: 작업은 권한을 부여하거나 거부할 특정 API 작업입니다. 작업 지정에 대한 자세한 내용은 AWS CloudHSM에 대한 API 작업 단원을 참조하십시오.
-
리소스 — 작업의 영향을 받는 리소스입니다. AWS CloudHSM는 리소스 수준 권한을 지원하지 않습니다. 모든 AWS CloudHSM 리소스를 지정하려면 * 와일드카드를 사용해야 합니다.
-
조건 - 정책이 시행 중일 때 관리하기 위해 조건을 선택적으로 사용할 수 있습니다. 자세한 내용은 AWS CloudHSM의 조건 키 섹션을 참조하세요.
자세한 내용은 IAM 사용 설명서를 참조하십시오.
AWS CloudHSM에 대한 API 작업
IAM 정책문의 행동 요소에서 AWS CloudHSM이 제공하는 모든 API 작업을 지정할 수 있습니다. 다음 예와 같이 작업 이름 앞에 접두사로 소문자 문자열 cloudhsm:
을 붙여야 합니다.
"Action": "cloudhsm:DescribeClusters"
명령문 하나에 여러 작업을 지정하려면 다음 예제와 같이 대괄호로 묶은 후 각 작업을 쉼표로 구분합니다.
"Action": [
"cloudhsm:DescribeClusters",
"cloudhsm:DescribeHsm"
]
* 와일드카드를 사용하여 여러 작업을 지정할 수도 있습니다. 다음 예에서는 List
로 시작되는 AWS CloudHSM에 대해 모든 API 작업 이름을 지정합니다.
"Action": "cloudhsm:List*"
AWS CloudHSM에 대해 모든 API 작업을 지정하려면 다음 예와 같이 * 와일드카드를 사용하십시오.
"Action": "cloudhsm:*"
AWS CloudHSM의 API 작업 목록은 AWS CloudHSM 작업을 참조하십시오.
AWS CloudHSM의 조건 키
정책을 만들 때 정책 적용 시기를 제어하는 조건을 지정할 수 있습니다. 각 조건에는 하나 이상의 키-값 쌍이 포함됩니다. 조건 키에는 전역 조건 키와 서비스별 조건 키가 있습니다.
AWS CloudHSM에는 서비스별 컨텍스트 키가 없습니다.
전역 조건 키에 대한 자세한 내용은 IAM 사용 설명서의 AWS 전역 조건 컨텍스트 키를 참조하십시오.
AWS CloudHSM에 대해 사전 정의된 AWS 관리형 정책
AWS가 생성한 관리형 정책은 일반 사용 사례에서 필요한 권한을 부여합니다. AWS CloudHSM에 필요한 액세스를 기반으로 IAM 사용자에게 이러한 정책을 연결할 수 있습니다.
-
AWSCloudHSMFullAccess — AWS CloudHSM 기능을 사용하는 데 필요한 전체 액세스 권한을 부여합니다.
-
AWSCloudHSMReadOnlyAccess — AWS CloudHSM 기능에 대한 읽기 전용 액세스 권한을 부여합니다.
AWS CloudHSM에 대한 고객 관리형 정책
AWS CloudHSM을 실행하는 데 필요한 권한만 포함하는 AWS CloudHSM에 대한 IAM 관리자 그룹을 생성하는 것이 좋습니다. 적절한 권한이 있는 정책을 이 그룹에 연결합니다. 필요에 따라 그룹에 IAM 사용자를 추가합니다. 추가한 각 사용자는 관리자 그룹에서 정책을 상속합니다.
또한 사용자에게 필요한 권한에 따라 추가 사용자 그룹을 생성하는 것이 좋습니다. 이렇게 하면 신뢰할 수 있는 사용자만 중요한 API 작업에 액세스할 수 있습니다. 예를 들어 사용자 그룹을 생성하고 이를 사용하여 클러스터 및 HSM에 대한 읽기 전용 액세스 권한을 부여할 수 있습니다. 이 그룹에서는 사용자에게 클러스터 또는 HSM을 삭제할 수 있도록 허용하지 않으므로 신뢰할 수 없는 사용자가 프로덕션 워크로드의 가용성에 영향을 줄 수 없습니다.
시간이 경과됨에 따라 새로운 AWS CloudHSM 관리 기능이 추가되므로, 신뢰할 수 있는 사용자에게만 즉시 액세스가 허용되도록 할 수 있습니다. 나중에 생성할 때 제한된 권한을 정책에 할당하여 새 기능 권한을 이들 신뢰할 수 있는 사용자에게 수동으로 할당할 수 있습니다.
다음은 AWS CloudHSM에 대한 정책 예제입니다. 정책을 생성하고 IAM 사용자 그룹에 연결하는 방법에 대한 자세한 내용은 IAM 사용 설명서의 JSON 탭에서 정책 생성을 참조하십시오.
예: 읽기 전용 권한
이 정책은 DescribeClusters
및 DescribeBackups
API 작업에 대한 액세스를 허용합니다. 또한 특정 Amazon EC2 API 작업에 대한 추가 권한도 포함됩니다. 하지만 사용자에게 클러스터 또는 HSM을 삭제하도록 허용하지는 않습니다.
{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": [ "cloudhsm:DescribeClusters", "cloudhsm:DescribeBackups", "cloudhsm:ListTags" ], "Resource": "*" } }
예: 고급 사용자 권한
이 정책은 AWS CloudHSM API 작업의 하위 집합에 대한 액세스를 허용합니다. 또한 특정 Amazon EC2 작업에 대한 추가 권한도 포함됩니다. 하지만 사용자에게 클러스터 또는 HSM을 삭제하도록 허용하지는 않습니다. AWS CloudHSM은 계정에 AWSServiceRoleForCloudHSM 서비스 연결 역할을 자동으로 생성할 수 있도록 하려면 iam:CreateServiceLinkedRole
작업을 포함해야 합니다. 이 역할을 사용하면 AWS CloudHSM에서 이벤트를 기록할 수 있습니다. 자세한 내용은 AWS CloudHSM에 대한 서비스 연결 역할 섹션을 참조하세요.
참고
각 API의 특정 권한을 보려면 서비스 승인 참조의 작업, 리소스 및 조건 키AWS CloudHSM를 참조하십시오.
{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": [ "cloudhsm:DescribeClusters", "cloudhsm:DescribeBackups", "cloudhsm:CreateCluster", "cloudhsm:CreateHsm", "cloudhsm:RestoreBackup", "cloudhsm:CopyBackupToRegion", "cloudhsm:InitializeCluster", "cloudhsm:ListTags", "cloudhsm:TagResource", "cloudhsm:UntagResource", "ec2:CreateNetworkInterface", "ec2:DescribeNetworkInterfaces", "ec2:DescribeNetworkInterfaceAttribute", "ec2:DetachNetworkInterface", "ec2:DeleteNetworkInterface", "ec2:CreateSecurityGroup", "ec2:AuthorizeSecurityGroupIngress", "ec2:AuthorizeSecurityGroupEgress", "ec2:RevokeSecurityGroupEgress", "ec2:DescribeSecurityGroups", "ec2:DeleteSecurityGroup", "ec2:CreateTags", "ec2:DescribeVpcs", "ec2:DescribeSubnets", "iam:CreateServiceLinkedRole" ], "Resource": "*" } }
예: 관리자 권한
이 정책에서는 HSM 및 클러스터 삭제 작업을 포함하여 모든 AWS CloudHSM API 작업에 대한 액세스를 허용합니다. 또한 특정 Amazon EC2 작업에 대한 추가 권한도 포함됩니다. AWS CloudHSM은 계정에 AWSServiceRoleForCloudHSM 서비스 연결 역할을 자동으로 생성할 수 있도록 하려면 iam:CreateServiceLinkedRole
작업을 포함해야 합니다. 이 역할을 사용하면 AWS CloudHSM에서 이벤트를 기록할 수 있습니다. 자세한 내용은 AWS CloudHSM에 대한 서비스 연결 역할 섹션을 참조하세요.
{ "Version":"2012-10-17", "Statement":{ "Effect":"Allow", "Action":[ "cloudhsm:*", "ec2:CreateNetworkInterface", "ec2:DescribeNetworkInterfaces", "ec2:DescribeNetworkInterfaceAttribute", "ec2:DetachNetworkInterface", "ec2:DeleteNetworkInterface", "ec2:CreateSecurityGroup", "ec2:AuthorizeSecurityGroupIngress", "ec2:AuthorizeSecurityGroupEgress", "ec2:RevokeSecurityGroupEgress", "ec2:DescribeSecurityGroups", "ec2:DeleteSecurityGroup", "ec2:CreateTags", "ec2:DescribeVpcs", "ec2:DescribeSubnets", "iam:CreateServiceLinkedRole" ], "Resource":"*" } }