SEC03-BP08 組織内でリソースを安全に共有する
ワークロードの数が増えるにつれて、それらのワークロードのリソースへのアクセスを共有したり、複数のアカウントでリソースを複数回プロビジョニングしたりする必要が生じます。開発環境、テスト環境、本番環境などの環境を区分けするための構造があるかもしれません。ただし、分離構造があっても、安全に共有する能力は制限できません。重複するコンポーネントを共有することにより、運用諸経費を削減し、同一リソースを複数回作成する間に見逃したものを推測しなくても、一貫したエクスペリエンスを実現できます。
期待される成果: 安全な方法を使用して組織内のリソースを共有することにより、意図しないアクセスを最小限に抑え、データ損失防止イニシアチブに役立てます。個々のコンポーネントを管理するのと比較して、運用諸経費を削減し、同じコンポーネントを何度も手動で作成することによるエラーを減らし、ワークロードのスケーラビリティを向上させることができます。削減できた時間を活用して、マルチポイント障害シナリオを解決し、自信を持ってコンポーネントが不要になる時を判断できるようになります。外部共有リソースの分析に関する規範的ガイダンスについては、「SEC03-BP07 パブリックおよびクロスアカウントアクセスの分析」を参照してください。
一般的なアンチパターン:
-
継続的にモニタリングして、予定外の外部共有が生じたときに自動的にアラートを発動するプロセスがない。
-
共有すべき/すべきでない内容に関する基準がない。
-
必要な時点で明示的に共有するのではなく、広く開かれたポリシーをデフォルトとしている。
-
必要に応じて重複する基本的リソースを手動で作成する。
このベストプラクティスを確立しない場合のリスクレベル: 中
実装のガイダンス
アクセスコントロールとパターンを構築し、信頼できるエンティティとのみ共有リソースの消費を安全に管理します。共有リソースをモニタリングして、継続的に共有リソースアクセスをレビューし、不適切なまたは予想外の共有があればアラートを発動します。パブリックおよびクロスアカウントアクセスを分析するをレビューして、外部からのアクセスを必要なリソースのみに限定し、継続的にモニタリングし、自動的にアラートを出すプロセスを確立するためのガバナンスを確立するのに役立ちます。
AWS Organizations 内のクロスアカウント共有は、多数の AWS サービス (AWS Security Hub、Amazon GuardDuty、および AWS Backup) によってサポートされています。これらのサービスを使用すると、中央アカウントでデータを共有し、中央アカウントからアクセス可能、あるいは中央アカウントからリソースとデータを管理できます。例えば、AWS Security Hub は個別アカウントから中央アカウントに検出結果を送信するため、すべての検出結果を確認することができます。AWS Backup は、リソースのバックアップを取り、アカウント全体で共有します。AWS Resource Access Manager
リソースを組織内のリソースのみと共有するよう制限するには、サービスコントロールポリシー (SCP) を使って、外部プリンシパルへのアクセスを防止します。リソースを共有する際、アイデンティティベースのコントロールとネットワークコントロールを組み合わせて、組織のデータ境界を作成すると、意図しないアクセスから保護するのに役立ちます。データ境界とは、信頼できるアイデンティティのみが、期待されるネットワークから信頼できるリソースにアクセスするよう徹底するのに役立つ予防的な一連のガードレールです。これらのコントロールは、どのリソースが共有可能かについて適切な制限を設け、共有や公開が許可されるべきでないリソースについてはそれを禁止する必要があります。例えば、データ境界の一部として、VPC エンドポイントポリシーと AWS:PrincipalOrgId
条件を使用することで、Amazon S3 バケットにアクセスするアイデンティティが組織に確実に属するようにできます。SCP は、サービスにリンクされたロール (LSR) または AWS サービスプリンシパルに適用されないことに注意してください。
Amazon S3 を使用する際、 は Amazon S3 バケットに対して ACL を無効化し、IAM ポリシーをし応してアクセスコントロールを定義します。Amazon CloudFront
場合によっては、組織外のリソースを共有したり、リソースにサードパーティーのアクセスを付与したりするかもしれません。リソースを外部で共有する権限管理に関する規定的なガイダンスについては、「Permissions management」を参照してください。
実装手順
-
AWS Organizations を使用します。
AWS Organizations は、組織を作成して一元管理するときに、複数の AWS アカウント を統合できるアカウント管理サービスです。アカウントを組織単位 (OU) にグループ化し、OU ごとに異なるポリシーをアタッチすることにより、予算、セキュリティ、コンプライアンスのニーズに対応できます。また、AWS 人工知能 (AI) と機械学習 (ML) サービスがどのようにデータを収集して保管するかをコントロールし、Organizations と統合された AWS サービスのマルチアカウント管理を使用できます。
-
AWS Organizations を AWS サービスと統合します。
組織のメンバーアカウントを代理してタスクを実行する AWS サービスを有効にすると、AWS Organizations が各メンバーアカウントでそのサービスに対して IAM サービスがリンクされたロールを作成します。AWS Management Console、AWS API、または AWS CLI を使用して、信頼できるアクセスを管理する必要があります。信頼されたアクセスを可能にするための規範的ガイダンスについては、「AWS Organizations を他の AWS サービスおよび Organizations と併用できる AWS サービスの使用」を参照してください。
-
データ境界を確立します。
AWS 境界は、AWS Organizations によって管理される組織として表現されるのが普通です。オンプレミスネットワークとシステムとともに、AWS リソースへのアクセスは、My AWS の境界としてみなしているものです。この境界の目標は、アイデンティティが信頼され、リソースが信頼され、そしてネットワークが予想されている場合にそのアクセスが許可されていることを検証することにあります。
-
境界を定義および実装します。
各認証条件について、AWS ホワイトペーパーの「境界の構築」の境界の実装に記載されたステップに従います。ネットワーク層に関する規範的ガイダンスについては、「ネットワークの保護」を参照してください。
-
継続的にモニタリングとアラートを行います。
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 ルール を使用して、設定を監査し、Amazon Q Developer in chat applications と AWS Security Hub を併用する適切な当事者にアラートを出すことができます
。次に、AWS Systems Manager の自動化ドキュメントを使用して、非準拠のリソースを修復できます。 -
外部で共有するリソースを継続的にモニタリングおよびアラート通知するための規範的ガイダンスについては、「パブリックおよびクロスアカウントアクセスを分析する」を参照してください。
-
-
AWS サービスのリソース共有を使用し、それに従って制限します。
多くの AWS サービスを使用すると、別のアカウントとリソースを共有したり、別アカウントにある Amazon マシンイメージ (AMI) および AWS Resource Access Manager (AWS RAM) などのリソースをターゲットとすることができます。
ModifyImageAttribute
API を制限して、AMI を共有する信頼できるアカウントを指定します。AWS RAM を使用している場合、ram:RequestedAllowsExternalPrincipals
条件を指定し、共有を自組織にのみ限定して、信頼されていないアイデンティティからのアクセスを防止します。規範的ガイダンスおよび注意事項については、「リソース共有および外部ターゲット」を参照してください。 -
AWS RAM を使用して、自分のアカウント内または他の AWS アカウント と安全に共有します。
AWS RAM
は、自分のアカウントおよび他の AWS アカウント アカウントのロールやユーザーで作成したリソースを安全に共有するのに役立ちます。マルチアカウント環境の場合、AWS RAM ではリソースを作成したら、それを他のアカウントと共有できます。このアプローチにより、運用諸経費を削減し、Amazon CloudWatch および AWS CloudTrail との統合を通じて、一貫性、可視性、監査可能性を提供することができます。これは、クロスアカウントアクセスを使用している場合は享受できません。 リソースベースポリシーを使って過去に共有したリソースがある場合、
PromoteResourceShareCreatedFromPolicy
API または同等のコマンドを使って、リソース共有を完全な AWS RAM リソース共有に昇格させることができます。場合によっては、リソースを共有するための追加ステップが必要かもしれません。たとえば、暗号化されたスナップショットを共有するには、AWS KMS キーを共有する必要があります。
リソース
関連するベストプラクティス:
関連するドキュメント:
関連動画:
-
Granular Access with AWS Resource Access Manager
(AWS Resource Access Manager を使用したきめ細かいアクセス) -
Securing your data perimeter with VPC endpoints (VPC エンドポイントを使用したデータ境界の保護)
-
Establishing a data perimeter on AWS
(AWS でのデータ境界の確立)
関連ツール:
-
Data Perimeter Policy Examples
(データ境界ポリシーの例)