マルチアカウント環境では、Resource Directory の Control Policy を使用して、メンバーアカウントの権限を一元的に管理します。
仕組み
Control Policy は、フォルダやメンバーなどのリソース構造に基づいたアクセス制御ポリシーであり、権限の境界を定義するために使用されます。マルチアカウント管理のシナリオでは、OSS バケットのパブリックアクセスをブロックすることを必須とするなど、メンバーアカウントに対してセキュリティ要件を一括で適用するため、カスタム Control Policy を利用できます。
認証メカニズム
Control Policy は権限の境界を定義しますが、直接権限を付与するものではありません。メンバーアカウント内の RAM ユーザーまたは RAM ロールが OSS などのクラウドサービスにアクセスしようとした場合、システムはまず Control Policy に基づいてコンプライアンスチェックを実行します。このチェックを通過した場合にのみ、システムは当該アカウントの RAM 権限ポリシーを評価します。
評価原則
Control Policy の評価は、リクエストされたリソースを所有するアカウントから開始され、Resource Directory の階層を上方向にたどって行われます。各レベルでの評価は、明示的な拒否が優先される 原則に従います。
-
明示的な拒否が優先される:リクエストに一致する
Denyルールが存在する場合、そのリクエストは即座に拒否されます。Control Policy の評価プロセスはここで終了し、アカウントの RAM 権限ポリシーは評価されません。 -
明示的な許可の検索:あるレベルで一致する
Denyルールが存在しない場合、システムは一致するAllowルールを探します。Allowルールが見つかった場合、そのレベルでの評価は通過し、親ノードに移って階層のルートフォルダまで評価が継続されます。ルートフォルダでも評価が通過した場合、Control Policy 全体のチェックは成功とみなされます。その後、システムはアカウントの RAM 権限ポリシーを評価します。 -
デフォルト拒否:一致する
DenyルールもAllowルールも見つからない場合、リクエストはデフォルトで拒否されます。評価プロセスはここで終了し、次のレベルへの移行やアカウントの RAM 権限ポリシーの評価は行われません。
Alibaba Cloud は、アクセス対象のアカウントおよびその階層上のすべての祖先ノードにアタッチされたポリシーを評価します。これにより、上位レベルにアタッチされた Control Policy が、その下位にあるすべてのアカウントに強制されることを保証します。詳細については、「Control Policy の概要」をご参照ください。
ポリシーの種類
-
システム Control Policy:事前に用意されたポリシーで、閲覧は可能ですが変更はできません。Control Policy 機能を有効化すると、デフォルトで
FullAliyunAccessポリシーがアタッチされ、すべての操作が許可されます。 -
カスタム Control Policy:ユーザーが作成・管理するポリシーです。フォルダまたはメンバーにアタッチできます。
適用範囲
Control Policy は、Resource Directory 内のメンバーアカウントに所属するすべての RAM ユーザーおよび RAM ロールに適用されます。サービスにリンクされたロール、メンバーアカウントの root ユーザー、および管理アカウント内のいかなる ID にも適用されません。
操作手順
管理アカウントを使用して、Resource Directory を有効化し、フォルダを作成し、メンバーを作成し、Alibaba Cloud アカウントを Resource Directory に招待し、メンバーを移動してください。開始前に、Resource Directory の制限事項を確認してください。
手順 1: コントロールポリシー機能を有効化する
この操作は一度だけ実行すれば十分です。すでに機能が有効になっている場合は、このステップをスキップしてください。
-
Resource Directory - Control Policy の有効化ページに移動します。
-
制御ポリシーの有効化 をクリックし、選択内容を確認します。
-
更新 をクリックしてステータスを確認します。
ステップ 2:カスタム Control Policy を作成
-
Resource Directory - Control Policy の作成ページに移動します。
-
必要に応じて構成方法を選択します。
以下の例は、パブリックアクセスのブロックを強制するポリシーの作成方法を示しています。その他の構成例については、「一般的な権限付与シナリオ」をご参照ください。
重要拒否ポリシーを構成する前に、メンバーアカウント内のすべての既存リソースがポリシーに準拠していることを確認してください。OSS のパブリックアクセスブロックを強制する場合、すべての既存バケットでパブリックアクセスのブロックが有効になっていることを事前に確認する必要があります。
ビジュアルエディター
ビジュアルエディター セクションで、以下の設定を行います。
-
効果:[拒否] を選択します。
-
Service:[OSS] を選択します。
-
操作:
oss:DeleteBucketPublicAccessBlockおよびoss:PutBucketPublicAccessBlockを選択します。
ポリシーエディター
ポリシーエディター セクションで、以下のポリシー構成を入力します。
{ "Version": "1", "Statement": [ { "Effect": "Deny", "Action": [ "oss:DeleteBucketPublicAccessBlock", "oss:PutBucketPublicAccessBlock" ], "Resource": "*" } ] }説明Control Policy は JSON フォーマットを使用し、Version および Statement の 2 つのコアフィールドで構成されます。Statement は、Effect、Action、Resource、Condition の要素で構成されます。Action の構成方法の詳細については、「Action」をご参照ください。
-
-
OK をクリックします。
-
Control Policy の作成ダイアログボックスで、名前と説明を入力し、OK をクリックします。
ステップ 3:Control Policy をフォルダにアタッチ
-
Resource Directory - ディレクトリ管理ページに移動します。
-
リソースディレクトリツリーで、対象のフォルダをクリックします。
-
[ポリシー] タブで、ポリシーのアタッチ をクリックします。
-
ポリシーのアタッチ パネルで、アタッチする Control Policy を選択し、OK をクリックします。
ステップ 4:ポリシーの検証
ポリシーをアタッチ後、フォルダ内のすべてのメンバーアカウントがその制約の対象となります。パブリックアクセスのブロックを強制するポリシーの効果を検証するには、以下のチェックを実行します。
-
拒否操作の検証:メンバーアカウント内で、既存のバケットのパブリックアクセスブロックを無効化しようとします。Control Policy により、この操作が拒否されるはずです。
-
作成制限の検証:パブリックアクセスブロックを有効にせずに新しいバケットを作成しようとします。システムは作成リクエストを拒否するはずです。
-
階層的適用の検証:階層内の異なるレベルにあるメンバーアカウントで同様の操作を実行し、ポリシーがフォルダ全体で有効であることを確認します。
一般的な権限付与シナリオ
シナリオ 1:OSS バケットのパブリックアクセスブロックを強制
OSS バケットのパブリックアクセスブロックを強制するための Control Policy を構成し、ユーザーがこの機能を無効化したり、この機能を有効にせずに新しいバケットを作成したりできないようにします。以下の例は、ポリシー構成を示しています。
{
"Version": "1",
"Statement": [
{
"Effect": "Deny",
"Action": [
"oss:DeleteBucketPublicAccessBlock",
"oss:PutBucketPublicAccessBlock"
],
"Resource": "*"
}
]
}
本番運用時のベストプラクティス
-
階層的なポリシー設計:組織構造に基づいて、複数レベルの Control Policy 構造を設計します。ルートフォルダでグローバルかつ必須のポリシーを設定し、部門レベルのフォルダで特定の制約を適用します。
-
ポリシーのバージョン管理:重要な Control Policy にはバージョン管理を活用し、変更履歴を追跡します。これにより、トラブルシューティングが容易になり、ロールバックも簡単に行えます。
-
権限範囲の制御:過度に広範な拒否ポリシーを避けてください。誤った構成により正当なビジネス運用がブロックされ、システム機能やユーザーエクスペリエンスに悪影響を及ぼす可能性があります。
-
ポリシーのテストと検証:新しいポリシーは、必ず本番環境以外の環境、または限定的な範囲のフォルダで最初にテストしてください。効果を確認した後、本番環境に展開することで、ビジネスへの影響を回避します。