AWS 서비스 계정에 대한 액세스 설정
클라우드 디스커버리와 클라우드 프로비저닝 및 거버넌스에는 Amazon Web Services(AWS) 서비스 계정의 자원에 대한 액세스가 필요합니다. 이러한 액세스를 구성하는 여러 가지 방법에 대해 알아보겠습니다.
클라우드 디스커버리와 클라우드 프로비저닝 및 거버넌스는 MID 서버를 통해 AWS 서비스 계정의 자원에 액세스합니다. 초기 통신을 설정하려면 에서 MID 서버 EC2 인스턴스로 인바운드 Amazon 트래픽을 승인해야 합니다. 자세한 내용은 AWS 관리 콘솔을 사용하여 보안 그룹 인바운드 규칙 구성을 참조하십시오.
AWS 자격 증명 유형
- 영구
- 영구 자격 증명은 ServiceNow AI Platform의 연결 및 자격 증명 모듈에 추가하는 서비스 계정에 대한 실제 AWS 자격 증명입니다. 에서 ServiceNow AI Platform자격 증명을 관리하는 데 시간이 많이 걸릴 수 있지만 임시 자격 증명 사용과 관련된 복잡한 구성을 피할 수 있습니다.
- 임시
임시 자격 증명은 IAM 역할에 대한 AWS STS(AWS 보안 토큰 서비스)에서 생성됩니다. AWS 계정에 대한 IAM 역할을 구성한 후 MID 서버가 해당 임시 자격 증명을 사용하여 AWS 자원에 액세스합니다. 기본 IAM 역할(OrganizationAccountAccessRole)을 사용하거나 사용자 지정 IAM 역할을 만들 수 있습니다.
대규모 AWS 조직에서 IAM 역할을 맡을 경우 모든 AWS 계정에 대해 여러 영구 자격 증명을 사용하는 경우에 비해 우수한 편리성과 보안을 제공합니다. 임시 자격 증명은 해당 서비스 계정에 대해 지정된 영구 자격 증명이 서비스 계정 [cmdb_ci_cloud_service_account] 테이블에 없는 경우에만 서비스 계정을 대신하여 획득됩니다.
MID 서버는 AWS 보안 토큰 서비스 API에서 AssumeRole 작업을 사용하여 구성원 계정 역할을 가정합니다. 이 API에 전달된 매개변수에 따라 해당 역할이 AWS 자원에 액세스할 때 적용되는 추가적인 보안 제한이 결정됩니다.
기본적으로 MID 서버는 기본 계정의 모든 구성원에게 임시 자격 증명을 부여하는 OrganizationAccountAccessRole을 맡도록 구성되어 있습니다. 구성원 계정에 대한 영구 자격 증명이 없는 경우 이 작업은 자동으로 발생합니다. 이 구성은 구성원 계정의 어떤 자원에도 추가 보안을 적용하거나 이에 대한 액세스를 제한하지 않습니다.
기본적으로 ServiceNow 인스턴스는 구성원 계정에 대한 임시 자격 증명을 60분 동안 캐시합니다. 이 간격을 사용하면 각 검색 중에 새 자격 증명을 생성할 필요 없이 가로 검색 프로세스를 여러 번 실행할 수 있습니다. 자격 증명 캐싱을 방지하거나 MID 서버 속성을 사용하여 캐싱 기간을 수정할 수 있습니다.
IAM 역할 및 권한
기본 AWS OrganizationAccountAccessRole 역할이 제공하는 보안을 향상하려면 구성원 계정에 대한 임시 자격 증명을 받기 위해 맡을 수 있는 MID 서버 역할을 사용자 지정할 AWS 수 있습니다. 추가 권한을 구성하여 보안을 향상하고 클라우드 자원을 검색할 때 구성원 계정의 역할이 가정되는 방식을 사용자 지정할 수 있습니다.
액세스 권한을 부여하는 방법
- 신뢰 계정
- 신뢰 계정에는 AWS 영구 자격 증명이 없습니다. 이러한 계정의 IAM 역할에 대한 신뢰 관계를 구성하여 액세스 시에 다른 계정을 사용하도록 합니다.
- 신뢰할 수 있는 계정
- 신뢰할 수 있는 계정은 신뢰 계정에서 액세스를 위해 사용됩니다. ServiceNow UI는 신뢰할 수 있는 계정을 접근자 계정으로 참조합니다.
- 단일 계정에 대한 액세스 구성
-
- IAM 역할을 생성하고 설정하는 복잡성이 발생하지 않도록 에서 ServiceNow AI Platform 자격 증명을 구성합니다AWS. 자세한 내용은 영구 AWS 자격 증명을 사용하여 AWS 계정에 대한 액세스 구성 문서를 참조하십시오.
- AWS 에서 ServiceNow AI Platform서비스 계정을 생성합니다. 자세한 내용은 서비스 계정 생성 AWS 문서를 참조하십시오.
- 자격 증명이 있는 AWS 접근자 계정을 신뢰하는 계정에 대한 액세스 구성
-
그림 1. AWS 자격 증명을 보유한 신뢰할 수 있는 계정을 사용하도록 모든 AWS 계정 설정
- 자격 증명 없이 AWS 접근자 계정을 신뢰하는 계정에 대한 액세스 구성
-
그림 2. AWS 자격 증명이 없는 신뢰할 수 있는 계정을 사용하도록 모든 AWS 계정 설정
- 접근 권한자에서 관리 계정을 통해 신뢰 체인을 사용하여 구성원 계정에 대한 AWS 액세스를 구성합니다.
-
그림 3. 조직의 관리 계정을 사용하여 액세스하도록 구성원 계정 구성
클라우드 디스커버리에서 사용할 자격 증명을 결정하는 방법
- 구성원 계정 신탁 관리 계정
-
클라우드 디스커버리 는 다음 논리를 사용하여 구성원 계정에서 클라우드 자원을 검색하는 AWS 데 사용할 자격 증명을 결정합니다.
- 클라우드 서비스 계정 [cmdb_ci_cloud_service_account] 테이블의 구성원 계정에 영구 자격 증명이 정의되어 있는 경우 디스커버리에서 해당 자격 증명을 사용합니다. 클라우드 서비스 계정 [cmdb_ci_cloud_service_account] 테이블에는 관리 또는 구성원과 같은 서비스 계정 유형 및 자격 증명에 대한 정보가 포함되어 있습니다.
- 구성원 계정에 영구 자격 증명이 정의되지 않은 경우 디스커버리는 클라우드 서비스 계정 AWS 조직 가정 역할 매개변수 [cloud_service_account_aws_org_assume_role_params] 테이블에서 구성원 계정과 연결된 특수 매개변수를 확인합니다. 매개변수가 해당 테이블에 있는 경우 디스커버리는 AWS 보안 토큰 서비스 API AssumeRole 작업에서 역할과 해당 매개변수를 지정하여 취득한 임시 자격 증명을 사용합니다.
- 특수 매개변수가 [cloud_service_account_aws_org_assume_role_params] 테이블의 구성원 계정과 연결되어 있지 않은 경우 디스커버리에서는 해당 테이블에서 관리 계정과 연결된 매개변수를 확인합니다. 관리 계정의 역할을 정의하는 매개변수가 존재하는 경우 디스커버리는 해당 역할에서 제공하는 임시 자격 증명을 사용합니다.
- 특수 매개변수가 관리 또는 구성원 계정에 대한 [cloud_service_account_aws_org_assume_role_params] 테이블에 없는 경우에는 디스커버리에서 OrganizationAccountAccessRole 역할에 정의된 기본값을 사용합니다.
- 구성원 또는 관리 계정 신탁 접근자 계정
-
- 클라우드 서비스 계정 [cmdb_ci_cloud_service_account] 테이블의 구성원 또는 관리 계정에 영구 자격 증명이 정의되어 있는 경우 는 디스커버리 해당 자격 증명을 사용합니다. 클라우드 서비스 계정 [cmdb_ci_cloud_service_account] 테이블에는 관리 또는 구성원과 같은 서비스 계정 유형 및 자격 증명에 대한 정보가 포함되어 있습니다.
- 계정에 영구 자격 증명이 정의되지 않은 경우 디스커버리 클라우드 서비스 계정 AWS Cross Assume Role Params [cloud_service_account_aws_cross_assume_role_params] 테이블에서 계정과 연결된 특수 매개변수를 확인합니다. 매개변수가 해당 테이블에 있는 경우 디스커버리는 AWS 보안 토큰 서비스 API AssumeRole 작업에서 역할과 해당 매개변수를 지정하여 취득한 임시 자격 증명을 사용합니다.