メインコンテンツへスキップ
AWS アカウントを接続すると、Enclave はリソースと ID をマッピングし、どの検出結果が到達可能かを判断できます。アクセスは読み取り専用です。

Enclave に必要なもの

読み取り専用 の権限を持つ、 EnclaveScanner という名前のクロスアカウント IAM ロールです。このロールは CloudFormation テンプレートで作成されます。ロールの信頼ポリシーでは、Enclave のプリンシパルだけが、組織ごとに生成された外部 ID を使う場合に限り、このロールを引き受けられます。 ロールの EnclaveScannerReadOnly ポリシーでは、次のサービスに対する Describe、 List、 Get アクションを許可します。
  • コンピューティング :EC2、ECS、EKS、Lambda、Batch、Step Functions。
  • ネットワーク :EC2 経由の VPC リソース、Elastic Load Balancing、Route 53、CloudFront、API Gateway。
  • データ :RDS、DynamoDB、ElastiCache、および SQS キュー、SNS トピック、Kinesis ストリーム、MSK クラスターの名前。
  • ストレージ :S3 バケットの設定、ポリシー、ACL、パブリックアクセス設定。オブジェクトは読み取りません。
  • コンテナ :ECR リポジトリ。
  • ID :IAM ロール、ユーザー、グループ、インスタンスプロファイル、およびそれらのポリシー。
変更を伴うアクションはなく、メタデータ以外のデータにはアクセスしません。

始める前に

  • Enclave で Owner または Admin ロールが必要です。
  • AWS では、接続するアカウントで CloudFormation スタック と IAM ロール を作成する権限が必要です。
スタックは IAM ロールを作成するため、CloudFormation から IAM リソースの作成について承認を求められます。AWS ユーザーが IAM ロールを作成できない場合、スタックの作成は失敗します。 Copy link をクリックし、作成できる人にリンクを送ってください。

AWS アカウントを接続する

Settings → Integrations を開き、 Amazon Web Services の横にある Connect をクリックします。
1

CloudFormation を開く

Open CloudFormation をクリックします。AWS で、 us-east-1 の EnclaveScanner スタックのクイック作成ページが開きます。組織の外部 ID と Enclave のプリンシパル ARN は入力済みです。スタックの内容を確認して作成します。他の人に実行してもらう場合は、 Copy link をクリックしてリンクを送ります。
2

Outputs から RoleArn をコピーする

スタックの作成が完了したら、 CloudFormation → Stacks → EnclaveScanner → Outputs を開きます。 Key が RoleArn の行の Value をコピーします。
3

ロールを検証する

ARN を RoleArn output に貼り付け、 Validate role をクリックします。Enclave はロールを引き受けて、信頼関係が機能することを確認します。成功するとアカウントが接続され、Enclave がスキャンを開始します。
Finish later をクリックすると、進捗を保存できます。スタックの準備ができたら、 Settings → Integrations → Amazon Web Services からセットアップを完了します。

アカウントを追加する

prod と staging のように、複数の AWS アカウントを接続できます。 Add account をクリックし、もう一方のアカウントで EnclaveScanner スタックを起動して、その RoleArn を検証します。 接続したアカウントはすべて、組織全体で利用できます。

接続を管理する

Settings → Integrations → Amazon Web Services でアカウントをクリックすると、アカウント ID、ロール ARN、リージョンを確認できます。
  • Re-validate は、Enclave がまだロールを引き受けられるかを確認します。
  • Delete は、接続から 1 つのアカウントを削除します。
  • Disconnect AWS は、接続全体を削除します。Enclave はこれらのアカウントの使用を停止します。
CloudTrail notifications では、任意で CloudTrail の証跡を接続できます。接続すると、Enclave は毎日のスキャンを待たずに、リソースが変更されたときにアカウントのインベントリを更新します。 AWS 側からアクセスを取り消すには、 EnclaveScanner スタックまたはロールを削除します。Enclave はそのアカウントをスキャンできなくなります。

Enclave が行うこと・行わないこと

  • 行うこと : EnclaveScannerReadOnly ポリシーにある読み取り専用のアクションを呼び出します。
  • 行わないこと :何かを変更すること、データの中身を読み取ること、長期間有効な認証情報を保持すること、アカウント内でエージェントを実行すること。
Enclave は、設定したロールと外部 ID に限定された、有効期間の短い STS 認証情報でロールを引き受けます。ロールは、AWS アカウントからいつでも取り消せます。

トラブルシューティング

  • AWS STS could not assume the role :スタックが存在しないか、その外部 ID がこの Enclave の接続と一致していません。もう一度 Open CloudFormation をクリックします。 EnclaveScanner スタックが削除されている場合は再作成し、存在する場合は更新します。その後、新しい RoleArn をコピーして、もう一度検証します。
  • “That ARN is the Enclave principal” :ロールの ARN ではなく、Enclave のプリンシパル ARN を貼り付けています。スタックの Outputs タブにある RoleArn の値を貼り付けてください。
  • Coverage にアセットが表示されない :Enclave は、アカウントを接続したときと、その後は 1 日 1 回スキャンします。すぐにスキャンするには、 Coverage で Analyze Environment をクリックします。