SEC03-BP08 안전하게 조직과 리소스 공유 - AWS Well-Architected Framework

SEC03-BP08 안전하게 조직과 리소스 공유

워크로드 수가 증가함에 따라 해당 워크로드의 리소스에 대한 액세스 권한을 공유하거나 여러 계정에서 리소스를 여러 번 프로비저닝해야 할 수 있습니다. 개발, 테스트 및 프로덕션 환경과 같이 환경을 분류하는 구성이 있을 수 있습니다. 그러나 분리 구성이 있다고 해서 안전하게 공유하는 것이 제한되지는 않습니다. 겹치는 구성 요소를 공유하면 운영 오버헤드를 줄일 수 있고 동일한 리소스를 여러 번 생성하는 동안 누락된 부분을 추측하지 않고도 일관된 경험을 제공할 수 있습니다.

원하는 결과: 안전한 방법을 사용하여 조직 내에서 리소스를 공유하고 데이터 손실 방지 이니셔티브를 지원하여 의도치 않은 액세스를 최소화합니다. 개별 구성 요소를 관리하는 것에 비해 운영 오버헤드를 줄이고 동일한 구성 요소를 수동으로 여러 번 생성할 때 발생하는 오류를 줄이며 워크로드의 확장성을 높입니다. 다중 장애 지점 시나리오에서 해결 시간을 단축할 수 있고 구성 요소가 더 이상 필요하지 않은 시기를 결정할 때 신뢰성을 높일 수 있습니다. 외부에서 공유되는 리소스 분석에 대한 권장 가이드는 SEC03-BP07 퍼블릭 및 크로스 계정 액세스 분석를 참조하세요.

일반적인 안티 패턴:

  • 예상치 못한 외부 공유를 지속적으로 모니터링하고 자동으로 알리는 프로세스가 부족합니다.

  • 공유해야 할 것과 공유하지 말아야 할 것에 대한 기준이 부족합니다.

  • 필요할 때 명시적으로 공유하는 대신 광범위한 공개 정책을 기본으로 설정합니다.

  • 필요할 때 겹치는 기본 리소스를 수동으로 생성합니다.

이 모범 사례를 따르지 않을 경우 노출 위험도: 중간

구현 가이드

액세스 제어 및 패턴을 설계하여 공유 리소스의 소비를 신뢰할 수 있는 엔터티로만 안전하게 관리합니다. 공유 리소스를 모니터링하고 공유 리소스 액세스를 지속적으로 검토하고 부적절하거나 예상치 못한 공유에 대한 알림을 받습니다. 퍼블릭 및 크로스 계정 액세스 분석을 검토하면 필요한 리소스에 대한 외부 액세스 권한을 줄이도록 거버넌스를 설정하고 지속적으로 모니터링하고 자동으로 알리는 프로세스를 설정하는 데 도움이 됩니다.

AWS Organizations 내 크로스 계정 공유는 AWS Security Hub, Amazon GuardDutyAWS Backup과 같은 여러 AWS 서비스에서 지원됩니다. 이러한 서비스를 통해 데이터를 중앙 계정과 공유하거나, 중앙 계정에서 액세스하거나, 중앙 계정에서 리소스 및 데이터를 관리할 수 있습니다. 예를 들어 AWS Security Hub는 조사 결과를 개별 계정에서 모든 조사 결과를 볼 수 있는 중앙 계정으로 전송할 수 있습니다. AWS Backup은 리소스를 백업하고 계정 간에 공유할 수 있습니다. AWS Resource Access Manager(AWS RAM)를 사용하여 VPC 서브넷 및 Transit Gateway 첨부 파일, AWS Network Firewall, Amazon SageMaker 파이프라인과 같은 다른 공통 리소스를 공유할 수 있습니다.

조직 내에서만 리소스를 공유하도록 계정을 제한하려면 서비스 제어 정책(SCP)을 사용하여 외부 보안 주체에 대한 액세스 권한을 방지합니다. 리소스를 공유할 때 자격 증명 기반 제어와 네트워크 제어를 결합하여 조직의 데이터 경계를 생성하여 의도치 않은 액세스로부터 보호합니다. 데이터 경계는 신뢰할 수 있는 자격 증명만 예상 네트워크의 신뢰할 수 있는 리소스에 액세스하고 있는지 확인하는 데 도움이 되는 예방 가드레일입니다. 이러한 제어를 통해 어떤 리소스를 공유할 수 있는지에 대한 적절한 제한을 설정하고, 리소스의 허용되지 않은 공유 또는 노출을 방지할 수 있습니다. 예를 들어 데이터 경계의 일부로 VPC 엔드포인트 정책과 AWS:PrincipalOrgId 조건을 사용하여 Amazon S3 버킷에 액세스하는 자격 증명이 조직에 속하는지 확인할 수 있습니다. SCP는 서비스 연결 역할(LSR) 또는 AWS 서비스 보안 주체에 적용되지 않는다는 점에 유의해야 합니다.

Amazon S3를 사용하는 경우 Amazon S3 버킷에 대한 ACL을 비활성화하고 IAM 정책을 사용하여 액세스 제어를 정의합니다. Amazon CloudFront에서 Amazon S3 오리진에 대한 액세스 권한을 제한하려면 오리진 액세스 ID(OAI)에서 AWS Key Management Service를 통한 서버 측 암호화를 비롯한 추가 기능을 지원하는 오리진 액세스 제어(OAC)로 마이그레이션합니다.

경우에 따라 조직 외부에서 리소스 공유를 허용하거나 리소스에 대한 타사 액세스 권한을 부여할 수 있습니다. 외부에서 리소스를 공유하기 위한 권한 관리에 대한 권장 가이드는 권한 관리를 참조하세요.

구현 단계

  1. AWS Organizations를 사용합니다.

    AWS Organizations는 여러 AWS 계정를 사용자가 생성하고 중앙에서 관리하는 조직으로 통합할 수 있는 계정 관리 서비스입니다. 계정을 조직 단위(OU)로 그룹화하고 각 OU에 서로 다른 정책을 연결하여 예산, 보안 및 규정 준수 요구 사항을 충족할 수 있습니다. 또한 AWS 인공 지능(AI) 및 기계 학습(ML) 서비스가 데이터를 수집 및 저장하는 방법을 제어하고 Organizations와 통합된 AWS 서비스의 다중 계정 관리를 사용할 수 있습니다.

  2. AWS Organizations를 AWS 서비스와 통합합니다.

    조직의 멤버 계정에서 사용자를 대신하여 작업을 수행하도록 AWS서비스를 활성화하면 AWS Organizations는 각 멤버 계정에서 해당 서비스에 대한 IAM 서비스 연결 역할을 생성합니다. AWS Management Console, AWS API 또는 AWS CLI를 사용하여 신뢰할 수 있는 액세스를 관리해야 합니다. 신뢰할 수 있는 액세스 활성화에 대한 권장 가이드는 다른 AWS 서비스와 함께 AWS Organizations 사용Organizations와 함께 사용할 수 있는 AWS 서비스를 참조하세요.

  3. 데이터 경계를 설정합니다.

    AWS 경계는 일반적으로 AWS Organizations에서 관리하는 조직으로 표시됩니다. 온프레미스 네트워크 및 시스템과 함께 AWS 리소스에 액세스하는 것은 내 AWS의 경계로 간주되는 경우가 많습니다. 경계의 목표는 자격 증명을 신뢰할 수 있고 리소스를 신뢰할 수 있으며 네트워크가 예상되는 경우 액세스가 허용되는지 확인하는 것입니다.

    1. 경계를 정의하고 구현합니다.

      각 권한 부여 조건은 AWS에 경계 구축 백서의 경계 구현에 설명된 단계를 따르세요. 네트워크 계층 보호에 대한 권장 가이드는 네트워크 보호를 참조하세요.

    2. 지속적으로 모니터링하고 알립니다.

      AWS Identity and Access Management Access Analyzer는 조직 및 계정에서 외부 엔터티와 공유되는 리소스를 식별하는 데 도움이 됩니다. IAM Access Analyzer를 AWS Security Hub와 통합하여 IAM Access Analyzer에서 Security Hub로 리소스에 대한 조사 결과를 전송 및 집계하여 환경의 보안 태세를 분석할 수 있습니다. 통합을 활성화하려면 각 계정의 각 리전에서 IAM Access Analyzer 및 Security Hub를 모두 활성화합니다. 또한 AWS Config 규칙를 사용하여 구성을 감사하고 AWS Chatbot을 AWS Security Hub와 함께 사용하여 적절한 당사자에게 알릴 수 있습니다. 그런 다음 AWS Systems Manager 자동화 문서를 사용하여 규정 미준수 리소스를 개선할 수 있습니다.

    3. 외부에서 공유되는 리소스에 대한 지속적인 모니터링 및 알림에 대한 권장 가이드는 퍼블릭 및 크로스 계정 액세스 분석을 참조하세요.

  4. AWS 서비스에서 리소스 공유를 사용하고 그에 따라 제한합니다.

    Amazon Machine Image(AMI)AWS Resource Access Manager(AWS RAM)와 같은 많은 AWS 서비스를 통해 다른 계정과 리소스를 공유하거나 다른 계정의 리소스를 대상으로 지정할 수 있습니다. AMI를 공유할 신뢰할 수 있는 계정을 지정하도록 ModifyImageAttribute API를 제한합니다. 신뢰할 수 없는 자격 증명의 액세스를 방지하기 위해 AWS RAM을 사용할 때 ram:RequestedAllowsExternalPrincipals 조건을 지정하여 조직으로만 공유를 제한합니다. 권장 가이드 및 고려 사항은 리소스 공유 및 외부 대상을 참조하세요.

  5. AWS RAM을 사용하여 계정에서 또는 다른 AWS 계정와 안전하게 공유합니다.

    AWS RAM은 사용자가 생성한 리소스를 계정의 역할 및 사용자와 다른 AWS 계정와 안전하게 공유하는 데 도움이 됩니다. 다중 계정 환경에서 AWS RAM을 사용하면 리소스를 한 번 생성하여 다른 계정과 공유할 수 있습니다. 이 접근 방식은 크로스 계정 액세스를 사용할 때는 받지 못하는 Amazon CloudWatch 및 AWS CloudTrail과의 통합을 통해 일관성, 가시성 및 감사 가능성을 제공하는 동시에 운영 오버헤드를 줄이는 데 도움이 됩니다.

    이전에 리소스 기반 정책을 사용하여 공유한 리소스가 있는 경우 PromoteResourceShareCreatedFromPolicy API 또는 이에 상응하는 것을 사용하여 리소스 공유를 전체 AWS RAM 리소스 공유로 승격할 수 있습니다.

    경우에 따라 리소스를 공유하기 위해 추가 단계를 수행해야 할 수도 있습니다. 예를 들어 암호화된 스냅샷을 공유하려면 AWS KMS 키를 공유해야 합니다.

리소스

관련 모범 사례:

관련 문서:

관련 동영상:

관련 도구: