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 ロール を作成する権限が必要です。
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 がスキャンを開始します。
アカウントを追加する
prod と staging のように、複数の AWS アカウントを接続できます。 Add account をクリックし、もう一方のアカウントで EnclaveScanner スタックを起動して、その RoleArn を検証します。
接続したアカウントはすべて、組織全体で利用できます。
接続を管理する
Settings → Integrations → Amazon Web Services でアカウントをクリックすると、アカウント ID、ロール ARN、リージョンを確認できます。- Re-validate は、Enclave がまだロールを引き受けられるかを確認します。
- Delete は、接続から 1 つのアカウントを削除します。
- Disconnect AWS は、接続全体を削除します。Enclave はこれらのアカウントの使用を停止します。
EnclaveScanner スタックまたはロールを削除します。Enclave はそのアカウントをスキャンできなくなります。
Enclave が行うこと・行わないこと
- 行うこと :
EnclaveScannerReadOnlyポリシーにある読み取り専用のアクションを呼び出します。 - 行わないこと :何かを変更すること、データの中身を読み取ること、長期間有効な認証情報を保持すること、アカウント内でエージェントを実行すること。
トラブルシューティング
- 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 をクリックします。