public class Policy
extends com.pulumi.resources.CustomResource
A policy for container image binary authorization.
To get more information about Policy, see:
* [API documentation](https://cloud.google.com/binary-authorization/docs/reference/rest/)
* How-to Guides
* [Official Documentation](https://cloud.google.com/binary-authorization/)
## Example Usage
### Binary Authorization Policy Basic
```java
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.gcp.containeranalysis.Note;
import com.pulumi.gcp.containeranalysis.NoteArgs;
import com.pulumi.gcp.containeranalysis.inputs.NoteAttestationAuthorityArgs;
import com.pulumi.gcp.containeranalysis.inputs.NoteAttestationAuthorityHintArgs;
import com.pulumi.gcp.binaryauthorization.Attestor;
import com.pulumi.gcp.binaryauthorization.AttestorArgs;
import com.pulumi.gcp.binaryauthorization.inputs.AttestorAttestationAuthorityNoteArgs;
import com.pulumi.gcp.binaryauthorization.Policy;
import com.pulumi.gcp.binaryauthorization.PolicyArgs;
import com.pulumi.gcp.binaryauthorization.inputs.PolicyAdmissionWhitelistPatternArgs;
import com.pulumi.gcp.binaryauthorization.inputs.PolicyDefaultAdmissionRuleArgs;
import com.pulumi.gcp.binaryauthorization.inputs.PolicyClusterAdmissionRuleArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var note = new Note("note", NoteArgs.builder()
.attestationAuthority(NoteAttestationAuthorityArgs.builder()
.hint(NoteAttestationAuthorityHintArgs.builder()
.humanReadableName("My attestor")
.build())
.build())
.build());
var attestor = new Attestor("attestor", AttestorArgs.builder()
.attestationAuthorityNote(AttestorAttestationAuthorityNoteArgs.builder()
.noteReference(note.name())
.build())
.build());
var policy = new Policy("policy", PolicyArgs.builder()
.admissionWhitelistPatterns(PolicyAdmissionWhitelistPatternArgs.builder()
.namePattern("gcr.io/google_containers/*")
.build())
.defaultAdmissionRule(PolicyDefaultAdmissionRuleArgs.builder()
.evaluationMode("ALWAYS_ALLOW")
.enforcementMode("ENFORCED_BLOCK_AND_AUDIT_LOG")
.build())
.clusterAdmissionRules(PolicyClusterAdmissionRuleArgs.builder()
.cluster("us-central1-a.prod-cluster")
.evaluationMode("REQUIRE_ATTESTATION")
.enforcementMode("ENFORCED_BLOCK_AND_AUDIT_LOG")
.requireAttestationsBies(attestor.name())
.build())
.build());
}
}
```
### Binary Authorization Policy Global Evaluation
```java
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.gcp.containeranalysis.Note;
import com.pulumi.gcp.containeranalysis.NoteArgs;
import com.pulumi.gcp.containeranalysis.inputs.NoteAttestationAuthorityArgs;
import com.pulumi.gcp.containeranalysis.inputs.NoteAttestationAuthorityHintArgs;
import com.pulumi.gcp.binaryauthorization.Attestor;
import com.pulumi.gcp.binaryauthorization.AttestorArgs;
import com.pulumi.gcp.binaryauthorization.inputs.AttestorAttestationAuthorityNoteArgs;
import com.pulumi.gcp.binaryauthorization.Policy;
import com.pulumi.gcp.binaryauthorization.PolicyArgs;
import com.pulumi.gcp.binaryauthorization.inputs.PolicyDefaultAdmissionRuleArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var note = new Note("note", NoteArgs.builder()
.attestationAuthority(NoteAttestationAuthorityArgs.builder()
.hint(NoteAttestationAuthorityHintArgs.builder()
.humanReadableName("My attestor")
.build())
.build())
.build());
var attestor = new Attestor("attestor", AttestorArgs.builder()
.attestationAuthorityNote(AttestorAttestationAuthorityNoteArgs.builder()
.noteReference(note.name())
.build())
.build());
var policy = new Policy("policy", PolicyArgs.builder()
.defaultAdmissionRule(PolicyDefaultAdmissionRuleArgs.builder()
.evaluationMode("REQUIRE_ATTESTATION")
.enforcementMode("ENFORCED_BLOCK_AND_AUDIT_LOG")
.requireAttestationsBies(attestor.name())
.build())
.globalPolicyEvaluationMode("ENABLE")
.build());
}
}
```
## Import
Policy can be imported using any of these accepted formats
```sh
$ pulumi import gcp:binaryauthorization/policy:Policy default projects/{{project}}
```
```sh
$ pulumi import gcp:binaryauthorization/policy:Policy default {{project}}
```