カスタムポリシーを使用して、アクセス制御のさまざまな要件を満たすことができます。 Resource Access Management (RAM) コンソールでは、カスタムポリシーを視覚化モードまたはスクリプトモードで設定できます。 このトピックでは、カスタムポリシーの用語、シナリオ、手順、構文、および例について説明します。
シナリオ
システムポリシーは粗粒です。 きめ細かいアクセス制御のためのカスタムRAMポリシーを作成できます。
たとえば、RAMユーザーにストリーミングドメインのスナップショット設定を照会する権限のみを付与する場合は、カスタムポリシーを作成できます。
手順
次の例では、カスタムポリシーの作成方法について説明します。
例1: RAMユーザーにストリーミングドメインのスナップショット設定を照会する権限を付与する
RAMユーザーにストリーミングドメインのスナップショット設定を照会する権限のみを付与する場合は、次の操作を実行できます。
RAMコンソールの [ポリシーの作成] ページの [ビジュアルエディター] タブで、[Media Services]-> [ApsaraVideo Live] を選択します。
[読み取りアクション] を展開し、[フィルターアクション] 検索ボックスにDescribeLiveSnapshotConfigと入力し、live:DescribeLiveSnapshotConfigを選択します。DescribeLiveSnapshotConfig操作を呼び出して、ストリーミングドメインのスナップショット設定を照会できます。
[次へ] をクリックしてポリシー情報を編集します。
[名前] フィールドでポリシーの名前を指定し、[OK] をクリックします。
RAMユーザーを作成し、作成したポリシーをRAMユーザーにアタッチします。 詳細については、「RAMユーザーの作成とRAMユーザーへの権限付与」をご参照ください。
ポリシーをRAMユーザーにアタッチした後、DescribeLiveSnapshotConfig操作をRAMユーザーとして呼び出すと、システムはストリーミングドメインのスナップショット設定を返します。 別の操作を呼び出すと、対応する権限がないことを示すメッセージが返されます。
例2: RAMユーザーに特定のIPアドレスからストリーミングドメインのスナップショット設定を照会する権限を付与する
例1では、RAMユーザーにアクセス許可コントロールを実装して、DescribeLiveSnapshotConfig操作を呼び出します。 たとえば、RAMユーザーがDescribeLiveSnapshotConfig操作を呼び出すために使用するIPアドレスを制限するなど、RAMユーザーに対してきめ細かい制御を実行する場合は、次の操作を実行できます。
RAMコンソールの [ポリシー] ページで、例1で作成したポリシーの名前を検索ボックスに入力して、ポリシーを検索します。
ポリシーの名前をクリックして、ポリシーの詳細ページに移動します。
[ポリシードキュメント] タブで、[ポリシードキュメントの変更] をクリックします。
[ビジュアルエディター] タブで [条件] を開き、[条件の追加] をクリックします。 表示されるダイアログボックスで、[キー] ドロップダウンリストから [acs:SourceIp] を選択し、[演算子] ドロップダウンリストから [IpAddress] を選択し、[値] フィールドにRAMユーザーが使用できるようにする特定のIPアドレスを入力します。 [OK]をクリックします。
[次へ] をクリックしてポリシー情報を編集します。 [ポリシーの変更] ページで、[OK] をクリックします。
上記の操作を実行した後、RAMユーザーが指定されたIPアドレスのいずれかからDescribeLiveSnapshotConfig操作を呼び出した場合にのみ、データを返すことができます。 RAMユーザーが別のIPアドレスを使用している場合、システムはRAMユーザーに対応する権限がないことを示すメッセージを返します。
詳細については、「カスタムポリシーの作成」をご参照ください。
構文
ポリシー詳細ページの [ポリシードキュメント] タブで、コードエディターにポリシーが記述されます。 次のコードは、例2のポリシードキュメントを提供します。
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": "live:DescribeLiveSnapshotConfig",
"Resource": "*",
"Condition": {
"IpAddress": {
"acs:SourceIp": [
"127.0.0.1"
]
}
}
}
]
}
上記のポリシードキュメントのパラメーターの説明:
バージョン
Versionパラメータは、ポリシーのバージョンを定義する。 システムはパラメーターを1に設定します。
ステートメント
1つのポリシーに複数のステートメントを含めることができます。 各ステートメントには、Action、Effect、Resource、およびConditionの要素が含まれています。 システムは各要求のステートメントをチェックします。 一致するステートメントには、値がAllowまたはDenyのEffect要素が含まれます。 EffectがDenyに設定されているマッチしたステートメントが優先されます。 すべての一致したステートメントのEffect要素がAllowに設定されている場合、リクエストは認証を通過します。 一致したステートメントの1つにEffect要素がDenyに設定されている場合、または一致したステートメントがない場合、要求は拒否されます。
効果
Effectは、許可または拒否の権限付与効果を定義します。
Action
ApsaraVideo LiveのアクションはAPI操作に対応します。 Action値は
live:<API operation name>
形式です。 例:live:DescribeLiveSnapshotConfig
複数のアクション値はコンマ (,) で区切ります。 複数のアクション値を指定して、権限グループを取得できます。使用可能なすべての操作を表示するには、「関数別の操作のリスト」をご参照ください。
リソース
Resourceは、許可されたユーザーがアクセスできる1つ以上のApsaraVideo Liveリソースを指定します。 アスタリスク (*) はワイルドカードとして使用できます。 リソース値は、
acs:{ramCode}:{region}:{accountId}:{relative}
形式です。 Resource要素を使用して、複数のリソースを指定できます。 ApsaraVideo LiveのramCodeパラメーターの有効な値: live、cdn、およびlive-interaction。 リージョンフィールドをアスタリスク (*
) に設定します。 accountIDパラメーターの値は、Alibaba CloudアカウントのIDです。 相対パラメーターは、特定のリソースを指定します。これは、例2に示すように、一般的にアスタリスク (*) に設定されます。 一部のAPI操作では、このパラメーターを特定のリソースに設定できます。説明ビジュアルエディターを使用してポリシーを設定すると、ポリシーはAPI操作に対応するramCodeと自動的に一致します。
条件
Conditionは、ポリシーのアクセス制御条件を指定します。 この要素はオプションです。
次の表に、サポートされる条件を示します。
条件
説明
有効値
acs:SourceIp
IPアドレスまたはCIDRブロックを指定します。
IPアドレス アスタリスク (*) を使用できます。
acs:SecureTransport
アクセスにHTTPSを使用するかどうかを指定します。
trueまたはfalse
acs:MFAPresent
ユーザーログイン中に多要素認証 (MFA) を使用するかどうかを指定します。
trueまたはfalse
acs:CurrentTime
リクエストを受信したときの有効時間を指定します。
ISO 8601標準に基づく値。 例: 2012-11-11T23:59:59Z
JSON
ポリシー構文を理解したら、JSONスクリプトを編集してポリシーを設定することができます。 たとえば、JSONスクリプトの編集によって例2で作成したポリシーにIPアドレス127.0.0.2を追加する場合は、次の操作を実行できます。
RAMコンソールの [ポリシー] ページで、例1で作成したポリシーの名前を検索ボックスに入力して、ポリシーを検索します。
ポリシーの名前をクリックして、ポリシーの詳細ページに移動します。
[ポリシードキュメント] タブで、[ポリシードキュメントの変更] をクリックします。 表示されるページで、[JSON] タブをクリックします。
acs:SourceIpパラメーターに127.0.0.2を入力します。
[次へ] をクリックして基本情報を編集します。 表示されるページで、[OK] をクリックします。 IPアドレスがポリシーに追加されます。
ポリシーを設定すると、次のポリシードキュメントが表示されます。
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": "live:DescribeLiveSnapshotConfig",
"Resource": "*",
"Condition": {
"IpAddress": {
"acs:SourceIp": [
"127.0.0.1",
"127.0.0.2"
]
}
}
}
]
}
バージョン管理
ポリシーを更新した後、何らかの理由で前のポリシーにロールバックしたい場合があります。 この場合、バージョン管理機能を使用できます。 手順: ポリシーの詳細ページで、[バージョン] タブをクリックします。 ロールバックするバージョンに対応する操作列で、[このバージョンを使用] をクリックします。
ポリシーには最大5つのバージョンを維持できます。
詳細な使用方法
権限を付与するカスタムポリシーを作成する方法を学習しました。 これで、さらに次のビジネス要件があります。
ストリーミングドメインのスナップショット設定を構成するAddLiveAppSnapshotConfig操作を呼び出す権限を制御します。
許可されたRAMユーザーが、ドメインAとドメインBのみのスナップショット設定を構成するようにします。
上記の権限付与要件を満たすには、次の操作を実行できます。
RAMコンソールの [ポリシーの作成] ページの [ビジュアルエディター] タブで、[Media Services]-> [ApsaraVideo Live] を選択します。
書き込みアクションを展開し、[フィルターアクション] 検索ボックスにAddLiveAppSnapshotConfigと入力し、live:AddLiveAppSnapshotConfigを選択します。AddLiveAppSnapshotConfig操作を呼び出して、ストリーミングドメインのスナップショット設定を構成できます。
[リソース] セクションで、[指定したリソース] を選択し、[リソースの追加] をクリックします。 表示されるダイアログボックスで、Accountパラメーターにアスタリスク (*) を入力し、ResourceパラメーターにDomain Aを入力します。 同様の操作を実行してドメインBを追加します。
[次へ] をクリックしてポリシー情報を編集します。
[名前] フィールドでポリシーの名前を指定し、[OK] をクリックします。 次のコードは、ポリシードキュメントを提供します。
{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": "live:AddLiveAppSnapshotConfig", "Resource": [ "acs:cdn:*:*:domain/domainA", "acs:cdn:*:*:domain/domainB" ] } ] }
作成したポリシーをRAMユーザーにアタッチします。
上記の操作を実行すると、許可されたRAMユーザーはドメインAとドメインBに対してのみスナップショット設定を構成できます。
API操作は、さまざまなリソース制御形式をサポートします。 ビジュアルエディターを使用して、詳細な権限制御を構成することを推奨します。